diff --git a/sdk/attestation/azure-mgmt-attestation/README.md b/sdk/attestation/azure-mgmt-attestation/README.md
index 9871732f1f7d..e5da09b192ea 100644
--- a/sdk/attestation/azure-mgmt-attestation/README.md
+++ b/sdk/attestation/azure-mgmt-attestation/README.md
@@ -1,84 +1,61 @@
# Microsoft Azure SDK for Python
This is the Microsoft Azure Attestation Management Client Library.
-This package has been tested with Python 3.7+.
+This package has been tested with Python 3.8+.
For a more complete view of Azure libraries, see the [azure sdk python release](https://aka.ms/azsdk/python/all).
## _Disclaimer_
_Azure SDK Python packages support for Python 2.7 has ended 01 January 2022. For more information and questions, please refer to https://github.com/Azure/azure-sdk-for-python/issues/20691_
-## Getting Started
+## Getting started
-### Prerequsites
-```shell
-pip install azure-identity
+### Prerequisites
+
+- Python 3.8+ is required to use this package.
+- [Azure subscription](https://azure.microsoft.com/free/)
+
+### Install the package
+
+```bash
pip install azure-mgmt-attestation
+pip install azure-identity
```
-
-Before running the examples, please set the values of the client ID, tenant ID and client secret
-of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
-AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
-https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+### Authentication
-### Resources
-To learn how to use this package, see the [quickstart guide](https://aka.ms/azsdk/python/mgmt)
-
-For docs and references, see [Python SDK References](https://docs.microsoft.com/python/api/overview/azure/)
-Code samples for this package can be found at [Attestation Management](https://docs.microsoft.com/samples/browse/?languages=python&term=Getting%20started%20-%20Managing&terms=Getting%20started%20-%20Managing) on docs.microsoft.com.
-Additional code samples for different Azure services are available at [Samples Repo](https://aka.ms/azsdk/python/mgmt/samples)
+By default, [Azure Active Directory](https://aka.ms/awps/aad) token authentication depends on correct configure of following environment variables.
+- `AZURE_CLIENT_ID` for Azure client ID.
+- `AZURE_TENANT_ID` for Azure tenant ID.
+- `AZURE_CLIENT_SECRET` for Azure client secret.
-## Examples
+In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
+
+With above configuration, client can be authenticated by following code:
-### List Attestation Providers
```python
-from azure.core.exceptions import ClientAuthenticationError
from azure.identity import DefaultAzureCredential
from azure.mgmt.attestation import AttestationManagementClient
+import os
-client = AttestationManagementClient(
- credential=DefaultAzureCredential(),
- subscription_id="00000000-0000-0000-0000-000000000000",
-)
-
-response = client.attestation_providers.list()
-print(response)
+sub_id = os.getenv("AZURE_SUBSCRIPTION_ID")
+client = AttestationManagementClient(credential=DefaultAzureCredential(), subscription_id=sub_id)
```
-## Troubleshooting
-
-### CredentialUnavailableError
-The CredentialUnavailableError is a specific error type derived from ClientAuthenticationError. This error type is used to indicate that the credential can't authenticate in the current environment, due to missing required configuration or setup. This error is also used as an indication for chained credential types, such as DefaultAzureCredential and ChainedTokenCredential, that the chained credential should continue to attempt other credential types later in the chain.
-
-### Permission issues
-Service client calls that result in HttpResponseError with a StatusCode of 401 or 403 often indicate the caller doesn't have sufficient permissions for the specified API. Check the [service documentation](https://learn.microsoft.com/azure/attestation/) to determine which RBAC roles are needed for the specific request, and ensure the authenticated user or service principal have been granted the appropriate roles on the resource.
-
-## Next Steps
-
-If you encounter any bugs or have suggestions, please file an issue in the
-[Issues](https://github.com/Azure/azure-sdk-for-python/issues)
-section of the project.
+## Examples
-
+Code samples for this package can be found at:
+- [Search Attestation Management](https://docs.microsoft.com/samples/browse/?languages=python&term=Getting%20started%20-%20Managing&terms=Getting%20started%20-%20Managing) on docs.microsoft.com
+- [Azure Python Mgmt SDK Samples Repo](https://aka.ms/azsdk/python/mgmt/samples)
-## Contributing
+## Troubleshooting
-This project welcomes contributions and suggestions. Most contributions require
-you to agree to a Contributor License Agreement (CLA) declaring that you have
-the right to, and actually do, grant us the rights to use your contribution.
-For details, visit [https://cla.microsoft.com](https://cla.microsoft.com).
+## Next steps
-When you submit a pull request, a CLA-bot will automatically determine whether
-you need to provide a CLA and decorate the PR appropriately (e.g., label,
-comment). Simply follow the instructions provided by the bot. You will only
-need to do this once across all repos using our CLA.
+## Provide Feedback
-This project has adopted the
-[Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
-For more information, see the
-[Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
-or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any
-additional questions or comments.
\ No newline at end of file
+If you encounter any bugs or have suggestions, please file an issue in the
+[Issues](https://github.com/Azure/azure-sdk-for-python/issues)
+section of the project.
diff --git a/sdk/attestation/azure-mgmt-attestation/_meta.json b/sdk/attestation/azure-mgmt-attestation/_meta.json
index fb385a7b42a8..1d508d018dcf 100644
--- a/sdk/attestation/azure-mgmt-attestation/_meta.json
+++ b/sdk/attestation/azure-mgmt-attestation/_meta.json
@@ -1,11 +1,11 @@
{
- "commit": "e82a24def11ffc98cc263884f9f1742c99f2df5e",
+ "commit": "a51cd6fc2a6951290680e1d8bb0b20b92507e71d",
"repository_url": "https://github.com/Azure/azure-rest-api-specs",
- "autorest": "3.9.2",
+ "autorest": "3.10.2",
"use": [
- "@autorest/python@6.2.1",
- "@autorest/modelerfour@4.24.3"
+ "@autorest/python@6.27.4",
+ "@autorest/modelerfour@4.27.0"
],
- "autorest_command": "autorest specification/attestation/resource-manager/readme.md --generate-sample=True --include-x-ms-examples-original-file=True --python --python-sdks-folder=/home/vsts/work/1/azure-sdk-for-python/sdk --use=@autorest/python@6.2.1 --use=@autorest/modelerfour@4.24.3 --version=3.9.2 --version-tolerant=False",
+ "autorest_command": "autorest specification/attestation/resource-manager/readme.md --generate-sample=True --generate-test=True --include-x-ms-examples-original-file=True --python --python-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-python/sdk --use=@autorest/python@6.27.4 --use=@autorest/modelerfour@4.27.0 --version=3.10.2 --version-tolerant=False",
"readme": "specification/attestation/resource-manager/readme.md"
}
\ No newline at end of file
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/__init__.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/__init__.py
index b12ded48a02e..7d78edf5d3c8 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/__init__.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/__init__.py
@@ -5,15 +5,21 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+# pylint: disable=wrong-import-position
-from ._attestation_management_client import AttestationManagementClient
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._patch import * # pylint: disable=unused-wildcard-import
+
+from ._attestation_management_client import AttestationManagementClient # type: ignore
from ._version import VERSION
__version__ = VERSION
try:
from ._patch import __all__ as _patch_all
- from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import
+ from ._patch import *
except ImportError:
_patch_all = []
from ._patch import patch_sdk as _patch_sdk
@@ -21,6 +27,6 @@
__all__ = [
"AttestationManagementClient",
]
-__all__.extend([p for p in _patch_all if p not in __all__])
+__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
_patch_sdk()
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_attestation_management_client.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_attestation_management_client.py
index 52bae1e19e26..c1bf89d98079 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_attestation_management_client.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_attestation_management_client.py
@@ -8,21 +8,28 @@
from copy import deepcopy
from typing import Any, TYPE_CHECKING
+from typing_extensions import Self
+from azure.core.pipeline import policies
from azure.core.rest import HttpRequest, HttpResponse
from azure.mgmt.core import ARMPipelineClient
+from azure.mgmt.core.policies import ARMAutoResourceProviderRegistrationPolicy
-from . import models
+from . import models as _models
from ._configuration import AttestationManagementClientConfiguration
from ._serialization import Deserializer, Serializer
-from .operations import AttestationProvidersOperations, Operations, PrivateEndpointConnectionsOperations
+from .operations import (
+ AttestationProvidersOperations,
+ Operations,
+ PrivateEndpointConnectionsOperations,
+ PrivateLinkResourcesOperations,
+)
if TYPE_CHECKING:
- # pylint: disable=unused-import,ungrouped-imports
from azure.core.credentials import TokenCredential
-class AttestationManagementClient: # pylint: disable=client-accepts-api-version-keyword
+class AttestationManagementClient:
"""Various APIs for managing resources in attestation service. This primarily encompasses
per-provider management.
@@ -34,13 +41,16 @@ class AttestationManagementClient: # pylint: disable=client-accepts-api-version
:ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations
:vartype private_endpoint_connections:
azure.mgmt.attestation.operations.PrivateEndpointConnectionsOperations
+ :ivar private_link_resources: PrivateLinkResourcesOperations operations
+ :vartype private_link_resources:
+ azure.mgmt.attestation.operations.PrivateLinkResourcesOperations
:param credential: Credential needed for the client to connect to Azure. Required.
:type credential: ~azure.core.credentials.TokenCredential
:param subscription_id: The ID of the target subscription. Required.
:type subscription_id: str
:param base_url: Service URL. Default value is "https://management.azure.com".
:type base_url: str
- :keyword api_version: Api Version. Default value is "2020-10-01". Note that overriding this
+ :keyword api_version: Api Version. Default value is "2021-06-01". Note that overriding this
default value may result in unsupported behavior.
:paramtype api_version: str
"""
@@ -55,9 +65,27 @@ def __init__(
self._config = AttestationManagementClientConfiguration(
credential=credential, subscription_id=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)}
+ _policies = kwargs.pop("policies", None)
+ if _policies is None:
+ _policies = [
+ policies.RequestIdPolicy(**kwargs),
+ self._config.headers_policy,
+ self._config.user_agent_policy,
+ self._config.proxy_policy,
+ policies.ContentDecodePolicy(**kwargs),
+ ARMAutoResourceProviderRegistrationPolicy(),
+ self._config.redirect_policy,
+ self._config.retry_policy,
+ self._config.authentication_policy,
+ self._config.custom_hook_policy,
+ self._config.logging_policy,
+ policies.DistributedTracingPolicy(**kwargs),
+ policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None,
+ self._config.http_logging_policy,
+ ]
+ self._client: ARMPipelineClient = ARMPipelineClient(base_url=base_url, policies=_policies, **kwargs)
+
+ client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)}
self._serialize = Serializer(client_models)
self._deserialize = Deserializer(client_models)
self._serialize.client_side_validation = False
@@ -68,8 +96,11 @@ def __init__(
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
+ )
- def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse:
+ def _send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse:
"""Runs the network request through the client's chained policies.
>>> from azure.core.rest import HttpRequest
@@ -89,17 +120,14 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse:
request_copy = deepcopy(request)
request_copy.url = self._client.format_url(request_copy.url)
- return self._client.send_request(request_copy, **kwargs)
+ return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore
- def close(self):
- # type: () -> None
+ def close(self) -> None:
self._client.close()
- def __enter__(self):
- # type: () -> AttestationManagementClient
+ def __enter__(self) -> Self:
self._client.__enter__()
return self
- def __exit__(self, *exc_details):
- # type: (Any) -> None
+ def __exit__(self, *exc_details: Any) -> None:
self._client.__exit__(*exc_details)
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_configuration.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_configuration.py
index 7d554096f9e6..4d9c464adb60 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_configuration.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_configuration.py
@@ -6,26 +6,18 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-import sys
from typing import Any, TYPE_CHECKING
-from azure.core.configuration import Configuration
from azure.core.pipeline import policies
from azure.mgmt.core.policies import ARMChallengeAuthenticationPolicy, ARMHttpLoggingPolicy
from ._version import VERSION
-if sys.version_info >= (3, 8):
- from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports
-else:
- from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports
-
if TYPE_CHECKING:
- # pylint: disable=unused-import,ungrouped-imports
from azure.core.credentials import TokenCredential
-class AttestationManagementClientConfiguration(Configuration): # pylint: disable=too-many-instance-attributes
+class AttestationManagementClientConfiguration: # pylint: disable=too-many-instance-attributes
"""Configuration for AttestationManagementClient.
Note that all parameters used to create this instance are saved as instance
@@ -35,14 +27,13 @@ class AttestationManagementClientConfiguration(Configuration): # pylint: disabl
:type credential: ~azure.core.credentials.TokenCredential
:param subscription_id: The ID of the target subscription. Required.
:type subscription_id: str
- :keyword api_version: Api Version. Default value is "2020-10-01". Note that overriding this
+ :keyword api_version: Api Version. Default value is "2021-06-01". Note that overriding this
default value may result in unsupported behavior.
:paramtype api_version: str
"""
def __init__(self, credential: "TokenCredential", subscription_id: str, **kwargs: Any) -> None:
- super(AttestationManagementClientConfiguration, self).__init__(**kwargs)
- api_version = kwargs.pop("api_version", "2020-10-01") # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", "2021-06-01")
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")
@@ -54,20 +45,18 @@ def __init__(self, credential: "TokenCredential", subscription_id: str, **kwargs
self.api_version = api_version
self.credential_scopes = kwargs.pop("credential_scopes", ["https://management.azure.com/.default"])
kwargs.setdefault("sdk_moniker", "mgmt-attestation/{}".format(VERSION))
+ self.polling_interval = kwargs.get("polling_interval", 30)
self._configure(**kwargs)
- def _configure(
- self, **kwargs # type: Any
- ):
- # type: (...) -> None
+ 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.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.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs)
self.authentication_policy = kwargs.get("authentication_policy")
if self.credential and not self.authentication_policy:
self.authentication_policy = ARMChallengeAuthenticationPolicy(
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_serialization.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_serialization.py
index 7c1dedb5133d..b24ab2885450 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_serialization.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_serialization.py
@@ -1,3 +1,4 @@
+# pylint: disable=too-many-lines
# --------------------------------------------------------------------------
#
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -24,7 +25,7 @@
#
# --------------------------------------------------------------------------
-# pylint: skip-file
+# pyright: reportUnnecessaryTypeIgnoreComment=false
from base64 import b64decode, b64encode
import calendar
@@ -37,23 +38,37 @@
import re
import sys
import codecs
+from typing import (
+ Dict,
+ Any,
+ cast,
+ Optional,
+ Union,
+ AnyStr,
+ IO,
+ Mapping,
+ Callable,
+ TypeVar,
+ MutableMapping,
+ Type,
+ List,
+)
try:
from urllib import quote # type: ignore
except ImportError:
- from urllib.parse import quote # type: ignore
+ from urllib.parse import quote
import xml.etree.ElementTree as ET
-import isodate
+import isodate # type: ignore
-from typing import Dict, Any, cast, TYPE_CHECKING
-
-from azure.core.exceptions import DeserializationError, SerializationError, raise_with_traceback
+from azure.core.exceptions import DeserializationError, SerializationError
+from azure.core.serialization import NULL as CoreNull
_BOM = codecs.BOM_UTF8.decode(encoding="utf-8")
-if TYPE_CHECKING:
- from typing import Optional, Union, AnyStr, IO, Mapping
+ModelType = TypeVar("ModelType", bound="Model")
+JSON = MutableMapping[str, Any]
class RawDeserializer:
@@ -65,8 +80,7 @@ class RawDeserializer:
CONTEXT_NAME = "deserialized_data"
@classmethod
- def deserialize_from_text(cls, data, content_type=None):
- # type: (Optional[Union[AnyStr, IO]], Optional[str]) -> Any
+ def deserialize_from_text(cls, data: Optional[Union[AnyStr, IO]], content_type: Optional[str] = None) -> Any:
"""Decode data according to content-type.
Accept a stream of data as well, but will be load at once in memory for now.
@@ -76,6 +90,8 @@ def deserialize_from_text(cls, data, content_type=None):
:param data: Input, could be bytes or stream (will be decoded with UTF8) or text
:type data: str or bytes or IO
:param str content_type: The content type.
+ :return: The deserialized data.
+ :rtype: object
"""
if hasattr(data, "read"):
# Assume a stream
@@ -97,7 +113,7 @@ def deserialize_from_text(cls, data, content_type=None):
try:
return json.loads(data_as_str)
except ValueError as err:
- raise DeserializationError("JSON is invalid: {}".format(err), err)
+ raise DeserializationError("JSON is invalid: {}".format(err), err) from err
elif "xml" in (content_type or []):
try:
@@ -109,7 +125,7 @@ def deserialize_from_text(cls, data, content_type=None):
pass
return ET.fromstring(data_as_str) # nosec
- except ET.ParseError:
+ except ET.ParseError as err:
# It might be because the server has an issue, and returned JSON with
# content-type XML....
# So let's try a JSON load, and if it's still broken
@@ -128,17 +144,23 @@ def _json_attemp(data):
# The function hack is because Py2.7 messes up with exception
# context otherwise.
_LOGGER.critical("Wasn't XML not JSON, failing")
- raise_with_traceback(DeserializationError, "XML is invalid")
+ raise DeserializationError("XML is invalid") from err
+ elif content_type.startswith("text/"):
+ return data_as_str
raise DeserializationError("Cannot deserialize content-type: {}".format(content_type))
@classmethod
- def deserialize_from_http_generics(cls, body_bytes, headers):
- # type: (Optional[Union[AnyStr, IO]], Mapping) -> Any
+ def deserialize_from_http_generics(cls, body_bytes: Optional[Union[AnyStr, IO]], headers: Mapping) -> Any:
"""Deserialize from HTTP response.
Use bytes and headers to NOT use any requests/aiohttp or whatever
specific implementation.
Headers will tested for "content-type"
+
+ :param bytes body_bytes: The body of the response.
+ :param dict headers: The headers of the response.
+ :returns: The deserialized data.
+ :rtype: object
"""
# Try to use content-type from headers if available
content_type = None
@@ -156,13 +178,6 @@ def deserialize_from_http_generics(cls, body_bytes, headers):
return None
-try:
- basestring # type: ignore
- unicode_str = unicode # type: ignore
-except NameError:
- basestring = str # type: ignore
- unicode_str = str # type: ignore
-
_LOGGER = logging.getLogger(__name__)
try:
@@ -175,20 +190,35 @@ class UTC(datetime.tzinfo):
"""Time Zone info for handling UTC"""
def utcoffset(self, dt):
- """UTF offset for UTC is 0."""
+ """UTF offset for UTC is 0.
+
+ :param datetime.datetime dt: The datetime
+ :returns: The offset
+ :rtype: datetime.timedelta
+ """
return datetime.timedelta(0)
def tzname(self, dt):
- """Timestamp representation."""
+ """Timestamp representation.
+
+ :param datetime.datetime dt: The datetime
+ :returns: The timestamp representation
+ :rtype: str
+ """
return "Z"
def dst(self, dt):
- """No daylight saving for UTC."""
+ """No daylight saving for UTC.
+
+ :param datetime.datetime dt: The datetime
+ :returns: The daylight saving time
+ :rtype: datetime.timedelta
+ """
return datetime.timedelta(hours=1)
try:
- from datetime import timezone as _FixedOffset
+ from datetime import timezone as _FixedOffset # type: ignore
except ImportError: # Python 2.7
class _FixedOffset(datetime.tzinfo): # type: ignore
@@ -197,7 +227,7 @@ class _FixedOffset(datetime.tzinfo): # type: ignore
:param datetime.timedelta offset: offset in timedelta format
"""
- def __init__(self, offset):
+ def __init__(self, offset) -> None:
self.__offset = offset
def utcoffset(self, dt):
@@ -219,31 +249,33 @@ def __getinitargs__(self):
try:
from datetime import timezone
- TZ_UTC = timezone.utc # type: ignore
+ TZ_UTC = timezone.utc
except ImportError:
TZ_UTC = UTC() # type: ignore
_FLATTEN = re.compile(r"(? None:
+ self.additional_properties: Optional[Dict[str, Any]] = {}
+ for k in kwargs: # pylint: disable=consider-using-dict-items
if k not in self._attribute_map:
_LOGGER.warning("%s is not a known attribute of class %s and will be ignored", k, self.__class__)
elif k in self._validation and self._validation[k].get("readonly", False):
@@ -290,43 +329,57 @@ def __init__(self, **kwargs):
else:
setattr(self, k, kwargs[k])
- def __eq__(self, other):
- """Compare objects by comparing all attributes."""
+ def __eq__(self, other: Any) -> bool:
+ """Compare objects by comparing all attributes.
+
+ :param object other: The object to compare
+ :returns: True if objects are equal
+ :rtype: bool
+ """
if isinstance(other, self.__class__):
return self.__dict__ == other.__dict__
return False
- def __ne__(self, other):
- """Compare objects by comparing all attributes."""
+ def __ne__(self, other: Any) -> bool:
+ """Compare objects by comparing all attributes.
+
+ :param object other: The object to compare
+ :returns: True if objects are not equal
+ :rtype: bool
+ """
return not self.__eq__(other)
- def __str__(self):
+ def __str__(self) -> str:
return str(self.__dict__)
@classmethod
- def enable_additional_properties_sending(cls):
+ def enable_additional_properties_sending(cls) -> None:
cls._attribute_map["additional_properties"] = {"key": "", "type": "{object}"}
@classmethod
- def is_xml_model(cls):
+ def is_xml_model(cls) -> bool:
try:
- cls._xml_map
+ cls._xml_map # type: ignore
except AttributeError:
return False
return True
@classmethod
def _create_xml_node(cls):
- """Create XML node."""
+ """Create XML node.
+
+ :returns: The XML node
+ :rtype: xml.etree.ElementTree.Element
+ """
try:
- xml_map = cls._xml_map
+ xml_map = cls._xml_map # type: ignore
except AttributeError:
xml_map = {}
return _create_xml_node(xml_map.get("name", cls.__name__), xml_map.get("prefix", None), xml_map.get("ns", None))
- def serialize(self, keep_readonly=False, **kwargs):
- """Return the JSON that would be sent to azure from this model.
+ def serialize(self, keep_readonly: bool = False, **kwargs: Any) -> JSON:
+ """Return the JSON that would be sent to server from this model.
This is an alias to `as_dict(full_restapi_key_transformer, keep_readonly=False)`.
@@ -337,10 +390,17 @@ def serialize(self, keep_readonly=False, **kwargs):
:rtype: dict
"""
serializer = Serializer(self._infer_class_models())
- return serializer._serialize(self, keep_readonly=keep_readonly, **kwargs)
+ return serializer._serialize( # type: ignore # pylint: disable=protected-access
+ self, keep_readonly=keep_readonly, **kwargs
+ )
- def as_dict(self, keep_readonly=True, key_transformer=attribute_transformer, **kwargs):
- """Return a dict that can be JSONify using json.dump.
+ def as_dict(
+ self,
+ keep_readonly: bool = True,
+ key_transformer: Callable[[str, Dict[str, Any], Any], Any] = attribute_transformer,
+ **kwargs: Any
+ ) -> JSON:
+ """Return a dict that can be serialized using json.dump.
Advanced usage might optionally use a callback as parameter:
@@ -366,12 +426,15 @@ def my_key_transformer(key, attr_desc, value):
If you want XML serialization, you can pass the kwargs is_xml=True.
+ :param bool keep_readonly: If you want to serialize the readonly attributes
:param function key_transformer: A key transformer function.
:returns: A dict JSON compatible object
:rtype: dict
"""
serializer = Serializer(self._infer_class_models())
- return serializer._serialize(self, key_transformer=key_transformer, keep_readonly=keep_readonly, **kwargs)
+ return serializer._serialize( # type: ignore # pylint: disable=protected-access
+ self, key_transformer=key_transformer, keep_readonly=keep_readonly, **kwargs
+ )
@classmethod
def _infer_class_models(cls):
@@ -381,25 +444,31 @@ def _infer_class_models(cls):
client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)}
if cls.__name__ not in client_models:
raise ValueError("Not Autorest generated code")
- except Exception:
+ except Exception: # pylint: disable=broad-exception-caught
# Assume it's not Autorest generated (tests?). Add ourselves as dependencies.
client_models = {cls.__name__: cls}
return client_models
@classmethod
- def deserialize(cls, data, content_type=None):
+ def deserialize(cls: Type[ModelType], data: Any, content_type: Optional[str] = None) -> ModelType:
"""Parse a str using the RestAPI syntax and return a model.
:param str data: A str using RestAPI structure. JSON by default.
:param str content_type: JSON by default, set application/xml if XML.
:returns: An instance of this model
:raises: DeserializationError if something went wrong
+ :rtype: ModelType
"""
deserializer = Deserializer(cls._infer_class_models())
- return deserializer(cls.__name__, data, content_type=content_type)
+ return deserializer(cls.__name__, data, content_type=content_type) # type: ignore
@classmethod
- def from_dict(cls, data, key_extractors=None, content_type=None):
+ def from_dict(
+ cls: Type[ModelType],
+ data: Any,
+ key_extractors: Optional[Callable[[str, Dict[str, Any], Any], Any]] = None,
+ content_type: Optional[str] = None,
+ ) -> ModelType:
"""Parse a dict using given key extractor return a model.
By default consider key
@@ -407,13 +476,15 @@ def from_dict(cls, data, key_extractors=None, content_type=None):
and last_rest_key_case_insensitive_extractor)
:param dict data: A dict using RestAPI structure
+ :param function key_extractors: A key extractor function.
:param str content_type: JSON by default, set application/xml if XML.
:returns: An instance of this model
:raises: DeserializationError if something went wrong
+ :rtype: ModelType
"""
deserializer = Deserializer(cls._infer_class_models())
- deserializer.key_extractors = (
- [
+ deserializer.key_extractors = ( # type: ignore
+ [ # type: ignore
attribute_key_case_insensitive_extractor,
rest_key_case_insensitive_extractor,
last_rest_key_case_insensitive_extractor,
@@ -421,7 +492,7 @@ def from_dict(cls, data, key_extractors=None, content_type=None):
if key_extractors is None
else key_extractors
)
- return deserializer(cls.__name__, data, content_type=content_type)
+ return deserializer(cls.__name__, data, content_type=content_type) # type: ignore
@classmethod
def _flatten_subtype(cls, key, objects):
@@ -429,21 +500,25 @@ def _flatten_subtype(cls, key, objects):
return {}
result = dict(cls._subtype_map[key])
for valuetype in cls._subtype_map[key].values():
- result.update(objects[valuetype]._flatten_subtype(key, objects))
+ result.update(objects[valuetype]._flatten_subtype(key, objects)) # pylint: disable=protected-access
return result
@classmethod
def _classify(cls, response, objects):
"""Check the class _subtype_map for any child classes.
We want to ignore any inherited _subtype_maps.
- Remove the polymorphic key from the initial data.
+
+ :param dict response: The initial data
+ :param dict objects: The class objects
+ :returns: The class to be used
+ :rtype: class
"""
for subtype_key in cls.__dict__.get("_subtype_map", {}).keys():
subtype_value = None
if not isinstance(response, ET.Element):
rest_api_response_key = cls._get_rest_key_parts(subtype_key)[-1]
- subtype_value = response.pop(rest_api_response_key, None) or response.pop(subtype_key, None)
+ subtype_value = response.get(rest_api_response_key, None) or response.get(subtype_key, None)
else:
subtype_value = xml_key_extractor(subtype_key, cls._attribute_map[subtype_key], response)
if subtype_value:
@@ -453,7 +528,7 @@ def _classify(cls, response, objects):
return cls
flatten_mapping_type = cls._flatten_subtype(subtype_key, objects)
try:
- return objects[flatten_mapping_type[subtype_value]]
+ return objects[flatten_mapping_type[subtype_value]] # type: ignore
except KeyError:
_LOGGER.warning(
"Subtype value %s has no mapping, use base class %s.",
@@ -482,11 +557,13 @@ def _decode_attribute_map_key(key):
inside the received data.
:param str key: A key string from the generated code
+ :returns: The decoded key
+ :rtype: str
"""
return key.replace("\\.", ".")
-class Serializer(object):
+class Serializer: # pylint: disable=too-many-public-methods
"""Request object model serializer."""
basic_types = {str: "str", int: "int", bool: "bool", float: "float"}
@@ -521,7 +598,7 @@ class Serializer(object):
"multiple": lambda x, y: x % y != 0,
}
- def __init__(self, classes=None):
+ def __init__(self, classes: Optional[Mapping[str, type]] = None) -> None:
self.serialize_type = {
"iso-8601": Serializer.serialize_iso,
"rfc-1123": Serializer.serialize_rfc,
@@ -537,17 +614,20 @@ def __init__(self, classes=None):
"[]": self.serialize_iter,
"{}": self.serialize_dict,
}
- self.dependencies = dict(classes) if classes else {}
+ self.dependencies: Dict[str, type] = dict(classes) if classes else {}
self.key_transformer = full_restapi_key_transformer
self.client_side_validation = True
- def _serialize(self, target_obj, data_type=None, **kwargs):
+ def _serialize( # pylint: disable=too-many-nested-blocks, too-many-branches, too-many-statements, too-many-locals
+ self, target_obj, data_type=None, **kwargs
+ ):
"""Serialize data into a string according to type.
- :param target_obj: The data to be serialized.
+ :param object target_obj: The data to be serialized.
:param str data_type: The type to be serialized from.
:rtype: str, dict
:raises: SerializationError if serialization fails.
+ :returns: The serialized data.
"""
key_transformer = kwargs.get("key_transformer", self.key_transformer)
keep_readonly = kwargs.get("keep_readonly", False)
@@ -573,12 +653,14 @@ def _serialize(self, target_obj, data_type=None, **kwargs):
serialized = {}
if is_xml_model_serialization:
- serialized = target_obj._create_xml_node()
+ serialized = target_obj._create_xml_node() # pylint: disable=protected-access
try:
- attributes = target_obj._attribute_map
+ attributes = target_obj._attribute_map # pylint: disable=protected-access
for attr, attr_desc in attributes.items():
attr_name = attr
- if not keep_readonly and target_obj._validation.get(attr_name, {}).get("readonly", False):
+ if not keep_readonly and target_obj._validation.get( # pylint: disable=protected-access
+ attr_name, {}
+ ).get("readonly", False):
continue
if attr_name == "additional_properties" and attr_desc["key"] == "":
@@ -605,62 +687,63 @@ def _serialize(self, target_obj, data_type=None, **kwargs):
if xml_desc.get("attr", False):
if xml_ns:
ET.register_namespace(xml_prefix, xml_ns)
- xml_name = "{}{}".format(xml_ns, xml_name)
- serialized.set(xml_name, new_attr)
+ xml_name = "{{{}}}{}".format(xml_ns, xml_name)
+ serialized.set(xml_name, new_attr) # type: ignore
continue
if xml_desc.get("text", False):
- serialized.text = new_attr
+ serialized.text = new_attr # type: ignore
continue
if isinstance(new_attr, list):
- serialized.extend(new_attr)
+ serialized.extend(new_attr) # type: ignore
elif isinstance(new_attr, ET.Element):
- # If the down XML has no XML/Name, we MUST replace the tag with the local tag. But keeping the namespaces.
+ # If the down XML has no XML/Name,
+ # we MUST replace the tag with the local tag. But keeping the namespaces.
if "name" not in getattr(orig_attr, "_xml_map", {}):
splitted_tag = new_attr.tag.split("}")
if len(splitted_tag) == 2: # Namespace
new_attr.tag = "}".join([splitted_tag[0], xml_name])
else:
new_attr.tag = xml_name
- serialized.append(new_attr)
+ serialized.append(new_attr) # type: ignore
else: # That's a basic type
# Integrate namespace if necessary
local_node = _create_xml_node(xml_name, xml_prefix, xml_ns)
- local_node.text = unicode_str(new_attr)
- serialized.append(local_node)
+ local_node.text = str(new_attr)
+ serialized.append(local_node) # type: ignore
else: # JSON
- for k in reversed(keys):
- unflattened = {k: new_attr}
- new_attr = unflattened
+ for k in reversed(keys): # type: ignore
+ new_attr = {k: new_attr}
_new_attr = new_attr
_serialized = serialized
- for k in keys:
+ for k in keys: # type: ignore
if k not in _serialized:
- _serialized.update(_new_attr)
- _new_attr = _new_attr[k]
+ _serialized.update(_new_attr) # type: ignore
+ _new_attr = _new_attr[k] # type: ignore
_serialized = _serialized[k]
- except ValueError:
- continue
+ except ValueError as err:
+ if isinstance(err, SerializationError):
+ raise
except (AttributeError, KeyError, TypeError) as err:
msg = "Attribute {} in object {} cannot be serialized.\n{}".format(attr_name, class_name, str(target_obj))
- raise_with_traceback(SerializationError, msg, err)
- else:
- return serialized
+ raise SerializationError(msg) from err
+ return serialized
def body(self, data, data_type, **kwargs):
"""Serialize data intended for a request body.
- :param data: The data to be serialized.
+ :param object data: The data to be serialized.
:param str data_type: The type to be serialized from.
:rtype: dict
:raises: SerializationError if serialization fails.
:raises: ValueError if data is None
+ :returns: The serialized request body
"""
# Just in case this is a dict
- internal_data_type = data_type.strip("[]{}")
- internal_data_type = self.dependencies.get(internal_data_type, None)
+ internal_data_type_str = data_type.strip("[]{}")
+ internal_data_type = self.dependencies.get(internal_data_type_str, None)
try:
is_xml_model_serialization = kwargs["is_xml"]
except KeyError:
@@ -675,7 +758,7 @@ def body(self, data, data_type, **kwargs):
# We're not able to deal with additional properties for now.
deserializer.additional_properties_detection = False
if is_xml_model_serialization:
- deserializer.key_extractors = [
+ deserializer.key_extractors = [ # type: ignore
attribute_key_case_insensitive_extractor,
]
else:
@@ -684,18 +767,20 @@ def body(self, data, data_type, **kwargs):
attribute_key_case_insensitive_extractor,
last_rest_key_case_insensitive_extractor,
]
- data = deserializer._deserialize(data_type, data)
+ data = deserializer._deserialize(data_type, data) # pylint: disable=protected-access
except DeserializationError as err:
- raise_with_traceback(SerializationError, "Unable to build a model: " + str(err), err)
+ raise SerializationError("Unable to build a model: " + str(err)) from err
return self._serialize(data, data_type, **kwargs)
def url(self, name, data, data_type, **kwargs):
"""Serialize data intended for a URL path.
- :param data: The data to be serialized.
+ :param str name: The name of the URL path parameter.
+ :param object data: The data to be serialized.
:param str data_type: The type to be serialized from.
:rtype: str
+ :returns: The serialized URL path
:raises: TypeError if serialization fails.
:raises: ValueError if data is None
"""
@@ -706,30 +791,30 @@ def url(self, name, data, data_type, **kwargs):
if kwargs.get("skip_quote") is True:
output = str(output)
+ output = output.replace("{", quote("{")).replace("}", quote("}"))
else:
output = quote(str(output), safe="")
- except SerializationError:
- raise TypeError("{} must be type {}.".format(name, data_type))
- else:
- return output
+ except SerializationError as exc:
+ raise TypeError("{} must be type {}.".format(name, data_type)) from exc
+ return output
def query(self, name, data, data_type, **kwargs):
"""Serialize data intended for a URL query.
- :param data: The data to be serialized.
+ :param str name: The name of the query parameter.
+ :param object data: The data to be serialized.
:param str data_type: The type to be serialized from.
- :rtype: str
+ :rtype: str, list
:raises: TypeError if serialization fails.
:raises: ValueError if data is None
+ :returns: The serialized query parameter
"""
try:
# Treat the list aside, since we don't want to encode the div separator
if data_type.startswith("["):
internal_data_type = data_type[1:-1]
- data = [self.serialize_data(d, internal_data_type, **kwargs) if d is not None else "" for d in data]
- if not kwargs.get("skip_quote", False):
- data = [quote(str(d), safe="") for d in data]
- return str(self.serialize_iter(data, internal_data_type, **kwargs))
+ do_quote = not kwargs.get("skip_quote", False)
+ return self.serialize_iter(data, internal_data_type, do_quote=do_quote, **kwargs)
# Not a list, regular serialization
output = self.serialize_data(data, data_type, **kwargs)
@@ -739,19 +824,20 @@ def query(self, name, data, data_type, **kwargs):
output = str(output)
else:
output = quote(str(output), safe="")
- except SerializationError:
- raise TypeError("{} must be type {}.".format(name, data_type))
- else:
- return str(output)
+ except SerializationError as exc:
+ raise TypeError("{} must be type {}.".format(name, data_type)) from exc
+ return str(output)
def header(self, name, data, data_type, **kwargs):
"""Serialize data intended for a request header.
- :param data: The data to be serialized.
+ :param str name: The name of the header.
+ :param object data: The data to be serialized.
:param str data_type: The type to be serialized from.
:rtype: str
:raises: TypeError if serialization fails.
:raises: ValueError if data is None
+ :returns: The serialized header
"""
try:
if data_type in ["[str]"]:
@@ -760,30 +846,31 @@ def header(self, name, data, data_type, **kwargs):
output = self.serialize_data(data, data_type, **kwargs)
if data_type == "bool":
output = json.dumps(output)
- except SerializationError:
- raise TypeError("{} must be type {}.".format(name, data_type))
- else:
- return str(output)
+ except SerializationError as exc:
+ raise TypeError("{} must be type {}.".format(name, data_type)) from exc
+ return str(output)
def serialize_data(self, data, data_type, **kwargs):
"""Serialize generic data according to supplied data type.
- :param data: The data to be serialized.
+ :param object data: The data to be serialized.
:param str data_type: The type to be serialized from.
- :param bool required: Whether it's essential that the data not be
- empty or None
:raises: AttributeError if required data is None.
:raises: ValueError if data is None
:raises: SerializationError if serialization fails.
+ :returns: The serialized data.
+ :rtype: str, int, float, bool, dict, list
"""
if data is None:
raise ValueError("No value for given attribute")
try:
+ if data is CoreNull:
+ return None
if data_type in self.basic_types.values():
return self.serialize_basic(data, data_type, **kwargs)
- elif data_type in self.serialize_type:
+ if data_type in self.serialize_type:
return self.serialize_type[data_type](data, **kwargs)
# If dependencies is empty, try with current data class
@@ -798,12 +885,11 @@ def serialize_data(self, data, data_type, **kwargs):
except (ValueError, TypeError) as err:
msg = "Unable to serialize value: {!r} as type: {!r}."
- raise_with_traceback(SerializationError, msg.format(data, data_type), err)
- else:
- return self._serialize(data, **kwargs)
+ raise SerializationError(msg.format(data, data_type)) from err
+ return self._serialize(data, **kwargs)
@classmethod
- def _get_custom_serializers(cls, data_type, **kwargs):
+ def _get_custom_serializers(cls, data_type, **kwargs): # pylint: disable=inconsistent-return-statements
custom_serializer = kwargs.get("basic_types_serializers", {}).get(data_type)
if custom_serializer:
return custom_serializer
@@ -819,23 +905,26 @@ def serialize_basic(cls, data, data_type, **kwargs):
- basic_types_serializers dict[str, callable] : If set, use the callable as serializer
- is_xml bool : If set, use xml_basic_types_serializers
- :param data: Object to be serialized.
+ :param obj data: Object to be serialized.
:param str data_type: Type of object in the iterable.
+ :rtype: str, int, float, bool
+ :return: serialized object
"""
custom_serializer = cls._get_custom_serializers(data_type, **kwargs)
if custom_serializer:
return custom_serializer(data)
if data_type == "str":
return cls.serialize_unicode(data)
- return eval(data_type)(data) # nosec
+ return eval(data_type)(data) # nosec # pylint: disable=eval-used
@classmethod
def serialize_unicode(cls, data):
"""Special handling for serializing unicode strings in Py2.
Encode to UTF-8 if unicode, otherwise handle as a str.
- :param data: Object to be serialized.
+ :param str data: Object to be serialized.
:rtype: str
+ :return: serialized object
"""
try: # If I received an enum, return its value
return data.value
@@ -843,14 +932,13 @@ def serialize_unicode(cls, data):
pass
try:
- if isinstance(data, unicode):
+ if isinstance(data, unicode): # type: ignore
# Don't change it, JSON and XML ElementTree are totally able
# to serialize correctly u'' strings
return data
except NameError:
return str(data)
- else:
- return str(data)
+ return str(data)
def serialize_iter(self, data, iter_type, div=None, **kwargs):
"""Serialize iterable.
@@ -860,13 +948,13 @@ def serialize_iter(self, data, iter_type, div=None, **kwargs):
serialization_ctxt['type'] should be same as data_type.
- is_xml bool : If set, serialize as XML
- :param list attr: Object to be serialized.
+ :param list data: Object to be serialized.
:param str iter_type: Type of object in the iterable.
- :param bool required: Whether the objects in the iterable must
- not be None or empty.
:param str div: If set, this str will be used to combine the elements
in the iterable into a combined string. Default is 'None'.
+ Defaults to False.
:rtype: list, str
+ :return: serialized iterable
"""
if isinstance(data, str):
raise SerializationError("Refuse str type as a valid iter type.")
@@ -878,9 +966,14 @@ def serialize_iter(self, data, iter_type, div=None, **kwargs):
for d in data:
try:
serialized.append(self.serialize_data(d, iter_type, **kwargs))
- except ValueError:
+ except ValueError as err:
+ if isinstance(err, SerializationError):
+ raise
serialized.append(None)
+ if kwargs.get("do_quote", False):
+ serialized = ["" if s is None else quote(str(s), safe="") for s in serialized]
+
if div:
serialized = ["" if s is None else str(s) for s in serialized]
serialized = div.join(serialized)
@@ -916,16 +1009,17 @@ def serialize_dict(self, attr, dict_type, **kwargs):
:param dict attr: Object to be serialized.
:param str dict_type: Type of object in the dictionary.
- :param bool required: Whether the objects in the dictionary must
- not be None or empty.
:rtype: dict
+ :return: serialized dictionary
"""
serialization_ctxt = kwargs.get("serialization_ctxt", {})
serialized = {}
for key, value in attr.items():
try:
serialized[self.serialize_unicode(key)] = self.serialize_data(value, dict_type, **kwargs)
- except ValueError:
+ except ValueError as err:
+ if isinstance(err, SerializationError):
+ raise
serialized[self.serialize_unicode(key)] = None
if "xml" in serialization_ctxt:
@@ -940,7 +1034,7 @@ def serialize_dict(self, attr, dict_type, **kwargs):
return serialized
- def serialize_object(self, attr, **kwargs):
+ def serialize_object(self, attr, **kwargs): # pylint: disable=too-many-return-statements
"""Serialize a generic object.
This will be handled as a dictionary. If object passed in is not
a basic type (str, int, float, dict, list) it will simply be
@@ -948,6 +1042,7 @@ def serialize_object(self, attr, **kwargs):
:param dict attr: Object to be serialized.
:rtype: dict or str
+ :return: serialized object
"""
if attr is None:
return None
@@ -958,7 +1053,7 @@ def serialize_object(self, attr, **kwargs):
return self.serialize_basic(attr, self.basic_types[obj_type], **kwargs)
if obj_type is _long_type:
return self.serialize_long(attr)
- if obj_type is unicode_str:
+ if obj_type is str:
return self.serialize_unicode(attr)
if obj_type is datetime.datetime:
return self.serialize_iso(attr)
@@ -972,7 +1067,7 @@ def serialize_object(self, attr, **kwargs):
return self.serialize_decimal(attr)
# If it's a model or I know this dependency, serialize as a Model
- elif obj_type in self.dependencies.values() or isinstance(attr, Model):
+ if obj_type in self.dependencies.values() or isinstance(attr, Model):
return self._serialize(attr)
if obj_type == dict:
@@ -1001,58 +1096,63 @@ def serialize_enum(attr, enum_obj=None):
except AttributeError:
result = attr
try:
- enum_obj(result)
+ enum_obj(result) # type: ignore
return result
- except ValueError:
- for enum_value in enum_obj:
+ except ValueError as exc:
+ for enum_value in enum_obj: # type: ignore
if enum_value.value.lower() == str(attr).lower():
return enum_value.value
error = "{!r} is not valid value for enum {!r}"
- raise SerializationError(error.format(attr, enum_obj))
+ raise SerializationError(error.format(attr, enum_obj)) from exc
@staticmethod
- def serialize_bytearray(attr, **kwargs):
+ def serialize_bytearray(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize bytearray into base-64 string.
- :param attr: Object to be serialized.
+ :param str attr: Object to be serialized.
:rtype: str
+ :return: serialized base64
"""
return b64encode(attr).decode()
@staticmethod
- def serialize_base64(attr, **kwargs):
+ def serialize_base64(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize str into base-64 string.
- :param attr: Object to be serialized.
+ :param str attr: Object to be serialized.
:rtype: str
+ :return: serialized base64
"""
encoded = b64encode(attr).decode("ascii")
return encoded.strip("=").replace("+", "-").replace("/", "_")
@staticmethod
- def serialize_decimal(attr, **kwargs):
+ def serialize_decimal(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Decimal object to float.
- :param attr: Object to be serialized.
+ :param decimal attr: Object to be serialized.
:rtype: float
+ :return: serialized decimal
"""
return float(attr)
@staticmethod
- def serialize_long(attr, **kwargs):
+ def serialize_long(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize long (Py2) or int (Py3).
- :param attr: Object to be serialized.
+ :param int attr: Object to be serialized.
:rtype: int/long
+ :return: serialized long
"""
return _long_type(attr)
@staticmethod
- def serialize_date(attr, **kwargs):
+ def serialize_date(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Date object into ISO-8601 formatted string.
:param Date attr: Object to be serialized.
:rtype: str
+ :return: serialized date
"""
if isinstance(attr, str):
attr = isodate.parse_date(attr)
@@ -1060,11 +1160,12 @@ def serialize_date(attr, **kwargs):
return t
@staticmethod
- def serialize_time(attr, **kwargs):
+ def serialize_time(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Time object into ISO-8601 formatted string.
:param datetime.time attr: Object to be serialized.
:rtype: str
+ :return: serialized time
"""
if isinstance(attr, str):
attr = isodate.parse_time(attr)
@@ -1074,30 +1175,32 @@ def serialize_time(attr, **kwargs):
return t
@staticmethod
- def serialize_duration(attr, **kwargs):
+ def serialize_duration(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize TimeDelta object into ISO-8601 formatted string.
:param TimeDelta attr: Object to be serialized.
:rtype: str
+ :return: serialized duration
"""
if isinstance(attr, str):
attr = isodate.parse_duration(attr)
return isodate.duration_isoformat(attr)
@staticmethod
- def serialize_rfc(attr, **kwargs):
+ def serialize_rfc(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Datetime object into RFC-1123 formatted string.
:param Datetime attr: Object to be serialized.
:rtype: str
:raises: TypeError if format invalid.
+ :return: serialized rfc
"""
try:
if not attr.tzinfo:
_LOGGER.warning("Datetime with no tzinfo will be considered UTC.")
utc = attr.utctimetuple()
- except AttributeError:
- raise TypeError("RFC1123 object must be valid Datetime object.")
+ except AttributeError as exc:
+ raise TypeError("RFC1123 object must be valid Datetime object.") from exc
return "{}, {:02} {} {:04} {:02}:{:02}:{:02} GMT".format(
Serializer.days[utc.tm_wday],
@@ -1110,12 +1213,13 @@ def serialize_rfc(attr, **kwargs):
)
@staticmethod
- def serialize_iso(attr, **kwargs):
+ def serialize_iso(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Datetime object into ISO-8601 formatted string.
:param Datetime attr: Object to be serialized.
:rtype: str
:raises: SerializationError if format invalid.
+ :return: serialized iso
"""
if isinstance(attr, str):
attr = isodate.parse_datetime(attr)
@@ -1135,19 +1239,20 @@ def serialize_iso(attr, **kwargs):
return date + microseconds + "Z"
except (ValueError, OverflowError) as err:
msg = "Unable to serialize datetime object."
- raise_with_traceback(SerializationError, msg, err)
+ raise SerializationError(msg) from err
except AttributeError as err:
msg = "ISO-8601 object must be valid Datetime object."
- raise_with_traceback(TypeError, msg, err)
+ raise TypeError(msg) from err
@staticmethod
- def serialize_unix(attr, **kwargs):
+ def serialize_unix(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Datetime object into IntTime format.
This is represented as seconds.
:param Datetime attr: Object to be serialized.
:rtype: int
:raises: SerializationError if format invalid
+ :return: serialied unix
"""
if isinstance(attr, int):
return attr
@@ -1155,16 +1260,17 @@ def serialize_unix(attr, **kwargs):
if not attr.tzinfo:
_LOGGER.warning("Datetime with no tzinfo will be considered UTC.")
return int(calendar.timegm(attr.utctimetuple()))
- except AttributeError:
- raise TypeError("Unix time object must be valid Datetime object.")
+ except AttributeError as exc:
+ raise TypeError("Unix time object must be valid Datetime object.") from exc
-def rest_key_extractor(attr, attr_desc, data):
+def rest_key_extractor(attr, attr_desc, data): # pylint: disable=unused-argument
key = attr_desc["key"]
working_data = data
while "." in key:
- dict_keys = _FLATTEN.split(key)
+ # Need the cast, as for some reasons "split" is typed as list[str | Any]
+ dict_keys = cast(List[str], _FLATTEN.split(key))
if len(dict_keys) == 1:
key = _decode_attribute_map_key(dict_keys[0])
break
@@ -1173,14 +1279,15 @@ def rest_key_extractor(attr, attr_desc, data):
if working_data is None:
# If at any point while following flatten JSON path see None, it means
# that all properties under are None as well
- # https://github.com/Azure/msrest-for-python/issues/197
return None
key = ".".join(dict_keys[1:])
return working_data.get(key)
-def rest_key_case_insensitive_extractor(attr, attr_desc, data):
+def rest_key_case_insensitive_extractor( # pylint: disable=unused-argument, inconsistent-return-statements
+ attr, attr_desc, data
+):
key = attr_desc["key"]
working_data = data
@@ -1194,7 +1301,6 @@ def rest_key_case_insensitive_extractor(attr, attr_desc, data):
if working_data is None:
# If at any point while following flatten JSON path see None, it means
# that all properties under are None as well
- # https://github.com/Azure/msrest-for-python/issues/197
return None
key = ".".join(dict_keys[1:])
@@ -1202,17 +1308,29 @@ def rest_key_case_insensitive_extractor(attr, attr_desc, data):
return attribute_key_case_insensitive_extractor(key, None, working_data)
-def last_rest_key_extractor(attr, attr_desc, data):
- """Extract the attribute in "data" based on the last part of the JSON path key."""
+def last_rest_key_extractor(attr, attr_desc, data): # pylint: disable=unused-argument
+ """Extract the attribute in "data" based on the last part of the JSON path key.
+
+ :param str attr: The attribute to extract
+ :param dict attr_desc: The attribute description
+ :param dict data: The data to extract from
+ :rtype: object
+ :returns: The extracted attribute
+ """
key = attr_desc["key"]
dict_keys = _FLATTEN.split(key)
return attribute_key_extractor(dict_keys[-1], None, data)
-def last_rest_key_case_insensitive_extractor(attr, attr_desc, data):
+def last_rest_key_case_insensitive_extractor(attr, attr_desc, data): # pylint: disable=unused-argument
"""Extract the attribute in "data" based on the last part of the JSON path key.
This is the case insensitive version of "last_rest_key_extractor"
+ :param str attr: The attribute to extract
+ :param dict attr_desc: The attribute description
+ :param dict data: The data to extract from
+ :rtype: object
+ :returns: The extracted attribute
"""
key = attr_desc["key"]
dict_keys = _FLATTEN.split(key)
@@ -1245,11 +1363,11 @@ def _extract_name_from_internal_type(internal_type):
xml_name = internal_type_xml_map.get("name", internal_type.__name__)
xml_ns = internal_type_xml_map.get("ns", None)
if xml_ns:
- xml_name = "{}{}".format(xml_ns, xml_name)
+ xml_name = "{{{}}}{}".format(xml_ns, xml_name)
return xml_name
-def xml_key_extractor(attr, attr_desc, data):
+def xml_key_extractor(attr, attr_desc, data): # pylint: disable=unused-argument,too-many-return-statements
if isinstance(data, dict):
return None
@@ -1269,7 +1387,7 @@ def xml_key_extractor(attr, attr_desc, data):
# Integrate namespace if necessary
xml_ns = xml_desc.get("ns", internal_type_xml_map.get("ns", None))
if xml_ns:
- xml_name = "{}{}".format(xml_ns, xml_name)
+ xml_name = "{{{}}}{}".format(xml_ns, xml_name)
# If it's an attribute, that's simple
if xml_desc.get("attr", False):
@@ -1301,22 +1419,21 @@ def xml_key_extractor(attr, attr_desc, data):
if is_iter_type:
if is_wrapped:
return None # is_wrapped no node, we want None
- else:
- return [] # not wrapped, assume empty list
+ return [] # not wrapped, assume empty list
return None # Assume it's not there, maybe an optional node.
# If is_iter_type and not wrapped, return all found children
if is_iter_type:
if not is_wrapped:
return children
- else: # Iter and wrapped, should have found one node only (the wrap one)
- if len(children) != 1:
- raise DeserializationError(
- "Tried to deserialize an array not wrapped, and found several nodes '{}'. Maybe you should declare this array as wrapped?".format(
- xml_name
- )
+ # Iter and wrapped, should have found one node only (the wrap one)
+ if len(children) != 1:
+ raise DeserializationError(
+ "Tried to deserialize an array not wrapped, and found several nodes '{}'. Maybe you should declare this array as wrapped?".format( # pylint: disable=line-too-long
+ xml_name
)
- return list(children[0]) # Might be empty list and that's ok.
+ )
+ return list(children[0]) # Might be empty list and that's ok.
# Here it's not a itertype, we should have found one element only or empty
if len(children) > 1:
@@ -1324,7 +1441,7 @@ def xml_key_extractor(attr, attr_desc, data):
return children[0]
-class Deserializer(object):
+class Deserializer:
"""Response object model deserializer.
:param dict classes: Class type dictionary for deserializing complex types.
@@ -1333,9 +1450,9 @@ class Deserializer(object):
basic_types = {str: "str", int: "int", bool: "bool", float: "float"}
- valid_date = re.compile(r"\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}" r"\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?")
+ valid_date = re.compile(r"\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?")
- def __init__(self, classes=None):
+ def __init__(self, classes: Optional[Mapping[str, type]] = None) -> None:
self.deserialize_type = {
"iso-8601": Deserializer.deserialize_iso,
"rfc-1123": Deserializer.deserialize_rfc,
@@ -1355,7 +1472,7 @@ def __init__(self, classes=None):
"duration": (isodate.Duration, datetime.timedelta),
"iso-8601": (datetime.datetime),
}
- self.dependencies = dict(classes) if classes else {}
+ self.dependencies: Dict[str, type] = dict(classes) if classes else {}
self.key_extractors = [rest_key_extractor, xml_key_extractor]
# Additional properties only works if the "rest_key_extractor" is used to
# extract the keys. Making it to work whatever the key extractor is too much
@@ -1373,11 +1490,12 @@ def __call__(self, target_obj, response_data, content_type=None):
:param str content_type: Swagger "produces" if available.
:raises: DeserializationError if deserialization fails.
:return: Deserialized object.
+ :rtype: object
"""
data = self._unpack_content(response_data, content_type)
return self._deserialize(target_obj, data)
- def _deserialize(self, target_obj, data):
+ def _deserialize(self, target_obj, data): # pylint: disable=inconsistent-return-statements
"""Call the deserializer on a model.
Data needs to be already deserialized as JSON or XML ElementTree
@@ -1386,12 +1504,13 @@ def _deserialize(self, target_obj, data):
:param object data: Object to deserialize.
:raises: DeserializationError if deserialization fails.
:return: Deserialized object.
+ :rtype: object
"""
# This is already a model, go recursive just in case
if hasattr(data, "_attribute_map"):
constants = [name for name, config in getattr(data, "_validation", {}).items() if config.get("constant")]
try:
- for attr, mapconfig in data._attribute_map.items():
+ for attr, mapconfig in data._attribute_map.items(): # pylint: disable=protected-access
if attr in constants:
continue
value = getattr(data, attr)
@@ -1408,15 +1527,15 @@ def _deserialize(self, target_obj, data):
response, class_name = self._classify_target(target_obj, data)
- if isinstance(response, basestring):
+ if isinstance(response, str):
return self.deserialize_data(data, response)
- elif isinstance(response, type) and issubclass(response, Enum):
+ if isinstance(response, type) and issubclass(response, Enum):
return self.deserialize_enum(data, response)
- if data is None:
+ if data is None or data is CoreNull:
return data
try:
- attributes = response._attribute_map
+ attributes = response._attribute_map # type: ignore # pylint: disable=protected-access
d_attrs = {}
for attr, attr_desc in attributes.items():
# Check empty string. If it's not empty, someone has a real "additionalProperties"...
@@ -1444,11 +1563,10 @@ def _deserialize(self, target_obj, data):
value = self.deserialize_data(raw_value, attr_desc["type"])
d_attrs[attr] = value
except (AttributeError, TypeError, KeyError) as err:
- msg = "Unable to deserialize to object: " + class_name
- raise_with_traceback(DeserializationError, msg, err)
- else:
- additional_properties = self._build_additional_properties(attributes, data)
- return self._instantiate_model(response, d_attrs, additional_properties)
+ msg = "Unable to deserialize to object: " + class_name # type: ignore
+ raise DeserializationError(msg) from err
+ additional_properties = self._build_additional_properties(attributes, data)
+ return self._instantiate_model(response, d_attrs, additional_properties)
def _build_additional_properties(self, attribute_map, data):
if not self.additional_properties_detection:
@@ -1474,22 +1592,24 @@ def _classify_target(self, target, data):
Once classification has been determined, initialize object.
:param str target: The target object type to deserialize to.
- :param str/dict data: The response data to deseralize.
+ :param str/dict data: The response data to deserialize.
+ :return: The classified target object and its class name.
+ :rtype: tuple
"""
if target is None:
return None, None
- if isinstance(target, basestring):
+ if isinstance(target, str):
try:
target = self.dependencies[target]
except KeyError:
return target, target
try:
- target = target._classify(data, self.dependencies)
+ target = target._classify(data, self.dependencies) # type: ignore # pylint: disable=protected-access
except AttributeError:
pass # Target is not a Model, no classify
- return target, target.__class__.__name__
+ return target, target.__class__.__name__ # type: ignore
def failsafe_deserialize(self, target_obj, data, content_type=None):
"""Ignores any errors encountered in deserialization,
@@ -1499,12 +1619,14 @@ def failsafe_deserialize(self, target_obj, data, content_type=None):
a deserialization error.
:param str target_obj: The target object type to deserialize to.
- :param str/dict data: The response data to deseralize.
+ :param str/dict data: The response data to deserialize.
:param str content_type: Swagger "produces" if available.
+ :return: Deserialized object.
+ :rtype: object
"""
try:
return self(target_obj, data, content_type=content_type)
- except:
+ except: # pylint: disable=bare-except
_LOGGER.debug(
"Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True
)
@@ -1522,10 +1644,12 @@ def _unpack_content(raw_data, content_type=None):
If raw_data is something else, bypass all logic and return it directly.
- :param raw_data: Data to be processed.
- :param content_type: How to parse if raw_data is a string/bytes.
+ :param obj raw_data: Data to be processed.
+ :param str content_type: How to parse if raw_data is a string/bytes.
:raises JSONDecodeError: If JSON is requested and parsing is impossible.
:raises UnicodeDecodeError: If bytes is not UTF8
+ :rtype: object
+ :return: Unpacked content.
"""
# Assume this is enough to detect a Pipeline Response without importing it
context = getattr(raw_data, "context", {})
@@ -1542,31 +1666,42 @@ def _unpack_content(raw_data, content_type=None):
if hasattr(raw_data, "_content_consumed"):
return RawDeserializer.deserialize_from_http_generics(raw_data.text, raw_data.headers)
- if isinstance(raw_data, (basestring, bytes)) or hasattr(raw_data, "read"):
- return RawDeserializer.deserialize_from_text(raw_data, content_type)
+ if isinstance(raw_data, (str, bytes)) or hasattr(raw_data, "read"):
+ return RawDeserializer.deserialize_from_text(raw_data, content_type) # type: ignore
return raw_data
def _instantiate_model(self, response, attrs, additional_properties=None):
"""Instantiate a response model passing in deserialized args.
- :param response: The response model class.
- :param d_attrs: The deserialized response attributes.
+ :param Response response: The response model class.
+ :param dict attrs: The deserialized response attributes.
+ :param dict additional_properties: Additional properties to be set.
+ :rtype: Response
+ :return: The instantiated response model.
"""
if callable(response):
subtype = getattr(response, "_subtype_map", {})
try:
- readonly = [k for k, v in response._validation.items() if v.get("readonly")]
- const = [k for k, v in response._validation.items() if v.get("constant")]
+ readonly = [
+ k
+ for k, v in response._validation.items() # pylint: disable=protected-access # type: ignore
+ if v.get("readonly")
+ ]
+ const = [
+ k
+ for k, v in response._validation.items() # pylint: disable=protected-access # type: ignore
+ if v.get("constant")
+ ]
kwargs = {k: v for k, v in attrs.items() if k not in subtype and k not in readonly + const}
response_obj = response(**kwargs)
for attr in readonly:
setattr(response_obj, attr, attrs.get(attr))
if additional_properties:
- response_obj.additional_properties = additional_properties
+ response_obj.additional_properties = additional_properties # type: ignore
return response_obj
except TypeError as err:
- msg = "Unable to deserialize {} into model {}. ".format(kwargs, response)
- raise DeserializationError(msg + str(err))
+ msg = "Unable to deserialize {} into model {}. ".format(kwargs, response) # type: ignore
+ raise DeserializationError(msg + str(err)) from err
else:
try:
for attr, value in attrs.items():
@@ -1575,15 +1710,16 @@ def _instantiate_model(self, response, attrs, additional_properties=None):
except Exception as exp:
msg = "Unable to populate response model. "
msg += "Type: {}, Error: {}".format(type(response), exp)
- raise DeserializationError(msg)
+ raise DeserializationError(msg) from exp
- def deserialize_data(self, data, data_type):
+ def deserialize_data(self, data, data_type): # pylint: disable=too-many-return-statements
"""Process data for deserialization according to data type.
:param str data: The response string to be deserialized.
:param str data_type: The type to deserialize to.
:raises: DeserializationError if deserialization fails.
:return: Deserialized object.
+ :rtype: object
"""
if data is None:
return data
@@ -1597,7 +1733,11 @@ def deserialize_data(self, data, data_type):
if isinstance(data, self.deserialize_expected_types.get(data_type, tuple())):
return data
- is_a_text_parsing_type = lambda x: x not in ["object", "[]", r"{}"]
+ is_a_text_parsing_type = lambda x: x not in [ # pylint: disable=unnecessary-lambda-assignment
+ "object",
+ "[]",
+ r"{}",
+ ]
if isinstance(data, ET.Element) and is_a_text_parsing_type(data_type) and not data.text:
return None
data_val = self.deserialize_type[data_type](data)
@@ -1616,15 +1756,15 @@ def deserialize_data(self, data, data_type):
except (ValueError, TypeError, AttributeError) as err:
msg = "Unable to deserialize response data."
msg += " Data: {}, {}".format(data, data_type)
- raise_with_traceback(DeserializationError, msg, err)
- else:
- return self._deserialize(obj_type, data)
+ raise DeserializationError(msg) from err
+ return self._deserialize(obj_type, data)
def deserialize_iter(self, attr, iter_type):
"""Deserialize an iterable.
:param list attr: Iterable to be deserialized.
:param str iter_type: The type of object in the iterable.
+ :return: Deserialized iterable.
:rtype: list
"""
if attr is None:
@@ -1641,6 +1781,7 @@ def deserialize_dict(self, attr, dict_type):
:param dict/list attr: Dictionary to be deserialized. Also accepts
a list of key, value pairs.
:param str dict_type: The object type of the items in the dictionary.
+ :return: Deserialized dictionary.
:rtype: dict
"""
if isinstance(attr, list):
@@ -1651,11 +1792,12 @@ def deserialize_dict(self, attr, dict_type):
attr = {el.tag: el.text for el in attr}
return {k: self.deserialize_data(v, dict_type) for k, v in attr.items()}
- def deserialize_object(self, attr, **kwargs):
+ def deserialize_object(self, attr, **kwargs): # pylint: disable=too-many-return-statements
"""Deserialize a generic object.
This will be handled as a dictionary.
:param dict attr: Dictionary to be deserialized.
+ :return: Deserialized object.
:rtype: dict
:raises: TypeError if non-builtin datatype encountered.
"""
@@ -1664,7 +1806,7 @@ def deserialize_object(self, attr, **kwargs):
if isinstance(attr, ET.Element):
# Do no recurse on XML, just return the tree as-is
return attr
- if isinstance(attr, basestring):
+ if isinstance(attr, str):
return self.deserialize_basic(attr, "str")
obj_type = type(attr)
if obj_type in self.basic_types:
@@ -1690,11 +1832,10 @@ def deserialize_object(self, attr, **kwargs):
pass
return deserialized
- else:
- error = "Cannot deserialize generic object with type: "
- raise TypeError(error + str(obj_type))
+ error = "Cannot deserialize generic object with type: "
+ raise TypeError(error + str(obj_type))
- def deserialize_basic(self, attr, data_type):
+ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return-statements
"""Deserialize basic builtin data type from string.
Will attempt to convert to str, int, float and bool.
This function will also accept '1', '0', 'true' and 'false' as
@@ -1702,6 +1843,7 @@ def deserialize_basic(self, attr, data_type):
:param str attr: response string to be deserialized.
:param str data_type: deserialization data type.
+ :return: Deserialized basic type.
:rtype: str, int, float or bool
:raises: TypeError if string format is not valid.
"""
@@ -1713,24 +1855,23 @@ def deserialize_basic(self, attr, data_type):
if data_type == "str":
# None or '', node is empty string.
return ""
- else:
- # None or '', node with a strong type is None.
- # Don't try to model "empty bool" or "empty int"
- return None
+ # None or '', node with a strong type is None.
+ # Don't try to model "empty bool" or "empty int"
+ return None
if data_type == "bool":
if attr in [True, False, 1, 0]:
return bool(attr)
- elif isinstance(attr, basestring):
+ if isinstance(attr, str):
if attr.lower() in ["true", "1"]:
return True
- elif attr.lower() in ["false", "0"]:
+ if attr.lower() in ["false", "0"]:
return False
raise TypeError("Invalid boolean value: {}".format(attr))
if data_type == "str":
return self.deserialize_unicode(attr)
- return eval(data_type)(attr) # nosec
+ return eval(data_type)(attr) # nosec # pylint: disable=eval-used
@staticmethod
def deserialize_unicode(data):
@@ -1738,6 +1879,7 @@ def deserialize_unicode(data):
as a string.
:param str data: response string to be deserialized.
+ :return: Deserialized string.
:rtype: str or unicode
"""
# We might be here because we have an enum modeled as string,
@@ -1747,12 +1889,11 @@ def deserialize_unicode(data):
# Consider this is real string
try:
- if isinstance(data, unicode):
+ if isinstance(data, unicode): # type: ignore
return data
except NameError:
return str(data)
- else:
- return str(data)
+ return str(data)
@staticmethod
def deserialize_enum(data, enum_obj):
@@ -1764,6 +1905,7 @@ def deserialize_enum(data, enum_obj):
:param str data: Response string to be deserialized. If this value is
None or invalid it will be returned as-is.
:param Enum enum_obj: Enum object to deserialize to.
+ :return: Deserialized enum object.
:rtype: Enum
"""
if isinstance(data, enum_obj) or data is None:
@@ -1772,12 +1914,11 @@ def deserialize_enum(data, enum_obj):
data = data.value
if isinstance(data, int):
# Workaround. We might consider remove it in the future.
- # https://github.com/Azure/azure-rest-api-specs/issues/141
try:
return list(enum_obj.__members__.values())[data]
- except IndexError:
+ except IndexError as exc:
error = "{!r} is not a valid index for enum {!r}"
- raise DeserializationError(error.format(data, enum_obj))
+ raise DeserializationError(error.format(data, enum_obj)) from exc
try:
return enum_obj(str(data))
except ValueError:
@@ -1793,25 +1934,27 @@ def deserialize_bytearray(attr):
"""Deserialize string into bytearray.
:param str attr: response string to be deserialized.
+ :return: Deserialized bytearray
:rtype: bytearray
:raises: TypeError if string format invalid.
"""
if isinstance(attr, ET.Element):
attr = attr.text
- return bytearray(b64decode(attr))
+ return bytearray(b64decode(attr)) # type: ignore
@staticmethod
def deserialize_base64(attr):
"""Deserialize base64 encoded string into string.
:param str attr: response string to be deserialized.
+ :return: Deserialized base64 string
:rtype: bytearray
:raises: TypeError if string format invalid.
"""
if isinstance(attr, ET.Element):
attr = attr.text
- padding = "=" * (3 - (len(attr) + 3) % 4)
- attr = attr + padding
+ padding = "=" * (3 - (len(attr) + 3) % 4) # type: ignore
+ attr = attr + padding # type: ignore
encoded = attr.replace("-", "+").replace("_", "/")
return b64decode(encoded)
@@ -1820,34 +1963,37 @@ def deserialize_decimal(attr):
"""Deserialize string into Decimal object.
:param str attr: response string to be deserialized.
- :rtype: Decimal
+ :return: Deserialized decimal
:raises: DeserializationError if string format invalid.
+ :rtype: decimal
"""
if isinstance(attr, ET.Element):
attr = attr.text
try:
- return decimal.Decimal(attr)
+ return decimal.Decimal(str(attr)) # type: ignore
except decimal.DecimalException as err:
msg = "Invalid decimal {}".format(attr)
- raise_with_traceback(DeserializationError, msg, err)
+ raise DeserializationError(msg) from err
@staticmethod
def deserialize_long(attr):
"""Deserialize string into long (Py2) or int (Py3).
:param str attr: response string to be deserialized.
+ :return: Deserialized int
:rtype: long or int
:raises: ValueError if string format invalid.
"""
if isinstance(attr, ET.Element):
attr = attr.text
- return _long_type(attr)
+ return _long_type(attr) # type: ignore
@staticmethod
def deserialize_duration(attr):
"""Deserialize ISO-8601 formatted string into TimeDelta object.
:param str attr: response string to be deserialized.
+ :return: Deserialized duration
:rtype: TimeDelta
:raises: DeserializationError if string format invalid.
"""
@@ -1857,36 +2003,37 @@ def deserialize_duration(attr):
duration = isodate.parse_duration(attr)
except (ValueError, OverflowError, AttributeError) as err:
msg = "Cannot deserialize duration object."
- raise_with_traceback(DeserializationError, msg, err)
- else:
- return duration
+ raise DeserializationError(msg) from err
+ return duration
@staticmethod
def deserialize_date(attr):
"""Deserialize ISO-8601 formatted string into Date object.
:param str attr: response string to be deserialized.
+ :return: Deserialized date
:rtype: Date
:raises: DeserializationError if string format invalid.
"""
if isinstance(attr, ET.Element):
attr = attr.text
- if re.search(r"[^\W\d_]", attr, re.I + re.U):
+ if re.search(r"[^\W\d_]", attr, re.I + re.U): # type: ignore
raise DeserializationError("Date must have only digits and -. Received: %s" % attr)
# This must NOT use defaultmonth/defaultday. Using None ensure this raises an exception.
- return isodate.parse_date(attr, defaultmonth=None, defaultday=None)
+ return isodate.parse_date(attr, defaultmonth=0, defaultday=0)
@staticmethod
def deserialize_time(attr):
"""Deserialize ISO-8601 formatted string into time object.
:param str attr: response string to be deserialized.
+ :return: Deserialized time
:rtype: datetime.time
:raises: DeserializationError if string format invalid.
"""
if isinstance(attr, ET.Element):
attr = attr.text
- if re.search(r"[^\W\d_]", attr, re.I + re.U):
+ if re.search(r"[^\W\d_]", attr, re.I + re.U): # type: ignore
raise DeserializationError("Date must have only digits and -. Received: %s" % attr)
return isodate.parse_time(attr)
@@ -1895,13 +2042,14 @@ def deserialize_rfc(attr):
"""Deserialize RFC-1123 formatted string into Datetime object.
:param str attr: response string to be deserialized.
+ :return: Deserialized RFC datetime
:rtype: Datetime
:raises: DeserializationError if string format invalid.
"""
if isinstance(attr, ET.Element):
attr = attr.text
try:
- parsed_date = email.utils.parsedate_tz(attr)
+ parsed_date = email.utils.parsedate_tz(attr) # type: ignore
date_obj = datetime.datetime(
*parsed_date[:6], tzinfo=_FixedOffset(datetime.timedelta(minutes=(parsed_date[9] or 0) / 60))
)
@@ -1909,22 +2057,22 @@ def deserialize_rfc(attr):
date_obj = date_obj.astimezone(tz=TZ_UTC)
except ValueError as err:
msg = "Cannot deserialize to rfc datetime object."
- raise_with_traceback(DeserializationError, msg, err)
- else:
- return date_obj
+ raise DeserializationError(msg) from err
+ return date_obj
@staticmethod
def deserialize_iso(attr):
"""Deserialize ISO-8601 formatted string into Datetime object.
:param str attr: response string to be deserialized.
+ :return: Deserialized ISO datetime
:rtype: Datetime
:raises: DeserializationError if string format invalid.
"""
if isinstance(attr, ET.Element):
attr = attr.text
try:
- attr = attr.upper()
+ attr = attr.upper() # type: ignore
match = Deserializer.valid_date.match(attr)
if not match:
raise ValueError("Invalid datetime string: " + attr)
@@ -1946,9 +2094,8 @@ def deserialize_iso(attr):
raise OverflowError("Hit max or min date")
except (ValueError, OverflowError, AttributeError) as err:
msg = "Cannot deserialize datetime object."
- raise_with_traceback(DeserializationError, msg, err)
- else:
- return date_obj
+ raise DeserializationError(msg) from err
+ return date_obj
@staticmethod
def deserialize_unix(attr):
@@ -1956,15 +2103,16 @@ def deserialize_unix(attr):
This is represented as seconds.
:param int attr: Object to be serialized.
+ :return: Deserialized datetime
:rtype: Datetime
:raises: DeserializationError if format invalid
"""
if isinstance(attr, ET.Element):
- attr = int(attr.text)
+ attr = int(attr.text) # type: ignore
try:
+ attr = int(attr)
date_obj = datetime.datetime.fromtimestamp(attr, TZ_UTC)
except ValueError as err:
msg = "Cannot deserialize to unix datetime object."
- raise_with_traceback(DeserializationError, msg, err)
- else:
- return date_obj
+ raise DeserializationError(msg) from err
+ return date_obj
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_vendor.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_vendor.py
deleted file mode 100644
index 9aad73fc743e..000000000000
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_vendor.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# --------------------------------------------------------------------------
-# 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.pipeline.transport import HttpRequest
-
-
-def _convert_request(request, files=None):
- data = request.content if not files else None
- request = HttpRequest(method=request.method, url=request.url, headers=request.headers, data=data)
- if files:
- request.set_formdata_body(files)
- return request
-
-
-def _format_url_section(template, **kwargs):
- components = template.split("/")
- while components:
- try:
- return template.format(**kwargs)
- except KeyError as key:
- formatted_components = template.split("/")
- components = [c for c in formatted_components if "{}".format(key.args[0]) not in c]
- template = "/".join(components)
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_version.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_version.py
index e32dc6ec4218..eae7c95b6fbd 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_version.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "2.0.0b1"
+VERSION = "0.1.0"
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/__init__.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/__init__.py
index 9ca438659a82..56cbe6fead1c 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/__init__.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/__init__.py
@@ -5,12 +5,18 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+# pylint: disable=wrong-import-position
-from ._attestation_management_client import AttestationManagementClient
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._patch import * # pylint: disable=unused-wildcard-import
+
+from ._attestation_management_client import AttestationManagementClient # type: ignore
try:
from ._patch import __all__ as _patch_all
- from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import
+ from ._patch import *
except ImportError:
_patch_all = []
from ._patch import patch_sdk as _patch_sdk
@@ -18,6 +24,6 @@
__all__ = [
"AttestationManagementClient",
]
-__all__.extend([p for p in _patch_all if p not in __all__])
+__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
_patch_sdk()
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/_attestation_management_client.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/_attestation_management_client.py
index c78a22fbfeb3..fe0258e25e63 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/_attestation_management_client.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/_attestation_management_client.py
@@ -8,21 +8,28 @@
from copy import deepcopy
from typing import Any, Awaitable, TYPE_CHECKING
+from typing_extensions import Self
+from azure.core.pipeline import policies
from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.mgmt.core import AsyncARMPipelineClient
+from azure.mgmt.core.policies import AsyncARMAutoResourceProviderRegistrationPolicy
-from .. import models
+from .. import models as _models
from .._serialization import Deserializer, Serializer
from ._configuration import AttestationManagementClientConfiguration
-from .operations import AttestationProvidersOperations, Operations, PrivateEndpointConnectionsOperations
+from .operations import (
+ AttestationProvidersOperations,
+ Operations,
+ PrivateEndpointConnectionsOperations,
+ PrivateLinkResourcesOperations,
+)
if TYPE_CHECKING:
- # pylint: disable=unused-import,ungrouped-imports
from azure.core.credentials_async import AsyncTokenCredential
-class AttestationManagementClient: # pylint: disable=client-accepts-api-version-keyword
+class AttestationManagementClient:
"""Various APIs for managing resources in attestation service. This primarily encompasses
per-provider management.
@@ -34,13 +41,16 @@ class AttestationManagementClient: # pylint: disable=client-accepts-api-version
:ivar private_endpoint_connections: PrivateEndpointConnectionsOperations operations
:vartype private_endpoint_connections:
azure.mgmt.attestation.aio.operations.PrivateEndpointConnectionsOperations
+ :ivar private_link_resources: PrivateLinkResourcesOperations operations
+ :vartype private_link_resources:
+ azure.mgmt.attestation.aio.operations.PrivateLinkResourcesOperations
:param credential: Credential needed for the client to connect to Azure. Required.
:type credential: ~azure.core.credentials_async.AsyncTokenCredential
:param subscription_id: The ID of the target subscription. Required.
:type subscription_id: str
:param base_url: Service URL. Default value is "https://management.azure.com".
:type base_url: str
- :keyword api_version: Api Version. Default value is "2020-10-01". Note that overriding this
+ :keyword api_version: Api Version. Default value is "2021-06-01". Note that overriding this
default value may result in unsupported behavior.
:paramtype api_version: str
"""
@@ -55,9 +65,27 @@ def __init__(
self._config = AttestationManagementClientConfiguration(
credential=credential, subscription_id=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)}
+ _policies = kwargs.pop("policies", None)
+ if _policies is None:
+ _policies = [
+ policies.RequestIdPolicy(**kwargs),
+ self._config.headers_policy,
+ self._config.user_agent_policy,
+ self._config.proxy_policy,
+ policies.ContentDecodePolicy(**kwargs),
+ AsyncARMAutoResourceProviderRegistrationPolicy(),
+ self._config.redirect_policy,
+ self._config.retry_policy,
+ self._config.authentication_policy,
+ self._config.custom_hook_policy,
+ self._config.logging_policy,
+ policies.DistributedTracingPolicy(**kwargs),
+ policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None,
+ self._config.http_logging_policy,
+ ]
+ self._client: AsyncARMPipelineClient = AsyncARMPipelineClient(base_url=base_url, policies=_policies, **kwargs)
+
+ client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)}
self._serialize = Serializer(client_models)
self._deserialize = Deserializer(client_models)
self._serialize.client_side_validation = False
@@ -68,8 +96,13 @@ def __init__(
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
+ )
- def _send_request(self, request: HttpRequest, **kwargs: Any) -> Awaitable[AsyncHttpResponse]:
+ def _send_request(
+ self, request: HttpRequest, *, stream: bool = False, **kwargs: Any
+ ) -> Awaitable[AsyncHttpResponse]:
"""Runs the network request through the client's chained policies.
>>> from azure.core.rest import HttpRequest
@@ -89,14 +122,14 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> Awaitable[AsyncH
request_copy = deepcopy(request)
request_copy.url = self._client.format_url(request_copy.url)
- return self._client.send_request(request_copy, **kwargs)
+ return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore
async def close(self) -> None:
await self._client.close()
- async def __aenter__(self) -> "AttestationManagementClient":
+ async def __aenter__(self) -> Self:
await self._client.__aenter__()
return self
- async def __aexit__(self, *exc_details) -> None:
+ async def __aexit__(self, *exc_details: Any) -> None:
await self._client.__aexit__(*exc_details)
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/_configuration.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/_configuration.py
index f9315baf2ccd..747bc57214fb 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/_configuration.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/_configuration.py
@@ -6,26 +6,18 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-import sys
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, AsyncARMChallengeAuthenticationPolicy
from .._version import VERSION
-if sys.version_info >= (3, 8):
- from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports
-else:
- from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports
-
if TYPE_CHECKING:
- # pylint: disable=unused-import,ungrouped-imports
from azure.core.credentials_async import AsyncTokenCredential
-class AttestationManagementClientConfiguration(Configuration): # pylint: disable=too-many-instance-attributes
+class AttestationManagementClientConfiguration: # pylint: disable=too-many-instance-attributes
"""Configuration for AttestationManagementClient.
Note that all parameters used to create this instance are saved as instance
@@ -35,14 +27,13 @@ class AttestationManagementClientConfiguration(Configuration): # pylint: disabl
:type credential: ~azure.core.credentials_async.AsyncTokenCredential
:param subscription_id: The ID of the target subscription. Required.
:type subscription_id: str
- :keyword api_version: Api Version. Default value is "2020-10-01". Note that overriding this
+ :keyword api_version: Api Version. Default value is "2021-06-01". Note that overriding this
default value may result in unsupported behavior.
:paramtype api_version: str
"""
def __init__(self, credential: "AsyncTokenCredential", subscription_id: str, **kwargs: Any) -> None:
- super(AttestationManagementClientConfiguration, self).__init__(**kwargs)
- api_version = kwargs.pop("api_version", "2020-10-01") # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", "2021-06-01")
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")
@@ -54,6 +45,7 @@ def __init__(self, credential: "AsyncTokenCredential", subscription_id: str, **k
self.api_version = api_version
self.credential_scopes = kwargs.pop("credential_scopes", ["https://management.azure.com/.default"])
kwargs.setdefault("sdk_moniker", "mgmt-attestation/{}".format(VERSION))
+ self.polling_interval = kwargs.get("polling_interval", 30)
self._configure(**kwargs)
def _configure(self, **kwargs: Any) -> None:
@@ -62,9 +54,9 @@ def _configure(self, **kwargs: Any) -> None:
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.retry_policy = kwargs.get("retry_policy") or policies.AsyncRetryPolicy(**kwargs)
self.authentication_policy = kwargs.get("authentication_policy")
if self.credential and not self.authentication_policy:
self.authentication_policy = AsyncARMChallengeAuthenticationPolicy(
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/__init__.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/__init__.py
index 478c00013778..080163aed3ea 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/__init__.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/__init__.py
@@ -5,19 +5,27 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+# pylint: disable=wrong-import-position
-from ._operations import Operations
-from ._attestation_providers_operations import AttestationProvidersOperations
-from ._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._patch import * # pylint: disable=unused-wildcard-import
+
+from ._operations import Operations # type: ignore
+from ._attestation_providers_operations import AttestationProvidersOperations # type: ignore
+from ._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations # type: ignore
+from ._private_link_resources_operations import PrivateLinkResourcesOperations # type: ignore
from ._patch import __all__ as _patch_all
-from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import
+from ._patch import *
from ._patch import patch_sdk as _patch_sdk
__all__ = [
"Operations",
"AttestationProvidersOperations",
"PrivateEndpointConnectionsOperations",
+ "PrivateLinkResourcesOperations",
]
-__all__.extend([p for p in _patch_all if p not in __all__])
+__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
_patch_sdk()
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_attestation_providers_operations.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_attestation_providers_operations.py
index 5aac1f0b14bf..ec5f7cc498b4 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_attestation_providers_operations.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_attestation_providers_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +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 io import IOBase
import sys
from typing import Any, Callable, Dict, IO, Optional, TypeVar, Union, overload
@@ -18,14 +18,12 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._attestation_providers_operations import (
build_create_request,
build_delete_request,
@@ -37,10 +35,10 @@
build_update_request,
)
-if sys.version_info >= (3, 8):
- from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
else:
- from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -73,12 +71,11 @@ async def get(self, resource_group_name: str, provider_name: str, **kwargs: Any)
:type resource_group_name: str
:param provider_name: Name of the attestation provider. Required.
:type provider_name: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -89,25 +86,22 @@ async def get(self, resource_group_name: str, provider_name: str, **kwargs: Any)
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProvider]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.AttestationProvider] = kwargs.pop("cls", None)
- request = build_get_request(
+ _request = build_get_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.get.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -116,14 +110,12 @@ async def get(self, resource_group_name: str, provider_name: str, **kwargs: Any)
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProvider", pipeline_response)
+ deserialized = self._deserialize("AttestationProvider", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}"} # type: ignore
+ return deserialized # type: ignore
@overload
async def create(
@@ -135,7 +127,7 @@ async def create(
content_type: str = "application/json",
**kwargs: Any
) -> _models.AttestationProvider:
- """Creates a new Attestation Provider.
+ """Creates or updates an Attestation Provider.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -147,7 +139,6 @@ async def create(
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
@@ -158,12 +149,12 @@ async def create(
self,
resource_group_name: str,
provider_name: str,
- creation_params: IO,
+ creation_params: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
) -> _models.AttestationProvider:
- """Creates a new Attestation Provider.
+ """Creates or updates an Attestation Provider.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -171,11 +162,10 @@ async def create(
:param provider_name: Name of the attestation provider. Required.
:type provider_name: str
:param creation_params: Client supplied parameters. Required.
- :type creation_params: IO
+ :type creation_params: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
@@ -186,28 +176,25 @@ async def create(
self,
resource_group_name: str,
provider_name: str,
- creation_params: Union[_models.AttestationServiceCreationParams, IO],
+ creation_params: Union[_models.AttestationServiceCreationParams, IO[bytes]],
**kwargs: Any
) -> _models.AttestationProvider:
- """Creates a new Attestation Provider.
+ """Creates or updates an Attestation Provider.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param provider_name: Name of the attestation provider. Required.
:type provider_name: str
- :param creation_params: Client supplied parameters. Is either a model type or a IO type.
- Required.
- :type creation_params: ~azure.mgmt.attestation.models.AttestationServiceCreationParams or IO
- :keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
- Default value is None.
- :paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
+ :param creation_params: Client supplied parameters. Is either a
+ AttestationServiceCreationParams type or a IO[bytes] type. Required.
+ :type creation_params: ~azure.mgmt.attestation.models.AttestationServiceCreationParams or
+ IO[bytes]
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -218,21 +205,19 @@ async def create(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProvider]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.AttestationProvider] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
- if isinstance(creation_params, (IO, bytes)):
+ if isinstance(creation_params, (IOBase, bytes)):
_content = creation_params
else:
_json = self._serialize.body(creation_params, "AttestationServiceCreationParams")
- request = build_create_request(
+ _request = build_create_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
subscription_id=self._config.subscription_id,
@@ -240,15 +225,14 @@ async def create(
content_type=content_type,
json=_json,
content=_content,
- template_url=self.create.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -257,18 +241,12 @@ async def create(
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("AttestationProvider", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("AttestationProvider", pipeline_response)
+ deserialized = self._deserialize("AttestationProvider", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- create.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}"} # type: ignore
+ return deserialized # type: ignore
@overload
async def update(
@@ -292,7 +270,6 @@ async def update(
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
@@ -303,7 +280,7 @@ async def update(
self,
resource_group_name: str,
provider_name: str,
- update_params: IO,
+ update_params: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
@@ -316,11 +293,10 @@ async def update(
:param provider_name: Name of the attestation provider. Required.
:type provider_name: str
:param update_params: Client supplied parameters. Required.
- :type update_params: IO
+ :type update_params: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
@@ -331,7 +307,7 @@ async def update(
self,
resource_group_name: str,
provider_name: str,
- update_params: Union[_models.AttestationServicePatchParams, IO],
+ update_params: Union[_models.AttestationServicePatchParams, IO[bytes]],
**kwargs: Any
) -> _models.AttestationProvider:
"""Updates the Attestation Provider.
@@ -341,18 +317,14 @@ async def update(
:type resource_group_name: str
:param provider_name: Name of the attestation provider. Required.
:type provider_name: str
- :param update_params: Client supplied parameters. Is either a model type or a IO type.
- Required.
- :type update_params: ~azure.mgmt.attestation.models.AttestationServicePatchParams or IO
- :keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
- Default value is None.
- :paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
+ :param update_params: Client supplied parameters. Is either a AttestationServicePatchParams
+ type or a IO[bytes] type. Required.
+ :type update_params: ~azure.mgmt.attestation.models.AttestationServicePatchParams or IO[bytes]
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -363,21 +335,19 @@ async def update(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProvider]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.AttestationProvider] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
- if isinstance(update_params, (IO, bytes)):
+ if isinstance(update_params, (IOBase, bytes)):
_content = update_params
else:
_json = self._serialize.body(update_params, "AttestationServicePatchParams")
- request = build_update_request(
+ _request = build_update_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
subscription_id=self._config.subscription_id,
@@ -385,15 +355,14 @@ async def update(
content_type=content_type,
json=_json,
content=_content,
- template_url=self.update.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -402,19 +371,15 @@ async def update(
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProvider", pipeline_response)
+ deserialized = self._deserialize("AttestationProvider", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}"} # type: ignore
+ return deserialized # type: ignore
@distributed_trace_async
- async def delete( # pylint: disable=inconsistent-return-statements
- self, resource_group_name: str, provider_name: str, **kwargs: Any
- ) -> None:
+ async def delete(self, resource_group_name: str, provider_name: str, **kwargs: Any) -> None:
"""Delete Attestation Service.
:param resource_group_name: The name of the resource group. The name is case insensitive.
@@ -422,12 +387,11 @@ async def delete( # pylint: disable=inconsistent-return-statements
:type resource_group_name: str
:param provider_name: Name of the attestation service. Required.
:type provider_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:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -438,25 +402,22 @@ async def delete( # pylint: disable=inconsistent-return-statements
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[None]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
- request = build_delete_request(
+ _request = build_delete_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.delete.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -466,20 +427,17 @@ async def delete( # pylint: disable=inconsistent-return-statements
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
if cls:
- return cls(pipeline_response, None, {})
-
- delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}"} # type: ignore
+ return cls(pipeline_response, None, {}) # type: ignore
@distributed_trace_async
async def list(self, **kwargs: Any) -> _models.AttestationProviderListResult:
"""Returns a list of attestation providers in a subscription.
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProviderListResult or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProviderListResult
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -490,23 +448,20 @@ async def list(self, **kwargs: Any) -> _models.AttestationProviderListResult:
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProviderListResult]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.AttestationProviderListResult] = kwargs.pop("cls", None)
- request = build_list_request(
+ _request = build_list_request(
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.list.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -515,14 +470,12 @@ async def list(self, **kwargs: Any) -> _models.AttestationProviderListResult:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProviderListResult", pipeline_response)
+ deserialized = self._deserialize("AttestationProviderListResult", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
-
- return deserialized
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- list.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/attestationProviders"} # type: ignore
+ return deserialized # type: ignore
@distributed_trace_async
async def list_by_resource_group(
@@ -533,12 +486,11 @@ async def list_by_resource_group(
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProviderListResult or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProviderListResult
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -549,24 +501,21 @@ async def list_by_resource_group(
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProviderListResult]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.AttestationProviderListResult] = kwargs.pop("cls", None)
- request = build_list_by_resource_group_request(
+ _request = build_list_by_resource_group_request(
resource_group_name=resource_group_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.list_by_resource_group.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -575,25 +524,22 @@ async def list_by_resource_group(
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProviderListResult", pipeline_response)
+ deserialized = self._deserialize("AttestationProviderListResult", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- list_by_resource_group.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders"} # type: ignore
+ return deserialized # type: ignore
@distributed_trace_async
async def list_default(self, **kwargs: Any) -> _models.AttestationProviderListResult:
"""Get the default provider.
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProviderListResult or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProviderListResult
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -604,23 +550,20 @@ async def list_default(self, **kwargs: Any) -> _models.AttestationProviderListRe
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProviderListResult]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.AttestationProviderListResult] = kwargs.pop("cls", None)
- request = build_list_default_request(
+ _request = build_list_default_request(
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.list_default.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -629,14 +572,12 @@ async def list_default(self, **kwargs: Any) -> _models.AttestationProviderListRe
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProviderListResult", pipeline_response)
+ deserialized = self._deserialize("AttestationProviderListResult", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
-
- return deserialized
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- list_default.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/defaultProviders"} # type: ignore
+ return deserialized # type: ignore
@distributed_trace_async
async def get_default_by_location(self, location: str, **kwargs: Any) -> _models.AttestationProvider:
@@ -644,12 +585,11 @@ async def get_default_by_location(self, location: str, **kwargs: Any) -> _models
:param location: The location of the default provider. Required.
:type location: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -660,24 +600,21 @@ async def get_default_by_location(self, location: str, **kwargs: Any) -> _models
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProvider]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.AttestationProvider] = kwargs.pop("cls", None)
- request = build_get_default_by_location_request(
+ _request = build_get_default_by_location_request(
location=location,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.get_default_by_location.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -686,11 +623,9 @@ async def get_default_by_location(self, location: str, **kwargs: Any) -> _models
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProvider", pipeline_response)
+ deserialized = self._deserialize("AttestationProvider", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
-
- return deserialized
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- get_default_by_location.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/locations/{location}/defaultProvider"} # type: ignore
+ return deserialized # type: ignore
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_operations.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_operations.py
index f0bc7cea6303..61f50b6f94ba 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_operations.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -18,20 +17,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._operations import build_list_request
-if sys.version_info >= (3, 8):
- from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
else:
- from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -59,12 +56,11 @@ def __init__(self, *args, **kwargs) -> None:
async def list(self, **kwargs: Any) -> _models.OperationList:
"""Lists all of the available Azure attestation operations.
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: OperationList or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.OperationList
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -75,22 +71,19 @@ async def list(self, **kwargs: Any) -> _models.OperationList:
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.OperationList]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.OperationList] = kwargs.pop("cls", None)
- request = build_list_request(
+ _request = build_list_request(
api_version=api_version,
- template_url=self.list.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -99,11 +92,9 @@ async def list(self, **kwargs: Any) -> _models.OperationList:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("OperationList", pipeline_response)
+ deserialized = self._deserialize("OperationList", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- list.metadata = {"url": "/providers/Microsoft.Attestation/operations"} # type: ignore
+ return deserialized # type: ignore
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_private_endpoint_connections_operations.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_private_endpoint_connections_operations.py
index 0250e1d91726..5df829df7d6a 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_private_endpoint_connections_operations.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_private_endpoint_connections_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +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 io import IOBase
import sys
from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, overload
import urllib.parse
@@ -20,15 +20,13 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._private_endpoint_connections_operations import (
build_create_request,
build_delete_request,
@@ -36,10 +34,10 @@
build_list_request,
)
-if sys.version_info >= (3, 8):
- from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
else:
- from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -74,7 +72,6 @@ def list(
:type resource_group_name: str
:param provider_name: The name of the attestation provider. Required.
:type provider_name: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: An iterator like instance of either PrivateEndpointConnection or the result of
cls(response)
:rtype:
@@ -84,12 +81,10 @@ def list(
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.PrivateEndpointConnectionListResult]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.PrivateEndpointConnectionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -100,17 +95,15 @@ def list(
def prepare_request(next_link=None):
if not next_link:
- request = build_list_request(
+ _request = build_list_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.list.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
else:
# make call to next link with the client's api-version
@@ -122,26 +115,26 @@ def prepare_request(next_link=None):
}
)
_next_request_params["api-version"] = self._config.api_version
- request = HttpRequest(
+ _request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
- request.method = "GET"
- return request
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
async def extract_data(pipeline_response):
deserialized = self._deserialize("PrivateEndpointConnectionListResult", pipeline_response)
list_of_elem = deserialized.value
if cls:
- list_of_elem = cls(list_of_elem)
+ list_of_elem = cls(list_of_elem) # type: ignore
return None, AsyncList(list_of_elem)
async def get_next(next_link=None):
- request = prepare_request(next_link)
+ _request = prepare_request(next_link)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -153,8 +146,6 @@ async def get_next(next_link=None):
return AsyncItemPaged(get_next, extract_data)
- list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateEndpointConnections"} # type: ignore
-
@distributed_trace_async
async def get(
self, resource_group_name: str, provider_name: str, private_endpoint_connection_name: str, **kwargs: Any
@@ -169,12 +160,11 @@ async def get(
:param private_endpoint_connection_name: The name of the private endpoint connection associated
with the Azure resource. Required.
: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.attestation.models.PrivateEndpointConnection
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -185,26 +175,23 @@ async def get(
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.PrivateEndpointConnection]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.PrivateEndpointConnection] = kwargs.pop("cls", None)
- request = build_get_request(
+ _request = build_get_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
private_endpoint_connection_name=private_endpoint_connection_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.get.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -213,14 +200,12 @@ 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("PrivateEndpointConnection", pipeline_response)
+ deserialized = self._deserialize("PrivateEndpointConnection", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
-
- return deserialized
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateEndpointConnections/{privateEndpointConnectionName}"} # type: ignore
+ return deserialized # type: ignore
@overload
async def create(
@@ -249,7 +234,6 @@ async def create(
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: 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.attestation.models.PrivateEndpointConnection
:raises ~azure.core.exceptions.HttpResponseError:
@@ -261,7 +245,7 @@ async def create(
resource_group_name: str,
provider_name: str,
private_endpoint_connection_name: str,
- properties: IO,
+ properties: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
@@ -278,11 +262,10 @@ async def create(
with the Azure resource. Required.
:type private_endpoint_connection_name: str
:param properties: The private endpoint connection properties. Required.
- :type properties: IO
+ :type properties: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: 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.attestation.models.PrivateEndpointConnection
:raises ~azure.core.exceptions.HttpResponseError:
@@ -294,7 +277,7 @@ async def create(
resource_group_name: str,
provider_name: str,
private_endpoint_connection_name: str,
- properties: Union[_models.PrivateEndpointConnection, IO],
+ properties: Union[_models.PrivateEndpointConnection, IO[bytes]],
**kwargs: Any
) -> _models.PrivateEndpointConnection:
"""Update the state of specified private endpoint connection associated with the attestation
@@ -308,18 +291,14 @@ async def create(
:param private_endpoint_connection_name: The name of the private endpoint connection associated
with the Azure resource. Required.
:type private_endpoint_connection_name: str
- :param properties: The private endpoint connection properties. Is either a model type or a IO
- type. Required.
- :type properties: ~azure.mgmt.attestation.models.PrivateEndpointConnection or IO
- :keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
- Default value is None.
- :paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
+ :param properties: The private endpoint connection properties. Is either a
+ PrivateEndpointConnection type or a IO[bytes] type. Required.
+ :type properties: ~azure.mgmt.attestation.models.PrivateEndpointConnection or IO[bytes]
:return: PrivateEndpointConnection or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.PrivateEndpointConnection
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -330,21 +309,19 @@ async def create(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.PrivateEndpointConnection]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.PrivateEndpointConnection] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
- if isinstance(properties, (IO, bytes)):
+ if isinstance(properties, (IOBase, bytes)):
_content = properties
else:
_json = self._serialize.body(properties, "PrivateEndpointConnection")
- request = build_create_request(
+ _request = build_create_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
private_endpoint_connection_name=private_endpoint_connection_name,
@@ -353,15 +330,14 @@ async def create(
content_type=content_type,
json=_json,
content=_content,
- template_url=self.create.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -370,17 +346,15 @@ async def create(
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)
+ deserialized = self._deserialize("PrivateEndpointConnection", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- create.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateEndpointConnections/{privateEndpointConnectionName}"} # type: ignore
+ return deserialized # type: ignore
@distributed_trace_async
- async def delete( # pylint: disable=inconsistent-return-statements
+ async def delete(
self, resource_group_name: str, provider_name: str, private_endpoint_connection_name: str, **kwargs: Any
) -> None:
"""Deletes the specified private endpoint connection associated with the attestation provider.
@@ -393,12 +367,11 @@ async def delete( # pylint: disable=inconsistent-return-statements
:param private_endpoint_connection_name: The name of the private endpoint connection associated
with the Azure resource. Required.
: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:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -409,26 +382,23 @@ async def delete( # pylint: disable=inconsistent-return-statements
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[None]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
- request = build_delete_request(
+ _request = build_delete_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
private_endpoint_connection_name=private_endpoint_connection_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.delete.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = await self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -438,6 +408,4 @@ async def delete( # pylint: disable=inconsistent-return-statements
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
if cls:
- return cls(pipeline_response, None, {})
-
- delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateEndpointConnections/{privateEndpointConnectionName}"} # type: ignore
+ return cls(pipeline_response, None, {}) # type: ignore
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_private_link_resources_operations.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_private_link_resources_operations.py
new file mode 100644
index 000000000000..2cb6905e30bc
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/aio/operations/_private_link_resources_operations.py
@@ -0,0 +1,110 @@
+# 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 sys
+from typing import Any, Callable, Dict, Optional, TypeVar
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.rest import AsyncHttpResponse, HttpRequest
+from azure.core.tracing.decorator_async import distributed_trace_async
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+
+from ... import models as _models
+from ...operations._private_link_resources_operations import build_list_by_provider_request
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
+
+
+class PrivateLinkResourcesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.attestation.aio.AttestationManagementClient`'s
+ :attr:`private_link_resources` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ async def list_by_provider(
+ self, resource_group_name: str, provider_name: str, **kwargs: Any
+ ) -> _models.PrivateLinkResourceListResult:
+ """Gets the private link resources supported for the attestation provider.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param provider_name: The name of the attestation provider. Required.
+ :type provider_name: str
+ :return: PrivateLinkResourceListResult or the result of cls(response)
+ :rtype: ~azure.mgmt.attestation.models.PrivateLinkResourceListResult
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.PrivateLinkResourceListResult] = kwargs.pop("cls", None)
+
+ _request = build_list_by_provider_request(
+ resource_group_name=resource_group_name,
+ provider_name=provider_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = 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("PrivateLinkResourceListResult", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/__init__.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/__init__.py
index ec65dfa87bcb..69dd75a4119e 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/__init__.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/__init__.py
@@ -5,32 +5,51 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+# pylint: disable=wrong-import-position
-from ._models_py3 import AttestationProvider
-from ._models_py3 import AttestationProviderListResult
-from ._models_py3 import AttestationServiceCreationParams
-from ._models_py3 import AttestationServiceCreationSpecificParams
-from ._models_py3 import AttestationServicePatchParams
-from ._models_py3 import CloudErrorBody
-from ._models_py3 import JSONWebKey
-from ._models_py3 import JSONWebKeySet
-from ._models_py3 import OperationList
-from ._models_py3 import OperationsDefinition
-from ._models_py3 import OperationsDisplayDefinition
-from ._models_py3 import PrivateEndpoint
-from ._models_py3 import PrivateEndpointConnection
-from ._models_py3 import PrivateEndpointConnectionListResult
-from ._models_py3 import PrivateLinkServiceConnectionState
-from ._models_py3 import Resource
-from ._models_py3 import SystemData
-from ._models_py3 import TrackedResource
+from typing import TYPE_CHECKING
-from ._attestation_management_client_enums import AttestationServiceStatus
-from ._attestation_management_client_enums import CreatedByType
-from ._attestation_management_client_enums import PrivateEndpointConnectionProvisioningState
-from ._attestation_management_client_enums import PrivateEndpointServiceConnectionStatus
+if TYPE_CHECKING:
+ from ._patch import * # pylint: disable=unused-wildcard-import
+
+
+from ._models_py3 import ( # type: ignore
+ AttestationProvider,
+ AttestationProviderListResult,
+ AttestationServiceCreationParams,
+ AttestationServiceCreationSpecificParams,
+ AttestationServicePatchParams,
+ AttestationServicePatchSpecificParams,
+ CloudErrorBody,
+ JSONWebKey,
+ JSONWebKeySet,
+ LogSpecification,
+ OperationList,
+ OperationProperties,
+ OperationsDefinition,
+ OperationsDisplayDefinition,
+ PrivateEndpoint,
+ PrivateEndpointConnection,
+ PrivateEndpointConnectionListResult,
+ PrivateLinkResource,
+ PrivateLinkResourceListResult,
+ PrivateLinkServiceConnectionState,
+ Resource,
+ ServiceSpecification,
+ SystemData,
+ TrackedResource,
+)
+
+from ._attestation_management_client_enums import ( # type: ignore
+ AttestationServiceStatus,
+ CreatedByType,
+ PrivateEndpointConnectionProvisioningState,
+ PrivateEndpointServiceConnectionStatus,
+ PublicNetworkAccessType,
+ TpmAttestationAuthenticationType,
+)
from ._patch import __all__ as _patch_all
-from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import
+from ._patch import *
from ._patch import patch_sdk as _patch_sdk
__all__ = [
@@ -39,23 +58,31 @@
"AttestationServiceCreationParams",
"AttestationServiceCreationSpecificParams",
"AttestationServicePatchParams",
+ "AttestationServicePatchSpecificParams",
"CloudErrorBody",
"JSONWebKey",
"JSONWebKeySet",
+ "LogSpecification",
"OperationList",
+ "OperationProperties",
"OperationsDefinition",
"OperationsDisplayDefinition",
"PrivateEndpoint",
"PrivateEndpointConnection",
"PrivateEndpointConnectionListResult",
+ "PrivateLinkResource",
+ "PrivateLinkResourceListResult",
"PrivateLinkServiceConnectionState",
"Resource",
+ "ServiceSpecification",
"SystemData",
"TrackedResource",
"AttestationServiceStatus",
"CreatedByType",
"PrivateEndpointConnectionProvisioningState",
"PrivateEndpointServiceConnectionStatus",
+ "PublicNetworkAccessType",
+ "TpmAttestationAuthenticationType",
]
-__all__.extend([p for p in _patch_all if p not in __all__])
+__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
_patch_sdk()
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/_attestation_management_client_enums.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/_attestation_management_client_enums.py
index 816e01634aba..6676e38d7307 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/_attestation_management_client_enums.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/_attestation_management_client_enums.py
@@ -42,3 +42,21 @@ class PrivateEndpointServiceConnectionStatus(str, Enum, metaclass=CaseInsensitiv
PENDING = "Pending"
APPROVED = "Approved"
REJECTED = "Rejected"
+
+
+class PublicNetworkAccessType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """The public network access type for API calls to the Attestation Provider."""
+
+ ENABLED = "Enabled"
+ """Enables public network connectivity to the Attestation Provider REST APIs."""
+ DISABLED = "Disabled"
+ """Disables public network connectivity to the Attestation Provider REST APIs."""
+
+
+class TpmAttestationAuthenticationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """The type for specifying the requirement of authentication for TPM Attestation REST APIs."""
+
+ ENABLED = "Enabled"
+ """Enables the requirement of authentication for TPM Attestation REST APIs."""
+ DISABLED = "Disabled"
+ """Disables the requirement of authentication for TPM Attestation REST APIs."""
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/_models_py3.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/_models_py3.py
index 710837e00f52..c7b60ab10142 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/_models_py3.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/models/_models_py3.py
@@ -1,5 +1,5 @@
-# coding=utf-8
# pylint: disable=too-many-lines
+# 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.
@@ -8,12 +8,11 @@
# --------------------------------------------------------------------------
import datetime
-from typing import Dict, List, Optional, TYPE_CHECKING, Union
+from typing import Any, Dict, List, Optional, TYPE_CHECKING, Union
from .. import _serialization
if TYPE_CHECKING:
- # pylint: disable=unused-import,ungrouped-imports
from .. import models as _models
@@ -23,7 +22,7 @@ class Resource(_serialization.Model):
Variables are only populated by the server, and will be ignored when sending a request.
:ivar id: Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. # pylint: disable=line-too-long
:vartype id: str
:ivar name: The name of the resource.
:vartype name: str
@@ -44,7 +43,7 @@ class Resource(_serialization.Model):
"type": {"key": "type", "type": "str"},
}
- def __init__(self, **kwargs):
+ def __init__(self, **kwargs: Any) -> None:
""" """
super().__init__(**kwargs)
self.id = None
@@ -53,14 +52,15 @@ def __init__(self, **kwargs):
class TrackedResource(Resource):
- """The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'.
+ """The resource model definition for an Azure Resource Manager tracked top level resource which
+ has 'tags' and a 'location'.
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.
+ All required parameters must be populated in order to send to server.
:ivar id: Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. # pylint: disable=line-too-long
:vartype id: str
:ivar name: The name of the resource.
:vartype name: str
@@ -88,7 +88,7 @@ class TrackedResource(Resource):
"location": {"key": "location", "type": "str"},
}
- def __init__(self, *, location: str, tags: Optional[Dict[str, str]] = None, **kwargs):
+ def __init__(self, *, location: str, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None:
"""
:keyword tags: Resource tags.
:paramtype tags: dict[str, str]
@@ -105,10 +105,10 @@ class AttestationProvider(TrackedResource):
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.
+ All required parameters must be populated in order to send to server.
:ivar id: Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. # pylint: disable=line-too-long
:vartype id: str
:ivar name: The name of the resource.
:vartype name: str
@@ -128,10 +128,17 @@ class AttestationProvider(TrackedResource):
:vartype status: str or ~azure.mgmt.attestation.models.AttestationServiceStatus
:ivar attest_uri: Gets the uri of attestation service.
:vartype attest_uri: str
+ :ivar public_network_access: Controls whether traffic from the public network is allowed to
+ access the Attestation Provider APIs. Known values are: "Enabled" and "Disabled".
+ :vartype public_network_access: str or ~azure.mgmt.attestation.models.PublicNetworkAccessType
:ivar private_endpoint_connections: List of private endpoint connections associated with the
attestation provider.
:vartype private_endpoint_connections:
list[~azure.mgmt.attestation.models.PrivateEndpointConnection]
+ :ivar tpm_attestation_authentication: The setting that controls whether authentication is
+ enabled or disabled for TPM Attestation REST APIs. Known values are: "Enabled" and "Disabled".
+ :vartype tpm_attestation_authentication: str or
+ ~azure.mgmt.attestation.models.TpmAttestationAuthenticationType
"""
_validation = {
@@ -153,10 +160,12 @@ class AttestationProvider(TrackedResource):
"trust_model": {"key": "properties.trustModel", "type": "str"},
"status": {"key": "properties.status", "type": "str"},
"attest_uri": {"key": "properties.attestUri", "type": "str"},
+ "public_network_access": {"key": "properties.publicNetworkAccess", "type": "str"},
"private_endpoint_connections": {
"key": "properties.privateEndpointConnections",
"type": "[PrivateEndpointConnection]",
},
+ "tpm_attestation_authentication": {"key": "properties.tpmAttestationAuthentication", "type": "str"},
}
def __init__(
@@ -167,8 +176,10 @@ def __init__(
trust_model: Optional[str] = None,
status: Optional[Union[str, "_models.AttestationServiceStatus"]] = None,
attest_uri: Optional[str] = None,
- **kwargs
- ):
+ public_network_access: Union[str, "_models.PublicNetworkAccessType"] = "Enabled",
+ tpm_attestation_authentication: Union[str, "_models.TpmAttestationAuthenticationType"] = "Enabled",
+ **kwargs: Any
+ ) -> None:
"""
:keyword tags: Resource tags.
:paramtype tags: dict[str, str]
@@ -181,13 +192,22 @@ def __init__(
:paramtype status: str or ~azure.mgmt.attestation.models.AttestationServiceStatus
:keyword attest_uri: Gets the uri of attestation service.
:paramtype attest_uri: str
+ :keyword public_network_access: Controls whether traffic from the public network is allowed to
+ access the Attestation Provider APIs. Known values are: "Enabled" and "Disabled".
+ :paramtype public_network_access: str or ~azure.mgmt.attestation.models.PublicNetworkAccessType
+ :keyword tpm_attestation_authentication: The setting that controls whether authentication is
+ enabled or disabled for TPM Attestation REST APIs. Known values are: "Enabled" and "Disabled".
+ :paramtype tpm_attestation_authentication: str or
+ ~azure.mgmt.attestation.models.TpmAttestationAuthenticationType
"""
super().__init__(tags=tags, location=location, **kwargs)
self.system_data = None
self.trust_model = trust_model
self.status = status
self.attest_uri = attest_uri
+ self.public_network_access = public_network_access
self.private_endpoint_connections = None
+ self.tpm_attestation_authentication = tpm_attestation_authentication
class AttestationProviderListResult(_serialization.Model):
@@ -210,7 +230,7 @@ class AttestationProviderListResult(_serialization.Model):
"value": {"key": "value", "type": "[AttestationProvider]"},
}
- def __init__(self, *, value: Optional[List["_models.AttestationProvider"]] = None, **kwargs):
+ def __init__(self, *, value: Optional[List["_models.AttestationProvider"]] = None, **kwargs: Any) -> None:
"""
:keyword value: Attestation Provider array.
:paramtype value: list[~azure.mgmt.attestation.models.AttestationProvider]
@@ -223,7 +243,7 @@ def __init__(self, *, value: Optional[List["_models.AttestationProvider"]] = Non
class AttestationServiceCreationParams(_serialization.Model):
"""Parameters for creating an attestation provider.
- All required parameters must be populated in order to send to Azure.
+ All required parameters must be populated in order to send to server.
:ivar location: The supported Azure location where the attestation provider should be created.
Required.
@@ -251,8 +271,8 @@ def __init__(
location: str,
properties: "_models.AttestationServiceCreationSpecificParams",
tags: Optional[Dict[str, str]] = None,
- **kwargs
- ):
+ **kwargs: Any
+ ) -> None:
"""
:keyword location: The supported Azure location where the attestation provider should be
created. Required.
@@ -271,24 +291,49 @@ def __init__(
class AttestationServiceCreationSpecificParams(_serialization.Model):
"""Client supplied parameters used to create a new attestation provider.
+ :ivar public_network_access: Controls whether traffic from the public network is allowed to
+ access the Attestation Provider APIs. Known values are: "Enabled" and "Disabled".
+ :vartype public_network_access: str or ~azure.mgmt.attestation.models.PublicNetworkAccessType
:ivar policy_signing_certificates: JSON Web Key Set defining a set of X.509 Certificates that
will represent the parent certificate for the signing certificate used for policy operations.
:vartype policy_signing_certificates: ~azure.mgmt.attestation.models.JSONWebKeySet
+ :ivar tpm_attestation_authentication: The setting that controls whether authentication is
+ enabled or disabled for TPM Attestation REST APIs. Known values are: "Enabled" and "Disabled".
+ :vartype tpm_attestation_authentication: str or
+ ~azure.mgmt.attestation.models.TpmAttestationAuthenticationType
"""
_attribute_map = {
+ "public_network_access": {"key": "publicNetworkAccess", "type": "str"},
"policy_signing_certificates": {"key": "policySigningCertificates", "type": "JSONWebKeySet"},
+ "tpm_attestation_authentication": {"key": "tpmAttestationAuthentication", "type": "str"},
}
- def __init__(self, *, policy_signing_certificates: Optional["_models.JSONWebKeySet"] = None, **kwargs):
+ def __init__(
+ self,
+ *,
+ public_network_access: Union[str, "_models.PublicNetworkAccessType"] = "Enabled",
+ policy_signing_certificates: Optional["_models.JSONWebKeySet"] = None,
+ tpm_attestation_authentication: Union[str, "_models.TpmAttestationAuthenticationType"] = "Enabled",
+ **kwargs: Any
+ ) -> None:
"""
+ :keyword public_network_access: Controls whether traffic from the public network is allowed to
+ access the Attestation Provider APIs. Known values are: "Enabled" and "Disabled".
+ :paramtype public_network_access: str or ~azure.mgmt.attestation.models.PublicNetworkAccessType
:keyword policy_signing_certificates: JSON Web Key Set defining a set of X.509 Certificates
that will represent the parent certificate for the signing certificate used for policy
operations.
:paramtype policy_signing_certificates: ~azure.mgmt.attestation.models.JSONWebKeySet
+ :keyword tpm_attestation_authentication: The setting that controls whether authentication is
+ enabled or disabled for TPM Attestation REST APIs. Known values are: "Enabled" and "Disabled".
+ :paramtype tpm_attestation_authentication: str or
+ ~azure.mgmt.attestation.models.TpmAttestationAuthenticationType
"""
super().__init__(**kwargs)
+ self.public_network_access = public_network_access
self.policy_signing_certificates = policy_signing_certificates
+ self.tpm_attestation_authentication = tpm_attestation_authentication
class AttestationServicePatchParams(_serialization.Model):
@@ -296,19 +341,69 @@ class AttestationServicePatchParams(_serialization.Model):
:ivar tags: The tags that will be assigned to the attestation provider.
:vartype tags: dict[str, str]
+ :ivar properties: Properties of the attestation provider.
+ :vartype properties: ~azure.mgmt.attestation.models.AttestationServicePatchSpecificParams
"""
_attribute_map = {
"tags": {"key": "tags", "type": "{str}"},
+ "properties": {"key": "properties", "type": "AttestationServicePatchSpecificParams"},
}
- def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs):
+ def __init__(
+ self,
+ *,
+ tags: Optional[Dict[str, str]] = None,
+ properties: Optional["_models.AttestationServicePatchSpecificParams"] = None,
+ **kwargs: Any
+ ) -> None:
"""
:keyword tags: The tags that will be assigned to the attestation provider.
:paramtype tags: dict[str, str]
+ :keyword properties: Properties of the attestation provider.
+ :paramtype properties: ~azure.mgmt.attestation.models.AttestationServicePatchSpecificParams
"""
super().__init__(**kwargs)
self.tags = tags
+ self.properties = properties
+
+
+class AttestationServicePatchSpecificParams(_serialization.Model):
+ """Client supplied parameters used to patch an existing attestation provider.
+
+ :ivar public_network_access: Controls whether traffic from the public network is allowed to
+ access the Attestation Provider APIs. Known values are: "Enabled" and "Disabled".
+ :vartype public_network_access: str or ~azure.mgmt.attestation.models.PublicNetworkAccessType
+ :ivar tpm_attestation_authentication: The setting that controls whether authentication is
+ enabled or disabled for TPM Attestation REST APIs. Known values are: "Enabled" and "Disabled".
+ :vartype tpm_attestation_authentication: str or
+ ~azure.mgmt.attestation.models.TpmAttestationAuthenticationType
+ """
+
+ _attribute_map = {
+ "public_network_access": {"key": "publicNetworkAccess", "type": "str"},
+ "tpm_attestation_authentication": {"key": "tpmAttestationAuthentication", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ public_network_access: Union[str, "_models.PublicNetworkAccessType"] = "Enabled",
+ tpm_attestation_authentication: Union[str, "_models.TpmAttestationAuthenticationType"] = "Enabled",
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword public_network_access: Controls whether traffic from the public network is allowed to
+ access the Attestation Provider APIs. Known values are: "Enabled" and "Disabled".
+ :paramtype public_network_access: str or ~azure.mgmt.attestation.models.PublicNetworkAccessType
+ :keyword tpm_attestation_authentication: The setting that controls whether authentication is
+ enabled or disabled for TPM Attestation REST APIs. Known values are: "Enabled" and "Disabled".
+ :paramtype tpm_attestation_authentication: str or
+ ~azure.mgmt.attestation.models.TpmAttestationAuthenticationType
+ """
+ super().__init__(**kwargs)
+ self.public_network_access = public_network_access
+ self.tpm_attestation_authentication = tpm_attestation_authentication
class CloudErrorBody(_serialization.Model):
@@ -327,7 +422,7 @@ class CloudErrorBody(_serialization.Model):
"message": {"key": "message", "type": "str"},
}
- def __init__(self, *, code: Optional[str] = None, message: Optional[str] = None, **kwargs):
+ def __init__(self, *, code: Optional[str] = None, message: Optional[str] = None, **kwargs: Any) -> None:
"""
:keyword code: An identifier for the error. Codes are invariant and are intended to be consumed
programmatically.
@@ -341,10 +436,10 @@ def __init__(self, *, code: Optional[str] = None, message: Optional[str] = None,
self.message = message
-class JSONWebKey(_serialization.Model): # pylint: disable=too-many-instance-attributes
+class JSONWebKey(_serialization.Model):
"""JSONWebKey.
- All required parameters must be populated in order to send to Azure.
+ All required parameters must be populated in order to send to server.
:ivar alg: The "alg" (algorithm) parameter identifies the algorithm intended for
use with the key. The values used should either be registered in the
@@ -451,8 +546,8 @@ def __init__(
x: Optional[str] = None,
x5_c: Optional[List[str]] = None,
y: Optional[str] = None,
- **kwargs
- ):
+ **kwargs: Any
+ ) -> None:
"""
:keyword alg: The "alg" (algorithm) parameter identifies the algorithm intended for
use with the key. The values used should either be registered in the
@@ -549,7 +644,7 @@ class JSONWebKeySet(_serialization.Model):
"keys": {"key": "keys", "type": "[JSONWebKey]"},
}
- def __init__(self, *, keys: Optional[List["_models.JSONWebKey"]] = None, **kwargs):
+ def __init__(self, *, keys: Optional[List["_models.JSONWebKey"]] = None, **kwargs: Any) -> None:
"""
:keyword keys: The value of the "keys" parameter is an array of JWK values. By
default, the order of the JWK values within the array does not imply
@@ -562,6 +657,32 @@ def __init__(self, *, keys: Optional[List["_models.JSONWebKey"]] = None, **kwarg
self.keys = keys
+class LogSpecification(_serialization.Model):
+ """Specifications of the Log for Microsoft Azure Attestation.
+
+ :ivar name: Name of the log.
+ :vartype name: str
+ :ivar display_name: Localized friendly display name of the log.
+ :vartype display_name: str
+ """
+
+ _attribute_map = {
+ "name": {"key": "name", "type": "str"},
+ "display_name": {"key": "displayName", "type": "str"},
+ }
+
+ def __init__(self, *, name: Optional[str] = None, display_name: Optional[str] = None, **kwargs: Any) -> None:
+ """
+ :keyword name: Name of the log.
+ :paramtype name: str
+ :keyword display_name: Localized friendly display name of the log.
+ :paramtype display_name: str
+ """
+ super().__init__(**kwargs)
+ self.name = name
+ self.display_name = display_name
+
+
class OperationList(_serialization.Model):
"""List of supported operations.
@@ -582,7 +703,7 @@ class OperationList(_serialization.Model):
"value": {"key": "value", "type": "[OperationsDefinition]"},
}
- def __init__(self, *, value: Optional[List["_models.OperationsDefinition"]] = None, **kwargs):
+ def __init__(self, *, value: Optional[List["_models.OperationsDefinition"]] = None, **kwargs: Any) -> None:
"""
:keyword value: List of supported operations.
:paramtype value: list[~azure.mgmt.attestation.models.OperationsDefinition]
@@ -592,6 +713,28 @@ def __init__(self, *, value: Optional[List["_models.OperationsDefinition"]] = No
self.value = value
+class OperationProperties(_serialization.Model):
+ """Extra Operation properties.
+
+ :ivar service_specification: Service specifications of the operation.
+ :vartype service_specification: ~azure.mgmt.attestation.models.ServiceSpecification
+ """
+
+ _attribute_map = {
+ "service_specification": {"key": "serviceSpecification", "type": "ServiceSpecification"},
+ }
+
+ def __init__(
+ self, *, service_specification: Optional["_models.ServiceSpecification"] = None, **kwargs: Any
+ ) -> None:
+ """
+ :keyword service_specification: Service specifications of the operation.
+ :paramtype service_specification: ~azure.mgmt.attestation.models.ServiceSpecification
+ """
+ super().__init__(**kwargs)
+ self.service_specification = service_specification
+
+
class OperationsDefinition(_serialization.Model):
"""Definition object with the name and properties of an operation.
@@ -599,25 +742,36 @@ class OperationsDefinition(_serialization.Model):
:vartype name: str
:ivar display: Display object with properties of the operation.
:vartype display: ~azure.mgmt.attestation.models.OperationsDisplayDefinition
+ :ivar properties: Properties of the operation.
+ :vartype properties: ~azure.mgmt.attestation.models.OperationProperties
"""
_attribute_map = {
"name": {"key": "name", "type": "str"},
"display": {"key": "display", "type": "OperationsDisplayDefinition"},
+ "properties": {"key": "properties", "type": "OperationProperties"},
}
def __init__(
- self, *, name: Optional[str] = None, display: Optional["_models.OperationsDisplayDefinition"] = None, **kwargs
- ):
+ self,
+ *,
+ name: Optional[str] = None,
+ display: Optional["_models.OperationsDisplayDefinition"] = None,
+ properties: Optional["_models.OperationProperties"] = None,
+ **kwargs: Any
+ ) -> None:
"""
:keyword name: Name of the operation.
:paramtype name: str
:keyword display: Display object with properties of the operation.
:paramtype display: ~azure.mgmt.attestation.models.OperationsDisplayDefinition
+ :keyword properties: Properties of the operation.
+ :paramtype properties: ~azure.mgmt.attestation.models.OperationProperties
"""
super().__init__(**kwargs)
self.name = name
self.display = display
+ self.properties = properties
class OperationsDisplayDefinition(_serialization.Model):
@@ -647,8 +801,8 @@ def __init__(
resource: Optional[str] = None,
operation: Optional[str] = None,
description: Optional[str] = None,
- **kwargs
- ):
+ **kwargs: Any
+ ) -> None:
"""
:keyword provider: Resource provider of the operation.
:paramtype provider: str
@@ -683,7 +837,7 @@ class PrivateEndpoint(_serialization.Model):
"id": {"key": "id", "type": "str"},
}
- def __init__(self, **kwargs):
+ def __init__(self, **kwargs: Any) -> None:
""" """
super().__init__(**kwargs)
self.id = None
@@ -695,7 +849,7 @@ class PrivateEndpointConnection(Resource):
Variables are only populated by the server, and will be ignored when sending a request.
:ivar id: Fully qualified resource ID for the resource. Ex -
- /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}.
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. # pylint: disable=line-too-long
:vartype id: str
:ivar name: The name of the resource.
:vartype name: str
@@ -738,8 +892,8 @@ def __init__(
*,
private_endpoint: Optional["_models.PrivateEndpoint"] = None,
private_link_service_connection_state: Optional["_models.PrivateLinkServiceConnectionState"] = None,
- **kwargs
- ):
+ **kwargs: Any
+ ) -> None:
"""
:keyword private_endpoint: The resource of private end point.
:paramtype private_endpoint: ~azure.mgmt.attestation.models.PrivateEndpoint
@@ -765,7 +919,7 @@ class PrivateEndpointConnectionListResult(_serialization.Model):
"value": {"key": "value", "type": "[PrivateEndpointConnection]"},
}
- def __init__(self, *, value: Optional[List["_models.PrivateEndpointConnection"]] = None, **kwargs):
+ def __init__(self, *, value: Optional[List["_models.PrivateEndpointConnection"]] = None, **kwargs: Any) -> None:
"""
:keyword value: Array of private endpoint connections.
:paramtype value: list[~azure.mgmt.attestation.models.PrivateEndpointConnection]
@@ -774,8 +928,78 @@ def __init__(self, *, value: Optional[List["_models.PrivateEndpointConnection"]]
self.value = value
+class PrivateLinkResource(Resource):
+ """A private link resource.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar id: Fully qualified resource ID for the resource. Ex -
+ /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. # pylint: disable=line-too-long
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar group_id: The private link resource group id.
+ :vartype group_id: str
+ :ivar required_members: The private link resource required member names.
+ :vartype required_members: list[str]
+ :ivar required_zone_names: The private link resource Private link DNS zone name.
+ :vartype required_zone_names: list[str]
+ """
+
+ _validation = {
+ "id": {"readonly": True},
+ "name": {"readonly": True},
+ "type": {"readonly": True},
+ "group_id": {"readonly": True},
+ "required_members": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "id": {"key": "id", "type": "str"},
+ "name": {"key": "name", "type": "str"},
+ "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__(self, *, required_zone_names: Optional[List[str]] = None, **kwargs: Any) -> None:
+ """
+ :keyword required_zone_names: The private link resource Private link DNS zone name.
+ :paramtype required_zone_names: list[str]
+ """
+ super().__init__(**kwargs)
+ self.group_id = None
+ self.required_members = None
+ self.required_zone_names = required_zone_names
+
+
+class PrivateLinkResourceListResult(_serialization.Model):
+ """A list of private link resources.
+
+ :ivar value: Array of private link resources.
+ :vartype value: list[~azure.mgmt.attestation.models.PrivateLinkResource]
+ """
+
+ _attribute_map = {
+ "value": {"key": "value", "type": "[PrivateLinkResource]"},
+ }
+
+ def __init__(self, *, value: Optional[List["_models.PrivateLinkResource"]] = None, **kwargs: Any) -> None:
+ """
+ :keyword value: Array of private link resources.
+ :paramtype value: list[~azure.mgmt.attestation.models.PrivateLinkResource]
+ """
+ super().__init__(**kwargs)
+ self.value = value
+
+
class PrivateLinkServiceConnectionState(_serialization.Model):
- """A collection of information about the state of the connection between service consumer and provider.
+ """A collection of information about the state of the connection between service consumer and
+ provider.
:ivar status: Indicates whether the connection has been Approved/Rejected/Removed by the owner
of the service. Known values are: "Pending", "Approved", and "Rejected".
@@ -799,8 +1023,8 @@ def __init__(
status: Optional[Union[str, "_models.PrivateEndpointServiceConnectionStatus"]] = None,
description: Optional[str] = None,
actions_required: Optional[str] = None,
- **kwargs
- ):
+ **kwargs: Any
+ ) -> None:
"""
:keyword status: Indicates whether the connection has been Approved/Rejected/Removed by the
owner of the service. Known values are: "Pending", "Approved", and "Rejected".
@@ -817,6 +1041,26 @@ def __init__(
self.actions_required = actions_required
+class ServiceSpecification(_serialization.Model):
+ """Service specification payload.
+
+ :ivar log_specifications: Specifications of the Log for Microsoft Azure Attestation.
+ :vartype log_specifications: list[~azure.mgmt.attestation.models.LogSpecification]
+ """
+
+ _attribute_map = {
+ "log_specifications": {"key": "logSpecifications", "type": "[LogSpecification]"},
+ }
+
+ def __init__(self, *, log_specifications: Optional[List["_models.LogSpecification"]] = None, **kwargs: Any) -> None:
+ """
+ :keyword log_specifications: Specifications of the Log for Microsoft Azure Attestation.
+ :paramtype log_specifications: list[~azure.mgmt.attestation.models.LogSpecification]
+ """
+ super().__init__(**kwargs)
+ self.log_specifications = log_specifications
+
+
class SystemData(_serialization.Model):
"""Metadata pertaining to creation and last modification of the resource.
@@ -854,8 +1098,8 @@ def __init__(
last_modified_by: Optional[str] = None,
last_modified_by_type: Optional[Union[str, "_models.CreatedByType"]] = None,
last_modified_at: Optional[datetime.datetime] = None,
- **kwargs
- ):
+ **kwargs: Any
+ ) -> None:
"""
:keyword created_by: The identity that created the resource.
:paramtype created_by: str
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/__init__.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/__init__.py
index 478c00013778..080163aed3ea 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/__init__.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/__init__.py
@@ -5,19 +5,27 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+# pylint: disable=wrong-import-position
-from ._operations import Operations
-from ._attestation_providers_operations import AttestationProvidersOperations
-from ._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._patch import * # pylint: disable=unused-wildcard-import
+
+from ._operations import Operations # type: ignore
+from ._attestation_providers_operations import AttestationProvidersOperations # type: ignore
+from ._private_endpoint_connections_operations import PrivateEndpointConnectionsOperations # type: ignore
+from ._private_link_resources_operations import PrivateLinkResourcesOperations # type: ignore
from ._patch import __all__ as _patch_all
-from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import
+from ._patch import *
from ._patch import patch_sdk as _patch_sdk
__all__ = [
"Operations",
"AttestationProvidersOperations",
"PrivateEndpointConnectionsOperations",
+ "PrivateLinkResourcesOperations",
]
-__all__.extend([p for p in _patch_all if p not in __all__])
+__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
_patch_sdk()
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_attestation_providers_operations.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_attestation_providers_operations.py
index 90df291b404d..ad9087b91b75 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_attestation_providers_operations.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_attestation_providers_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +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 io import IOBase
import sys
from typing import Any, Callable, Dict, IO, Optional, TypeVar, Union, overload
@@ -18,20 +18,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request, _format_url_section
-if sys.version_info >= (3, 8):
- from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
else:
- from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -43,7 +41,7 @@ def build_get_request(resource_group_name: str, provider_name: str, subscription
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -59,7 +57,7 @@ def build_get_request(resource_group_name: str, provider_name: str, subscription
"providerName": _SERIALIZER.url("provider_name", provider_name, "str"),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -76,8 +74,8 @@ def build_create_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
- content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -93,7 +91,7 @@ def build_create_request(
"providerName": _SERIALIZER.url("provider_name", provider_name, "str"),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -112,8 +110,8 @@ def build_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
- content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -129,7 +127,7 @@ def build_update_request(
"providerName": _SERIALIZER.url("provider_name", provider_name, "str"),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -148,7 +146,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -164,7 +162,7 @@ def build_delete_request(
"providerName": _SERIALIZER.url("provider_name", provider_name, "str"),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -179,7 +177,7 @@ def build_list_request(subscription_id: str, **kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -190,7 +188,7 @@ def build_list_request(subscription_id: str, **kwargs: Any) -> HttpRequest:
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -205,7 +203,7 @@ def build_list_by_resource_group_request(resource_group_name: str, subscription_
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -220,7 +218,7 @@ def build_list_by_resource_group_request(resource_group_name: str, subscription_
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -235,7 +233,7 @@ def build_list_default_request(subscription_id: str, **kwargs: Any) -> HttpReque
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -246,7 +244,7 @@ def build_list_default_request(subscription_id: str, **kwargs: Any) -> HttpReque
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -261,7 +259,7 @@ def build_get_default_by_location_request(location: str, subscription_id: str, *
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -274,7 +272,7 @@ def build_get_default_by_location_request(location: str, subscription_id: str, *
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -313,12 +311,11 @@ def get(self, resource_group_name: str, provider_name: str, **kwargs: Any) -> _m
:type resource_group_name: str
:param provider_name: Name of the attestation provider. Required.
:type provider_name: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -329,25 +326,22 @@ def get(self, resource_group_name: str, provider_name: str, **kwargs: Any) -> _m
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProvider]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.AttestationProvider] = kwargs.pop("cls", None)
- request = build_get_request(
+ _request = build_get_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.get.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -356,14 +350,12 @@ def get(self, resource_group_name: str, provider_name: str, **kwargs: Any) -> _m
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProvider", pipeline_response)
+ deserialized = self._deserialize("AttestationProvider", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}"} # type: ignore
+ return deserialized # type: ignore
@overload
def create(
@@ -375,7 +367,7 @@ def create(
content_type: str = "application/json",
**kwargs: Any
) -> _models.AttestationProvider:
- """Creates a new Attestation Provider.
+ """Creates or updates an Attestation Provider.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -387,7 +379,6 @@ def create(
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
@@ -398,12 +389,12 @@ def create(
self,
resource_group_name: str,
provider_name: str,
- creation_params: IO,
+ creation_params: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
) -> _models.AttestationProvider:
- """Creates a new Attestation Provider.
+ """Creates or updates an Attestation Provider.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
@@ -411,11 +402,10 @@ def create(
:param provider_name: Name of the attestation provider. Required.
:type provider_name: str
:param creation_params: Client supplied parameters. Required.
- :type creation_params: IO
+ :type creation_params: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
@@ -426,28 +416,25 @@ def create(
self,
resource_group_name: str,
provider_name: str,
- creation_params: Union[_models.AttestationServiceCreationParams, IO],
+ creation_params: Union[_models.AttestationServiceCreationParams, IO[bytes]],
**kwargs: Any
) -> _models.AttestationProvider:
- """Creates a new Attestation Provider.
+ """Creates or updates an Attestation Provider.
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
:param provider_name: Name of the attestation provider. Required.
:type provider_name: str
- :param creation_params: Client supplied parameters. Is either a model type or a IO type.
- Required.
- :type creation_params: ~azure.mgmt.attestation.models.AttestationServiceCreationParams or IO
- :keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
- Default value is None.
- :paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
+ :param creation_params: Client supplied parameters. Is either a
+ AttestationServiceCreationParams type or a IO[bytes] type. Required.
+ :type creation_params: ~azure.mgmt.attestation.models.AttestationServiceCreationParams or
+ IO[bytes]
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -458,21 +445,19 @@ def create(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProvider]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.AttestationProvider] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
- if isinstance(creation_params, (IO, bytes)):
+ if isinstance(creation_params, (IOBase, bytes)):
_content = creation_params
else:
_json = self._serialize.body(creation_params, "AttestationServiceCreationParams")
- request = build_create_request(
+ _request = build_create_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
subscription_id=self._config.subscription_id,
@@ -480,15 +465,14 @@ def create(
content_type=content_type,
json=_json,
content=_content,
- template_url=self.create.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -497,18 +481,12 @@ def create(
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("AttestationProvider", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("AttestationProvider", pipeline_response)
+ deserialized = self._deserialize("AttestationProvider", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- create.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}"} # type: ignore
+ return deserialized # type: ignore
@overload
def update(
@@ -532,7 +510,6 @@ def update(
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
@@ -543,7 +520,7 @@ def update(
self,
resource_group_name: str,
provider_name: str,
- update_params: IO,
+ update_params: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
@@ -556,11 +533,10 @@ def update(
:param provider_name: Name of the attestation provider. Required.
:type provider_name: str
:param update_params: Client supplied parameters. Required.
- :type update_params: IO
+ :type update_params: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
@@ -571,7 +547,7 @@ def update(
self,
resource_group_name: str,
provider_name: str,
- update_params: Union[_models.AttestationServicePatchParams, IO],
+ update_params: Union[_models.AttestationServicePatchParams, IO[bytes]],
**kwargs: Any
) -> _models.AttestationProvider:
"""Updates the Attestation Provider.
@@ -581,18 +557,14 @@ def update(
:type resource_group_name: str
:param provider_name: Name of the attestation provider. Required.
:type provider_name: str
- :param update_params: Client supplied parameters. Is either a model type or a IO type.
- Required.
- :type update_params: ~azure.mgmt.attestation.models.AttestationServicePatchParams or IO
- :keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
- Default value is None.
- :paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
+ :param update_params: Client supplied parameters. Is either a AttestationServicePatchParams
+ type or a IO[bytes] type. Required.
+ :type update_params: ~azure.mgmt.attestation.models.AttestationServicePatchParams or IO[bytes]
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -603,21 +575,19 @@ def update(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProvider]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.AttestationProvider] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
- if isinstance(update_params, (IO, bytes)):
+ if isinstance(update_params, (IOBase, bytes)):
_content = update_params
else:
_json = self._serialize.body(update_params, "AttestationServicePatchParams")
- request = build_update_request(
+ _request = build_update_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
subscription_id=self._config.subscription_id,
@@ -625,15 +595,14 @@ def update(
content_type=content_type,
json=_json,
content=_content,
- template_url=self.update.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -642,14 +611,12 @@ def update(
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProvider", pipeline_response)
+ deserialized = self._deserialize("AttestationProvider", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}"} # type: ignore
+ return deserialized # type: ignore
@distributed_trace
def delete( # pylint: disable=inconsistent-return-statements
@@ -662,12 +629,11 @@ def delete( # pylint: disable=inconsistent-return-statements
:type resource_group_name: str
:param provider_name: Name of the attestation service. Required.
:type provider_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:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -678,25 +644,22 @@ def delete( # pylint: disable=inconsistent-return-statements
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[None]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
- request = build_delete_request(
+ _request = build_delete_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.delete.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -706,20 +669,17 @@ def delete( # pylint: disable=inconsistent-return-statements
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
if cls:
- return cls(pipeline_response, None, {})
-
- delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}"} # type: ignore
+ return cls(pipeline_response, None, {}) # type: ignore
@distributed_trace
def list(self, **kwargs: Any) -> _models.AttestationProviderListResult:
"""Returns a list of attestation providers in a subscription.
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProviderListResult or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProviderListResult
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -730,23 +690,20 @@ def list(self, **kwargs: Any) -> _models.AttestationProviderListResult:
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProviderListResult]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.AttestationProviderListResult] = kwargs.pop("cls", None)
- request = build_list_request(
+ _request = build_list_request(
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.list.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -755,14 +712,12 @@ def list(self, **kwargs: Any) -> _models.AttestationProviderListResult:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProviderListResult", pipeline_response)
+ deserialized = self._deserialize("AttestationProviderListResult", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
-
- return deserialized
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- list.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/attestationProviders"} # type: ignore
+ return deserialized # type: ignore
@distributed_trace
def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> _models.AttestationProviderListResult:
@@ -771,12 +726,11 @@ def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> _mo
:param resource_group_name: The name of the resource group. The name is case insensitive.
Required.
:type resource_group_name: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProviderListResult or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProviderListResult
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -787,24 +741,21 @@ def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> _mo
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProviderListResult]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.AttestationProviderListResult] = kwargs.pop("cls", None)
- request = build_list_by_resource_group_request(
+ _request = build_list_by_resource_group_request(
resource_group_name=resource_group_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.list_by_resource_group.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -813,25 +764,22 @@ def list_by_resource_group(self, resource_group_name: str, **kwargs: Any) -> _mo
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProviderListResult", pipeline_response)
+ deserialized = self._deserialize("AttestationProviderListResult", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- list_by_resource_group.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders"} # type: ignore
+ return deserialized # type: ignore
@distributed_trace
def list_default(self, **kwargs: Any) -> _models.AttestationProviderListResult:
"""Get the default provider.
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProviderListResult or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProviderListResult
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -842,23 +790,20 @@ def list_default(self, **kwargs: Any) -> _models.AttestationProviderListResult:
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProviderListResult]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.AttestationProviderListResult] = kwargs.pop("cls", None)
- request = build_list_default_request(
+ _request = build_list_default_request(
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.list_default.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -867,14 +812,12 @@ def list_default(self, **kwargs: Any) -> _models.AttestationProviderListResult:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProviderListResult", pipeline_response)
+ deserialized = self._deserialize("AttestationProviderListResult", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
-
- return deserialized
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- list_default.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/defaultProviders"} # type: ignore
+ return deserialized # type: ignore
@distributed_trace
def get_default_by_location(self, location: str, **kwargs: Any) -> _models.AttestationProvider:
@@ -882,12 +825,11 @@ def get_default_by_location(self, location: str, **kwargs: Any) -> _models.Attes
:param location: The location of the default provider. Required.
:type location: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: AttestationProvider or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.AttestationProvider
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -898,24 +840,21 @@ def get_default_by_location(self, location: str, **kwargs: Any) -> _models.Attes
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.AttestationProvider]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.AttestationProvider] = kwargs.pop("cls", None)
- request = build_get_default_by_location_request(
+ _request = build_get_default_by_location_request(
location=location,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.get_default_by_location.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -924,11 +863,9 @@ def get_default_by_location(self, location: str, **kwargs: Any) -> _models.Attes
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttestationProvider", pipeline_response)
+ deserialized = self._deserialize("AttestationProvider", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
-
- return deserialized
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- get_default_by_location.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.Attestation/locations/{location}/defaultProvider"} # type: ignore
+ return deserialized # type: ignore
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_operations.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_operations.py
index ef9392e72d7a..661f99c86cb2 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_operations.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -18,20 +17,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
-if sys.version_info >= (3, 8):
- from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
else:
- from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -43,7 +40,7 @@ def build_list_request(**kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -81,12 +78,11 @@ def __init__(self, *args, **kwargs):
def list(self, **kwargs: Any) -> _models.OperationList:
"""Lists all of the available Azure attestation operations.
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: OperationList or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.OperationList
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -97,22 +93,19 @@ def list(self, **kwargs: Any) -> _models.OperationList:
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.OperationList]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.OperationList] = kwargs.pop("cls", None)
- request = build_list_request(
+ _request = build_list_request(
api_version=api_version,
- template_url=self.list.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -121,11 +114,9 @@ def list(self, **kwargs: Any) -> _models.OperationList:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
- deserialized = self._deserialize("OperationList", pipeline_response)
+ deserialized = self._deserialize("OperationList", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- list.metadata = {"url": "/providers/Microsoft.Attestation/operations"} # type: ignore
+ return deserialized # type: ignore
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_private_endpoint_connections_operations.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_private_endpoint_connections_operations.py
index 5d63a0febc2f..6113d98548d9 100644
--- a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_private_endpoint_connections_operations.py
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_private_endpoint_connections_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +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 io import IOBase
import sys
from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, overload
import urllib.parse
@@ -20,20 +20,18 @@
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request, _format_url_section
-if sys.version_info >= (3, 8):
- from typing import Literal # pylint: disable=no-name-in-module, ungrouped-imports
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
else:
- from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -47,7 +45,7 @@ def build_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -63,7 +61,7 @@ def build_list_request(
"subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -84,7 +82,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -103,7 +101,7 @@ def build_get_request(
),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -124,8 +122,8 @@ def build_create_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
- content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -144,7 +142,7 @@ def build_create_request(
),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -167,7 +165,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop("api_version", _params.pop("api-version", "2020-10-01")) # type: Literal["2020-10-01"]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -186,7 +184,7 @@ def build_delete_request(
),
}
- _url = _format_url_section(_url, **path_format_arguments)
+ _url: str = _url.format(**path_format_arguments) # type: ignore
# Construct parameters
_params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
@@ -227,7 +225,6 @@ def list(
:type resource_group_name: str
:param provider_name: The name of the attestation provider. Required.
:type provider_name: str
- :keyword callable cls: A custom type or function that will be passed the direct response
:return: An iterator like instance of either PrivateEndpointConnection or the result of
cls(response)
:rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.attestation.models.PrivateEndpointConnection]
@@ -236,12 +233,10 @@ def list(
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.PrivateEndpointConnectionListResult]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.PrivateEndpointConnectionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -252,17 +247,15 @@ def list(
def prepare_request(next_link=None):
if not next_link:
- request = build_list_request(
+ _request = build_list_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.list.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
else:
# make call to next link with the client's api-version
@@ -274,26 +267,26 @@ def prepare_request(next_link=None):
}
)
_next_request_params["api-version"] = self._config.api_version
- request = HttpRequest(
+ _request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
- request.method = "GET"
- return request
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
def extract_data(pipeline_response):
deserialized = self._deserialize("PrivateEndpointConnectionListResult", pipeline_response)
list_of_elem = deserialized.value
if cls:
- list_of_elem = cls(list_of_elem)
+ list_of_elem = cls(list_of_elem) # type: ignore
return None, iter(list_of_elem)
def get_next(next_link=None):
- request = prepare_request(next_link)
+ _request = prepare_request(next_link)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -305,8 +298,6 @@ def get_next(next_link=None):
return ItemPaged(get_next, extract_data)
- list.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateEndpointConnections"} # type: ignore
-
@distributed_trace
def get(
self, resource_group_name: str, provider_name: str, private_endpoint_connection_name: str, **kwargs: Any
@@ -321,12 +312,11 @@ def get(
:param private_endpoint_connection_name: The name of the private endpoint connection associated
with the Azure resource. Required.
: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.attestation.models.PrivateEndpointConnection
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -337,26 +327,23 @@ def get(
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.PrivateEndpointConnection]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.PrivateEndpointConnection] = kwargs.pop("cls", None)
- request = build_get_request(
+ _request = build_get_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
private_endpoint_connection_name=private_endpoint_connection_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.get.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -365,14 +352,12 @@ 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("PrivateEndpointConnection", pipeline_response)
+ deserialized = self._deserialize("PrivateEndpointConnection", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
-
- return deserialized
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateEndpointConnections/{privateEndpointConnectionName}"} # type: ignore
+ return deserialized # type: ignore
@overload
def create(
@@ -401,7 +386,6 @@ def create(
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: 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.attestation.models.PrivateEndpointConnection
:raises ~azure.core.exceptions.HttpResponseError:
@@ -413,7 +397,7 @@ def create(
resource_group_name: str,
provider_name: str,
private_endpoint_connection_name: str,
- properties: IO,
+ properties: IO[bytes],
*,
content_type: str = "application/json",
**kwargs: Any
@@ -430,11 +414,10 @@ def create(
with the Azure resource. Required.
:type private_endpoint_connection_name: str
:param properties: The private endpoint connection properties. Required.
- :type properties: IO
+ :type properties: IO[bytes]
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: 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.attestation.models.PrivateEndpointConnection
:raises ~azure.core.exceptions.HttpResponseError:
@@ -446,7 +429,7 @@ def create(
resource_group_name: str,
provider_name: str,
private_endpoint_connection_name: str,
- properties: Union[_models.PrivateEndpointConnection, IO],
+ properties: Union[_models.PrivateEndpointConnection, IO[bytes]],
**kwargs: Any
) -> _models.PrivateEndpointConnection:
"""Update the state of specified private endpoint connection associated with the attestation
@@ -460,18 +443,14 @@ def create(
:param private_endpoint_connection_name: The name of the private endpoint connection associated
with the Azure resource. Required.
:type private_endpoint_connection_name: str
- :param properties: The private endpoint connection properties. Is either a model type or a IO
- type. Required.
- :type properties: ~azure.mgmt.attestation.models.PrivateEndpointConnection or IO
- :keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
- Default value is None.
- :paramtype content_type: str
- :keyword callable cls: A custom type or function that will be passed the direct response
+ :param properties: The private endpoint connection properties. Is either a
+ PrivateEndpointConnection type or a IO[bytes] type. Required.
+ :type properties: ~azure.mgmt.attestation.models.PrivateEndpointConnection or IO[bytes]
:return: PrivateEndpointConnection or the result of cls(response)
:rtype: ~azure.mgmt.attestation.models.PrivateEndpointConnection
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -482,21 +461,19 @@ def create(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str]
- cls = kwargs.pop("cls", None) # type: ClsType[_models.PrivateEndpointConnection]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.PrivateEndpointConnection] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
- if isinstance(properties, (IO, bytes)):
+ if isinstance(properties, (IOBase, bytes)):
_content = properties
else:
_json = self._serialize.body(properties, "PrivateEndpointConnection")
- request = build_create_request(
+ _request = build_create_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
private_endpoint_connection_name=private_endpoint_connection_name,
@@ -505,15 +482,14 @@ def create(
content_type=content_type,
json=_json,
content=_content,
- template_url=self.create.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -522,14 +498,12 @@ def create(
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)
+ deserialized = self._deserialize("PrivateEndpointConnection", pipeline_response.http_response)
if cls:
- return cls(pipeline_response, deserialized, {})
+ return cls(pipeline_response, deserialized, {}) # type: ignore
- return deserialized
-
- create.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateEndpointConnections/{privateEndpointConnectionName}"} # type: ignore
+ return deserialized # type: ignore
@distributed_trace
def delete( # pylint: disable=inconsistent-return-statements
@@ -545,12 +519,11 @@ def delete( # pylint: disable=inconsistent-return-statements
:param private_endpoint_connection_name: The name of the private endpoint connection associated
with the Azure resource. Required.
: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:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -561,26 +534,23 @@ def delete( # pylint: disable=inconsistent-return-statements
_headers = kwargs.pop("headers", {}) or {}
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version = kwargs.pop(
- "api_version", _params.pop("api-version", self._config.api_version)
- ) # type: Literal["2020-10-01"]
- cls = kwargs.pop("cls", None) # type: ClsType[None]
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
- request = build_delete_request(
+ _request = build_delete_request(
resource_group_name=resource_group_name,
provider_name=provider_name,
private_endpoint_connection_name=private_endpoint_connection_name,
subscription_id=self._config.subscription_id,
api_version=api_version,
- template_url=self.delete.metadata["url"],
headers=_headers,
params=_params,
)
- request = _convert_request(request)
- request.url = self._client.format_url(request.url) # type: ignore
+ _request.url = self._client.format_url(_request.url)
- pipeline_response = self._client._pipeline.run( # type: ignore # pylint: disable=protected-access
- request, stream=False, **kwargs
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
)
response = pipeline_response.http_response
@@ -590,6 +560,4 @@ def delete( # pylint: disable=inconsistent-return-statements
raise HttpResponseError(response=response, error_format=ARMErrorFormat)
if cls:
- return cls(pipeline_response, None, {})
-
- delete.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateEndpointConnections/{privateEndpointConnectionName}"} # type: ignore
+ return cls(pipeline_response, None, {}) # type: ignore
diff --git a/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_private_link_resources_operations.py b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_private_link_resources_operations.py
new file mode 100644
index 000000000000..48e6db24ffc9
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/azure/mgmt/attestation/operations/_private_link_resources_operations.py
@@ -0,0 +1,146 @@
+# 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 sys
+from typing import Any, Callable, Dict, Optional, TypeVar
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.rest import HttpRequest, HttpResponse
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+
+from .. import models as _models
+from .._serialization import Serializer
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
+
+_SERIALIZER = Serializer()
+_SERIALIZER.client_side_validation = False
+
+
+def build_list_by_provider_request(
+ resource_group_name: str, provider_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2021-06-01"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Attestation/attestationProviders/{providerName}/privateLinkResources",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "providerName": _SERIALIZER.url("provider_name", provider_name, "str", pattern=r"^[a-zA-Z0-9-]{3,24}$"),
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class PrivateLinkResourcesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.attestation.AttestationManagementClient`'s
+ :attr:`private_link_resources` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs):
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_provider(
+ self, resource_group_name: str, provider_name: str, **kwargs: Any
+ ) -> _models.PrivateLinkResourceListResult:
+ """Gets the private link resources supported for the attestation provider.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param provider_name: The name of the attestation provider. Required.
+ :type provider_name: str
+ :return: PrivateLinkResourceListResult or the result of cls(response)
+ :rtype: ~azure.mgmt.attestation.models.PrivateLinkResourceListResult
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.PrivateLinkResourceListResult] = kwargs.pop("cls", None)
+
+ _request = build_list_by_provider_request(
+ resource_group_name=resource_group_name,
+ provider_name=provider_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = 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("PrivateLinkResourceListResult", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_delete_private_endpoint_connection.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_delete_private_endpoint_connection.py
index 2a4dfa46f45b..546efc11513f 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_delete_private_endpoint_connection.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_delete_private_endpoint_connection.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -29,14 +30,13 @@ def main():
subscription_id="{subscription-id}",
)
- response = client.private_endpoint_connections.delete(
+ client.private_endpoint_connections.delete(
resource_group_name="res6977",
provider_name="sto2527",
private_endpoint_connection_name="{privateEndpointConnectionName}",
)
- print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/AttestationProviderDeletePrivateEndpointConnection.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/AttestationProviderDeletePrivateEndpointConnection.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_get_private_endpoint_connection.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_get_private_endpoint_connection.py
index 7e1e55e5aad7..ed87a26ff427 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_get_private_endpoint_connection.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_get_private_endpoint_connection.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -37,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/AttestationProviderGetPrivateEndpointConnection.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/AttestationProviderGetPrivateEndpointConnection.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_list_private_endpoint_connections.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_list_private_endpoint_connections.py
index a40a50d3fcca..99c0533f5f22 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_list_private_endpoint_connections.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_list_private_endpoint_connections.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -37,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/AttestationProviderListPrivateEndpointConnections.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/AttestationProviderListPrivateEndpointConnections.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_create.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_list_private_link_resources.py
similarity index 86%
rename from sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_create.py
rename to sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_list_private_link_resources.py
index 802062434b30..e7f2d144bdc8 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_create.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_list_private_link_resources.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -14,7 +15,7 @@
pip install azure-identity
pip install azure-mgmt-attestation
# USAGE
- python attestation_providers_create.py
+ python attestation_provider_list_private_link_resources.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
@@ -29,14 +30,13 @@ def main():
subscription_id="00000000-0000-0000-0000-000000000000",
)
- response = client.attestation_providers.create(
+ response = client.private_link_resources.list_by_provider(
resource_group_name="MyResourceGroup",
provider_name="myattestationprovider",
- creation_params="test",
)
print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Create_AttestationProvider.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/AttestationProviderListPrivateLinkResources.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_put_private_endpoint_connection.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_put_private_endpoint_connection.py
index 62873a912b79..706b97814436 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_put_private_endpoint_connection.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_provider_put_private_endpoint_connection.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -40,6 +41,6 @@ def main():
print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/AttestationProviderPutPrivateEndpointConnection.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/AttestationProviderPutPrivateEndpointConnection.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/create_attestation_provider.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/create_attestation_provider.py
new file mode 100644
index 000000000000..6ce87df86c11
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/create_attestation_provider.py
@@ -0,0 +1,47 @@
+# 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.identity import DefaultAzureCredential
+
+from azure.mgmt.attestation import AttestationManagementClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-attestation
+# USAGE
+ python create_attestation_provider.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = AttestationManagementClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="00000000-0000-0000-0000-000000000000",
+ )
+
+ response = client.attestation_providers.create(
+ resource_group_name="MyResourceGroup",
+ provider_name="myattestationprovider",
+ creation_params={
+ "location": "East US",
+ "properties": {"publicNetworkAccess": "Enabled", "tpmAttestationAuthentication": "Enabled"},
+ "tags": {"Property1": "Value1", "Property2": "Value2", "Property3": "Value3"},
+ },
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/Create_AttestationProvider.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_delete.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/delete_attestation_provider.py
similarity index 88%
rename from sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_delete.py
rename to sdk/attestation/azure-mgmt-attestation/generated_samples/delete_attestation_provider.py
index db5cce0724d4..318aef57721c 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_delete.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/delete_attestation_provider.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -14,7 +15,7 @@
pip install azure-identity
pip install azure-mgmt-attestation
# USAGE
- python attestation_providers_delete.py
+ python delete_attestation_provider.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
@@ -29,13 +30,12 @@ def main():
subscription_id="00000000-0000-0000-0000-000000000000",
)
- response = client.attestation_providers.delete(
+ client.attestation_providers.delete(
resource_group_name="sample-resource-group",
provider_name="myattestationprovider",
)
- print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Delete_AttestationProvider.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/Delete_AttestationProvider.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_get.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/get_attestation_provider.py
similarity index 93%
rename from sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_get.py
rename to sdk/attestation/azure-mgmt-attestation/generated_samples/get_attestation_provider.py
index 9efdd4ce38cc..50da0ece7cfe 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_get.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/get_attestation_provider.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -14,7 +15,7 @@
pip install azure-identity
pip install azure-mgmt-attestation
# USAGE
- python attestation_providers_get.py
+ python get_attestation_provider.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
@@ -36,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvider.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/Get_AttestationProvider.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_list.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/get_attestation_providers_list.py
similarity index 92%
rename from sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_list.py
rename to sdk/attestation/azure-mgmt-attestation/generated_samples/get_attestation_providers_list.py
index 9cd5d60fc707..407105a25140 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_list.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/get_attestation_providers_list.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -14,7 +15,7 @@
pip install azure-identity
pip install azure-mgmt-attestation
# USAGE
- python attestation_providers_list.py
+ python get_attestation_providers_list.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
@@ -33,6 +34,6 @@ def main():
print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvidersList.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/Get_AttestationProvidersList.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_list_by_resource_group.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/get_attestation_providers_list_by_resource_group.py
similarity index 92%
rename from sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_list_by_resource_group.py
rename to sdk/attestation/azure-mgmt-attestation/generated_samples/get_attestation_providers_list_by_resource_group.py
index 0f4c39fcbeec..fa6833693fb5 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_list_by_resource_group.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/get_attestation_providers_list_by_resource_group.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -14,7 +15,7 @@
pip install azure-identity
pip install azure-mgmt-attestation
# USAGE
- python attestation_providers_list_by_resource_group.py
+ python get_attestation_providers_list_by_resource_group.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
@@ -35,6 +36,6 @@ def main():
print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_AttestationProvidersListByResourceGroup.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/Get_AttestationProvidersListByResourceGroup.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_get_default_with_location.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/get_default_provider_by_location.py
similarity index 92%
rename from sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_get_default_with_location.py
rename to sdk/attestation/azure-mgmt-attestation/generated_samples/get_default_provider_by_location.py
index 33f4c64891cc..7ee3c2a4c7ec 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_get_default_with_location.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/get_default_provider_by_location.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -14,7 +15,7 @@
pip install azure-identity
pip install azure-mgmt-attestation
# USAGE
- python attestation_providers_get_default_with_location.py
+ python get_default_provider_by_location.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
@@ -35,6 +36,6 @@ def main():
print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_DefaultProviderByLocation.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/Get_DefaultProviderByLocation.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_get_default.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/get_default_providers.py
similarity index 92%
rename from sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_get_default.py
rename to sdk/attestation/azure-mgmt-attestation/generated_samples/get_default_providers.py
index f214f31ae3d5..09d289984b8f 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_get_default.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/get_default_providers.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -14,7 +15,7 @@
pip install azure-identity
pip install azure-mgmt-attestation
# USAGE
- python attestation_providers_get_default.py
+ python get_default_providers.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
@@ -33,6 +34,6 @@ def main():
print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Get_DefaultProviders.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/Get_DefaultProviders.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/operations_list.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/operations_list.py
index be870cc56410..493cbc723d13 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/operations_list.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/operations_list.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -33,6 +34,6 @@ def main():
print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Operations_List.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/Operations_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_update.py b/sdk/attestation/azure-mgmt-attestation/generated_samples/update_attestation_provider.py
similarity index 81%
rename from sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_update.py
rename to sdk/attestation/azure-mgmt-attestation/generated_samples/update_attestation_provider.py
index 06d8696db4a8..5e90fa76051c 100644
--- a/sdk/attestation/azure-mgmt-attestation/generated_samples/attestation_providers_update.py
+++ b/sdk/attestation/azure-mgmt-attestation/generated_samples/update_attestation_provider.py
@@ -7,6 +7,7 @@
# --------------------------------------------------------------------------
from azure.identity import DefaultAzureCredential
+
from azure.mgmt.attestation import AttestationManagementClient
"""
@@ -14,7 +15,7 @@
pip install azure-identity
pip install azure-mgmt-attestation
# USAGE
- python attestation_providers_update.py
+ python update_attestation_provider.py
Before run the sample, please set the values of the client ID, tenant ID and client secret
of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
@@ -32,11 +33,14 @@ def main():
response = client.attestation_providers.update(
resource_group_name="MyResourceGroup",
provider_name="myattestationprovider",
- update_params={"tags": {"Property1": "Value1", "Property2": "Value2", "Property3": "Value3"}},
+ update_params={
+ "properties": {"publicNetworkAccess": "Disabled", "tpmAttestationAuthentication": "Disabled"},
+ "tags": {"Property1": "Value1", "Property2": "Value2", "Property3": "Value3"},
+ },
)
print(response)
-# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2020-10-01/examples/Update_AttestationProvider.json
+# x-ms-original-file: specification/attestation/resource-manager/Microsoft.Attestation/stable/2021-06-01/examples/Update_AttestationProvider.json
if __name__ == "__main__":
main()
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_tests/conftest.py b/sdk/attestation/azure-mgmt-attestation/generated_tests/conftest.py
new file mode 100644
index 000000000000..d805390cc249
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/generated_tests/conftest.py
@@ -0,0 +1,39 @@
+# 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 os
+import pytest
+from dotenv import load_dotenv
+from devtools_testutils import (
+ test_proxy,
+ add_general_regex_sanitizer,
+ add_body_key_sanitizer,
+ add_header_regex_sanitizer,
+)
+
+load_dotenv()
+
+
+# For security, please avoid record sensitive identity information in recordings
+@pytest.fixture(scope="session", autouse=True)
+def add_sanitizers(test_proxy):
+ attestationmanagement_subscription_id = os.environ.get(
+ "AZURE_SUBSCRIPTION_ID", "00000000-0000-0000-0000-000000000000"
+ )
+ attestationmanagement_tenant_id = os.environ.get("AZURE_TENANT_ID", "00000000-0000-0000-0000-000000000000")
+ attestationmanagement_client_id = os.environ.get("AZURE_CLIENT_ID", "00000000-0000-0000-0000-000000000000")
+ attestationmanagement_client_secret = os.environ.get("AZURE_CLIENT_SECRET", "00000000-0000-0000-0000-000000000000")
+ add_general_regex_sanitizer(
+ regex=attestationmanagement_subscription_id, value="00000000-0000-0000-0000-000000000000"
+ )
+ add_general_regex_sanitizer(regex=attestationmanagement_tenant_id, value="00000000-0000-0000-0000-000000000000")
+ add_general_regex_sanitizer(regex=attestationmanagement_client_id, value="00000000-0000-0000-0000-000000000000")
+ add_general_regex_sanitizer(regex=attestationmanagement_client_secret, value="00000000-0000-0000-0000-000000000000")
+
+ add_header_regex_sanitizer(key="Set-Cookie", value="[set-cookie;]")
+ add_header_regex_sanitizer(key="Cookie", value="cookie;")
+ add_body_key_sanitizer(json_path="$..access_token", value="access_token")
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_attestation_providers_operations.py b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_attestation_providers_operations.py
new file mode 100644
index 000000000000..074793a3fe57
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_attestation_providers_operations.py
@@ -0,0 +1,144 @@
+# 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 pytest
+from azure.mgmt.attestation import AttestationManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestAttestationManagementAttestationProvidersOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(AttestationManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attestation_providers_get(self, resource_group):
+ response = self.client.attestation_providers.get(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attestation_providers_create(self, resource_group):
+ response = self.client.attestation_providers.create(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ creation_params={
+ "location": "str",
+ "properties": {
+ "policySigningCertificates": {
+ "keys": [
+ {
+ "kty": "str",
+ "alg": "str",
+ "crv": "str",
+ "d": "str",
+ "dp": "str",
+ "dq": "str",
+ "e": "str",
+ "k": "str",
+ "kid": "str",
+ "n": "str",
+ "p": "str",
+ "q": "str",
+ "qi": "str",
+ "use": "str",
+ "x": "str",
+ "x5c": ["str"],
+ "y": "str",
+ }
+ ]
+ },
+ "publicNetworkAccess": "Enabled",
+ "tpmAttestationAuthentication": "Enabled",
+ },
+ "tags": {"str": "str"},
+ },
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attestation_providers_update(self, resource_group):
+ response = self.client.attestation_providers.update(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ update_params={
+ "properties": {"publicNetworkAccess": "Enabled", "tpmAttestationAuthentication": "Enabled"},
+ "tags": {"str": "str"},
+ },
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attestation_providers_delete(self, resource_group):
+ response = self.client.attestation_providers.delete(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attestation_providers_list(self, resource_group):
+ response = self.client.attestation_providers.list(
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attestation_providers_list_by_resource_group(self, resource_group):
+ response = self.client.attestation_providers.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attestation_providers_list_default(self, resource_group):
+ response = self.client.attestation_providers.list_default(
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attestation_providers_get_default_by_location(self, resource_group):
+ response = self.client.attestation_providers.get_default_by_location(
+ location="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_attestation_providers_operations_async.py b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_attestation_providers_operations_async.py
new file mode 100644
index 000000000000..7e1f7e0c7509
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_attestation_providers_operations_async.py
@@ -0,0 +1,145 @@
+# 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 pytest
+from azure.mgmt.attestation.aio import AttestationManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestAttestationManagementAttestationProvidersOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(AttestationManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attestation_providers_get(self, resource_group):
+ response = await self.client.attestation_providers.get(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attestation_providers_create(self, resource_group):
+ response = await self.client.attestation_providers.create(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ creation_params={
+ "location": "str",
+ "properties": {
+ "policySigningCertificates": {
+ "keys": [
+ {
+ "kty": "str",
+ "alg": "str",
+ "crv": "str",
+ "d": "str",
+ "dp": "str",
+ "dq": "str",
+ "e": "str",
+ "k": "str",
+ "kid": "str",
+ "n": "str",
+ "p": "str",
+ "q": "str",
+ "qi": "str",
+ "use": "str",
+ "x": "str",
+ "x5c": ["str"],
+ "y": "str",
+ }
+ ]
+ },
+ "publicNetworkAccess": "Enabled",
+ "tpmAttestationAuthentication": "Enabled",
+ },
+ "tags": {"str": "str"},
+ },
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attestation_providers_update(self, resource_group):
+ response = await self.client.attestation_providers.update(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ update_params={
+ "properties": {"publicNetworkAccess": "Enabled", "tpmAttestationAuthentication": "Enabled"},
+ "tags": {"str": "str"},
+ },
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attestation_providers_delete(self, resource_group):
+ response = await self.client.attestation_providers.delete(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attestation_providers_list(self, resource_group):
+ response = await self.client.attestation_providers.list(
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attestation_providers_list_by_resource_group(self, resource_group):
+ response = await self.client.attestation_providers.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attestation_providers_list_default(self, resource_group):
+ response = await self.client.attestation_providers.list_default(
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attestation_providers_get_default_by_location(self, resource_group):
+ response = await self.client.attestation_providers.get_default_by_location(
+ location="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_operations.py b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_operations.py
new file mode 100644
index 000000000000..eefba7bf6efa
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_operations.py
@@ -0,0 +1,29 @@
+# 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 pytest
+from azure.mgmt.attestation import AttestationManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestAttestationManagementOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(AttestationManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_operations_list(self, resource_group):
+ response = self.client.operations.list(
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_operations_async.py b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_operations_async.py
new file mode 100644
index 000000000000..d97b3c2408fd
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_operations_async.py
@@ -0,0 +1,30 @@
+# 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 pytest
+from azure.mgmt.attestation.aio import AttestationManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestAttestationManagementOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(AttestationManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_operations_list(self, resource_group):
+ response = await self.client.operations.list(
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_endpoint_connections_operations.py b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_endpoint_connections_operations.py
new file mode 100644
index 000000000000..8a6d2eafb0a8
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_endpoint_connections_operations.py
@@ -0,0 +1,78 @@
+# 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 pytest
+from azure.mgmt.attestation import AttestationManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestAttestationManagementPrivateEndpointConnectionsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(AttestationManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_private_endpoint_connections_list(self, resource_group):
+ response = self.client.private_endpoint_connections.list(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ api_version="2021-06-01",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_private_endpoint_connections_get(self, resource_group):
+ response = self.client.private_endpoint_connections.get(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ private_endpoint_connection_name="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_private_endpoint_connections_create(self, resource_group):
+ response = self.client.private_endpoint_connections.create(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ private_endpoint_connection_name="str",
+ properties={
+ "id": "str",
+ "name": "str",
+ "privateEndpoint": {"id": "str"},
+ "privateLinkServiceConnectionState": {"actionsRequired": "str", "description": "str", "status": "str"},
+ "provisioningState": "str",
+ "type": "str",
+ },
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_private_endpoint_connections_delete(self, resource_group):
+ response = self.client.private_endpoint_connections.delete(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ private_endpoint_connection_name="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_endpoint_connections_operations_async.py b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_endpoint_connections_operations_async.py
new file mode 100644
index 000000000000..b99850101b8c
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_endpoint_connections_operations_async.py
@@ -0,0 +1,79 @@
+# 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 pytest
+from azure.mgmt.attestation.aio import AttestationManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestAttestationManagementPrivateEndpointConnectionsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(AttestationManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_private_endpoint_connections_list(self, resource_group):
+ response = self.client.private_endpoint_connections.list(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ api_version="2021-06-01",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_private_endpoint_connections_get(self, resource_group):
+ response = await self.client.private_endpoint_connections.get(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ private_endpoint_connection_name="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_private_endpoint_connections_create(self, resource_group):
+ response = await self.client.private_endpoint_connections.create(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ private_endpoint_connection_name="str",
+ properties={
+ "id": "str",
+ "name": "str",
+ "privateEndpoint": {"id": "str"},
+ "privateLinkServiceConnectionState": {"actionsRequired": "str", "description": "str", "status": "str"},
+ "provisioningState": "str",
+ "type": "str",
+ },
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_private_endpoint_connections_delete(self, resource_group):
+ response = await self.client.private_endpoint_connections.delete(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ private_endpoint_connection_name="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_link_resources_operations.py b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_link_resources_operations.py
new file mode 100644
index 000000000000..1bae157a438e
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_link_resources_operations.py
@@ -0,0 +1,31 @@
+# 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 pytest
+from azure.mgmt.attestation import AttestationManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestAttestationManagementPrivateLinkResourcesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(AttestationManagementClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_private_link_resources_list_by_provider(self, resource_group):
+ response = self.client.private_link_resources.list_by_provider(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_link_resources_operations_async.py b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_link_resources_operations_async.py
new file mode 100644
index 000000000000..4c5bb7afbed9
--- /dev/null
+++ b/sdk/attestation/azure-mgmt-attestation/generated_tests/test_attestation_management_private_link_resources_operations_async.py
@@ -0,0 +1,32 @@
+# 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 pytest
+from azure.mgmt.attestation.aio import AttestationManagementClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestAttestationManagementPrivateLinkResourcesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(AttestationManagementClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_private_link_resources_list_by_provider(self, resource_group):
+ response = await self.client.private_link_resources.list_by_provider(
+ resource_group_name=resource_group.name,
+ provider_name="str",
+ api_version="2021-06-01",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/attestation/azure-mgmt-attestation/setup.py b/sdk/attestation/azure-mgmt-attestation/setup.py
index ea47ed06f07e..8ff5caadb36c 100644
--- a/sdk/attestation/azure-mgmt-attestation/setup.py
+++ b/sdk/attestation/azure-mgmt-attestation/setup.py
@@ -1,10 +1,10 @@
#!/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.
-#--------------------------------------------------------------------------
+# --------------------------------------------------------------------------
import re
import os.path
@@ -16,63 +16,68 @@
PACKAGE_PPRINT_NAME = "Attestation Management"
# a-b-c => a/b/c
-package_folder_path = PACKAGE_NAME.replace('-', '/')
+package_folder_path = PACKAGE_NAME.replace("-", "/")
# a-b-c => a.b.c
-namespace_name = PACKAGE_NAME.replace('-', '.')
+namespace_name = PACKAGE_NAME.replace("-", ".")
# Version extraction inspired from 'requests'
-with open(os.path.join(package_folder_path, 'version.py')
- if os.path.exists(os.path.join(package_folder_path, 'version.py'))
- else os.path.join(package_folder_path, '_version.py'), 'r') as fd:
- version = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]',
- fd.read(), re.MULTILINE).group(1)
+with open(
+ os.path.join(package_folder_path, "version.py")
+ if os.path.exists(os.path.join(package_folder_path, "version.py"))
+ else os.path.join(package_folder_path, "_version.py"),
+ "r",
+) as fd:
+ version = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]', fd.read(), re.MULTILINE).group(1)
if not version:
- raise RuntimeError('Cannot find version information')
+ raise RuntimeError("Cannot find version information")
-with open('README.md', encoding='utf-8') as f:
+with open("README.md", encoding="utf-8") as f:
readme = f.read()
-with open('CHANGELOG.md', encoding='utf-8') as f:
+with open("CHANGELOG.md", encoding="utf-8") as f:
changelog = f.read()
setup(
name=PACKAGE_NAME,
version=version,
- description='Microsoft Azure {} Client Library for Python'.format(PACKAGE_PPRINT_NAME),
- long_description=readme + '\n\n' + changelog,
- long_description_content_type='text/markdown',
- license='MIT License',
- author='Microsoft Corporation',
- author_email='azpysdkhelp@microsoft.com',
- url='https://github.com/Azure/azure-sdk-for-python',
+ description="Microsoft Azure {} Client Library for Python".format(PACKAGE_PPRINT_NAME),
+ long_description=readme + "\n\n" + changelog,
+ long_description_content_type="text/markdown",
+ license="MIT License",
+ author="Microsoft Corporation",
+ author_email="azpysdkhelp@microsoft.com",
+ url="https://github.com/Azure/azure-sdk-for-python",
keywords="azure, azure sdk", # update with search keywords relevant to the azure service / product
classifiers=[
- 'Development Status :: 4 - Beta',
- 'Programming Language :: Python',
- 'Programming Language :: Python :: 3 :: Only',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.7',
- 'Programming Language :: Python :: 3.8',
- 'Programming Language :: Python :: 3.9',
- 'Programming Language :: Python :: 3.10',
- 'License :: OSI Approved :: MIT License',
+ "Development Status :: 4 - Beta",
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 3 :: Only",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
+ "License :: OSI Approved :: MIT License",
],
zip_safe=False,
- packages=find_packages(exclude=[
- 'tests',
- # Exclude packages that will be covered by PEP420 or nspkg
- 'azure',
- 'azure.mgmt',
- ]),
+ packages=find_packages(
+ exclude=[
+ "tests",
+ # Exclude packages that will be covered by PEP420 or nspkg
+ "azure",
+ "azure.mgmt",
+ ]
+ ),
include_package_data=True,
package_data={
- 'pytyped': ['py.typed'],
+ "pytyped": ["py.typed"],
},
install_requires=[
- "msrest>=0.7.1",
- "azure-common~=1.1",
- "azure-mgmt-core>=1.3.2,<2.0.0",
- "typing-extensions>=4.3.0; python_version<'3.8.0'",
+ "isodate>=0.6.1",
+ "typing-extensions>=4.6.0",
+ "azure-common>=1.1",
+ "azure-mgmt-core>=1.3.2",
],
- python_requires=">=3.7"
+ python_requires=">=3.8",
)