diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/_meta.json b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/_meta.json index 5004d48641b2..1f170f41fc12 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/_meta.json +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/_meta.json @@ -1,11 +1,11 @@ { - "commit": "7d6c14d986a67dca3451d7d92d8f6b9416d61fbf", + "commit": "65d16c33d9aeda7a9a769a56dc44e1807775270f", "repository_url": "https://github.com/Azure/azure-rest-api-specs", - "autorest": "3.9.2", + "autorest": "3.9.6", "use": [ - "@autorest/python@6.2.1", - "@autorest/modelerfour@4.24.3" + "@autorest/python@6.6.0", + "@autorest/modelerfour@4.26.2" ], - "autorest_command": "autorest specification/baremetalinfrastructure/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/baremetalinfrastructure/resource-manager/readme.md --generate-sample=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.6.0 --use=@autorest/modelerfour@4.26.2 --version=3.9.6 --version-tolerant=False", "readme": "specification/baremetalinfrastructure/resource-manager/readme.md" } \ No newline at end of file diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/__init__.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/__init__.py index ccaf47689913..bcd7a84c5abb 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/__init__.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/__init__.py @@ -13,7 +13,7 @@ try: from ._patch import __all__ as _patch_all - from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import + from ._patch import * # pylint: disable=unused-wildcard-import except ImportError: _patch_all = [] from ._patch import patch_sdk as _patch_sdk diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_bare_metal_infrastructure_client.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_bare_metal_infrastructure_client.py index 45122be46aee..9af8cea6c541 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_bare_metal_infrastructure_client.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_bare_metal_infrastructure_client.py @@ -12,10 +12,10 @@ from azure.core.rest import HttpRequest, HttpResponse from azure.mgmt.core import ARMPipelineClient -from . import models +from . import models as _models from ._configuration import BareMetalInfrastructureClientConfiguration from ._serialization import Deserializer, Serializer -from .operations import AzureBareMetalInstancesOperations, Operations +from .operations import AzureBareMetalInstancesOperations, AzureBareMetalStorageInstancesOperations, Operations if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,13 +30,16 @@ class BareMetalInfrastructureClient: # pylint: disable=client-accepts-api-versi azure.mgmt.baremetalinfrastructure.operations.AzureBareMetalInstancesOperations :ivar operations: Operations operations :vartype operations: azure.mgmt.baremetalinfrastructure.operations.Operations + :ivar azure_bare_metal_storage_instances: AzureBareMetalStorageInstancesOperations operations + :vartype azure_bare_metal_storage_instances: + azure.mgmt.baremetalinfrastructure.operations.AzureBareMetalStorageInstancesOperations :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 "2021-08-09". Note that overriding this + :keyword api_version: Api Version. Default value is "2023-04-06". Note that overriding this default value may result in unsupported behavior. :paramtype api_version: str """ @@ -51,9 +54,9 @@ def __init__( self._config = BareMetalInfrastructureClientConfiguration( credential=credential, subscription_id=subscription_id, **kwargs ) - self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + self._client: ARMPipelineClient = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) self._deserialize = Deserializer(client_models) self._serialize.client_side_validation = False @@ -61,6 +64,9 @@ def __init__( self._client, self._config, self._serialize, self._deserialize ) self.operations = Operations(self._client, self._config, self._serialize, self._deserialize) + self.azure_bare_metal_storage_instances = AzureBareMetalStorageInstancesOperations( + self._client, self._config, self._serialize, self._deserialize + ) def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse: """Runs the network request through the client's chained policies. @@ -84,15 +90,12 @@ def _send_request(self, request: HttpRequest, **kwargs: Any) -> HttpResponse: request_copy.url = self._client.format_url(request_copy.url) return self._client.send_request(request_copy, **kwargs) - def close(self): - # type: () -> None + def close(self) -> None: self._client.close() - def __enter__(self): - # type: () -> BareMetalInfrastructureClient + def __enter__(self) -> "BareMetalInfrastructureClient": 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/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_configuration.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_configuration.py index 09ded20eaf60..85d51fd7c5c5 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_configuration.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_configuration.py @@ -6,7 +6,6 @@ # 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 @@ -15,11 +14,6 @@ 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 @@ -35,14 +29,14 @@ class BareMetalInfrastructureClientConfiguration(Configuration): # pylint: disa :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 "2021-08-09". Note that overriding this + :keyword api_version: Api Version. Default value is "2023-04-06". 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(BareMetalInfrastructureClientConfiguration, self).__init__(**kwargs) - api_version = kwargs.pop("api_version", "2021-08-09") # type: Literal["2021-08-09"] + api_version: str = kwargs.pop("api_version", "2023-04-06") if credential is None: raise ValueError("Parameter 'credential' must not be None.") @@ -56,10 +50,7 @@ def __init__(self, credential: "TokenCredential", subscription_id: str, **kwargs kwargs.setdefault("sdk_moniker", "mgmt-baremetalinfrastructure/{}".format(VERSION)) 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) diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_serialization.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_serialization.py index 7c1dedb5133d..842ae727fbbc 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_serialization.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_serialization.py @@ -25,6 +25,7 @@ # -------------------------------------------------------------------------- # pylint: skip-file +# pyright: reportUnnecessaryTypeIgnoreComment=false from base64 import b64decode, b64encode import calendar @@ -37,23 +38,38 @@ import re import sys import codecs +from typing import ( + Dict, + Any, + cast, + Optional, + Union, + AnyStr, + IO, + Mapping, + Callable, + TypeVar, + MutableMapping, + Type, + List, + Mapping, +) 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 - -from typing import Dict, Any, cast, TYPE_CHECKING +import isodate # type: ignore from azure.core.exceptions import DeserializationError, SerializationError, raise_with_traceback +from azure.core.serialization import NULL as AzureCoreNull _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 +81,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. @@ -132,8 +147,7 @@ def _json_attemp(data): 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 @@ -160,8 +174,8 @@ def deserialize_from_http_generics(cls, body_bytes, headers): basestring # type: ignore unicode_str = unicode # type: ignore except NameError: - basestring = str # type: ignore - unicode_str = str # type: ignore + basestring = str + unicode_str = str _LOGGER = logging.getLogger(__name__) @@ -188,7 +202,7 @@ def dst(self, dt): 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 @@ -219,7 +233,7 @@ 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 @@ -276,12 +290,12 @@ class Model(object): serialization and deserialization. """ - _subtype_map = {} # type: Dict[str, Dict[str, Any]] - _attribute_map = {} # type: Dict[str, Dict[str, Any]] - _validation = {} # type: Dict[str, Dict[str, Any]] + _subtype_map: Dict[str, Dict[str, Any]] = {} + _attribute_map: Dict[str, Dict[str, Any]] = {} + _validation: Dict[str, Dict[str, Any]] = {} - def __init__(self, **kwargs): - self.additional_properties = {} + def __init__(self, **kwargs: Any) -> None: + self.additional_properties: Dict[str, Any] = {} for k in kwargs: 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__) @@ -290,27 +304,27 @@ def __init__(self, **kwargs): else: setattr(self, k, kwargs[k]) - def __eq__(self, other): + def __eq__(self, other: Any) -> bool: """Compare objects by comparing all attributes.""" if isinstance(other, self.__class__): return self.__dict__ == other.__dict__ return False - def __ne__(self, other): + def __ne__(self, other: Any) -> bool: """Compare objects by comparing all attributes.""" 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 @@ -319,13 +333,13 @@ def is_xml_model(cls): def _create_xml_node(cls): """Create XML node.""" 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): + def serialize(self, keep_readonly: bool = False, **kwargs: Any) -> JSON: """Return the JSON that would be sent to azure from this model. This is an alias to `as_dict(full_restapi_key_transformer, keep_readonly=False)`. @@ -339,8 +353,13 @@ def serialize(self, keep_readonly=False, **kwargs): serializer = Serializer(self._infer_class_models()) return serializer._serialize(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: @@ -387,7 +406,7 @@ def _infer_class_models(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. @@ -399,7 +418,12 @@ def deserialize(cls, data, content_type=None): return deserializer(cls.__name__, data, content_type=content_type) @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 @@ -412,8 +436,8 @@ def from_dict(cls, data, key_extractors=None, content_type=None): :raises: DeserializationError if something went wrong """ 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, @@ -453,7 +477,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.", @@ -521,7 +545,7 @@ class Serializer(object): "multiple": lambda x, y: x % y != 0, } - def __init__(self, classes=None): + def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): self.serialize_type = { "iso-8601": Serializer.serialize_iso, "rfc-1123": Serializer.serialize_rfc, @@ -537,7 +561,7 @@ def __init__(self, classes=None): "[]": self.serialize_iter, "{}": self.serialize_dict, } - self.dependencies = dict(classes) if classes else {} + self.dependencies: Dict[str, Type[ModelType]] = dict(classes) if classes else {} self.key_transformer = full_restapi_key_transformer self.client_side_validation = True @@ -605,14 +629,14 @@ 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 "name" not in getattr(orig_attr, "_xml_map", {}): @@ -621,23 +645,22 @@ def _serialize(self, target_obj, data_type=None, **kwargs): 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) + 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 @@ -659,8 +682,8 @@ def body(self, data, data_type, **kwargs): """ # 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 +698,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: @@ -780,6 +803,8 @@ def serialize_data(self, data, data_type, **kwargs): raise ValueError("No value for given attribute") try: + if data is AzureCoreNull: + return None if data_type in self.basic_types.values(): return self.serialize_basic(data, data_type, **kwargs) @@ -843,7 +868,7 @@ 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 @@ -1001,10 +1026,10 @@ 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: + 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}" @@ -1164,7 +1189,8 @@ def rest_key_extractor(attr, attr_desc, data): 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 @@ -1245,7 +1271,7 @@ 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 @@ -1269,7 +1295,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): @@ -1335,7 +1361,7 @@ class Deserializer(object): 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}]?") - def __init__(self, classes=None): + def __init__(self, classes: Optional[Mapping[str, Type[ModelType]]] = None): self.deserialize_type = { "iso-8601": Deserializer.deserialize_iso, "rfc-1123": Deserializer.deserialize_rfc, @@ -1355,7 +1381,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[ModelType]] = 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 @@ -1416,7 +1442,7 @@ def _deserialize(self, target_obj, data): if data is None: return data try: - attributes = response._attribute_map + attributes = response._attribute_map # type: ignore d_attrs = {} for attr, attr_desc in attributes.items(): # Check empty string. If it's not empty, someone has a real "additionalProperties"... @@ -1444,7 +1470,7 @@ 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 + msg = "Unable to deserialize to object: " + class_name # type: ignore raise_with_traceback(DeserializationError, msg, err) else: additional_properties = self._build_additional_properties(attributes, data) @@ -1474,7 +1500,7 @@ 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. """ if target is None: return None, None @@ -1489,7 +1515,7 @@ def _classify_target(self, target, data): target = target._classify(data, self.dependencies) 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,7 +1525,7 @@ 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. """ try: @@ -1543,7 +1569,7 @@ def _unpack_content(raw_data, content_type=None): 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) + return RawDeserializer.deserialize_from_text(raw_data, content_type) # type: ignore return raw_data def _instantiate_model(self, response, attrs, additional_properties=None): @@ -1565,7 +1591,7 @@ def _instantiate_model(self, response, attrs, additional_properties=None): response_obj.additional_properties = additional_properties return response_obj except TypeError as err: - msg = "Unable to deserialize {} into model {}. ".format(kwargs, response) + msg = "Unable to deserialize {} into model {}. ".format(kwargs, response) # type: ignore raise DeserializationError(msg + str(err)) else: try: @@ -1747,7 +1773,7 @@ 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) @@ -1798,7 +1824,7 @@ def deserialize_bytearray(attr): """ if isinstance(attr, ET.Element): attr = attr.text - return bytearray(b64decode(attr)) + return bytearray(b64decode(attr)) # type: ignore @staticmethod def deserialize_base64(attr): @@ -1810,8 +1836,8 @@ def deserialize_base64(attr): """ 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) @@ -1826,7 +1852,7 @@ def deserialize_decimal(attr): if isinstance(attr, ET.Element): attr = attr.text try: - return decimal.Decimal(attr) + return decimal.Decimal(attr) # type: ignore except decimal.DecimalException as err: msg = "Invalid decimal {}".format(attr) raise_with_traceback(DeserializationError, msg, err) @@ -1841,7 +1867,7 @@ def deserialize_long(attr): """ if isinstance(attr, ET.Element): attr = attr.text - return _long_type(attr) + return _long_type(attr) # type: ignore @staticmethod def deserialize_duration(attr): @@ -1871,7 +1897,7 @@ def deserialize_date(attr): """ 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) @@ -1886,7 +1912,7 @@ def deserialize_time(attr): """ 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) @@ -1901,7 +1927,7 @@ def deserialize_rfc(attr): 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)) ) @@ -1924,7 +1950,7 @@ def deserialize_iso(attr): 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) @@ -1960,7 +1986,7 @@ def deserialize_unix(attr): :raises: DeserializationError if format invalid """ if isinstance(attr, ET.Element): - attr = int(attr.text) + attr = int(attr.text) # type: ignore try: date_obj = datetime.datetime.fromtimestamp(attr, TZ_UTC) except ValueError as err: diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_vendor.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_vendor.py index 9aad73fc743e..bd0df84f5319 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_vendor.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_vendor.py @@ -5,6 +5,8 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- +from typing import List, cast + from azure.core.pipeline.transport import HttpRequest @@ -22,6 +24,7 @@ def _format_url_section(template, **kwargs): try: return template.format(**kwargs) except KeyError as key: - formatted_components = template.split("/") + # Need the cast, as for some reasons "split" is typed as list[str | Any] + formatted_components = cast(List[str], template.split("/")) components = [c for c in formatted_components if "{}".format(key.args[0]) not in c] template = "/".join(components) diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_version.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_version.py index 653b73a4a199..e5754a47ce68 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_version.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/_version.py @@ -6,4 +6,4 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -VERSION = "1.1.0b1" +VERSION = "1.0.0b1" diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/__init__.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/__init__.py index de97de64ce14..d297a609c1bd 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/__init__.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/__init__.py @@ -10,7 +10,7 @@ try: from ._patch import __all__ as _patch_all - from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import + from ._patch import * # pylint: disable=unused-wildcard-import except ImportError: _patch_all = [] from ._patch import patch_sdk as _patch_sdk diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/_bare_metal_infrastructure_client.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/_bare_metal_infrastructure_client.py index 9afb9680bf49..833c0319452f 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/_bare_metal_infrastructure_client.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/_bare_metal_infrastructure_client.py @@ -12,10 +12,10 @@ from azure.core.rest import AsyncHttpResponse, HttpRequest from azure.mgmt.core import AsyncARMPipelineClient -from .. import models +from .. import models as _models from .._serialization import Deserializer, Serializer from ._configuration import BareMetalInfrastructureClientConfiguration -from .operations import AzureBareMetalInstancesOperations, Operations +from .operations import AzureBareMetalInstancesOperations, AzureBareMetalStorageInstancesOperations, Operations if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports @@ -30,13 +30,16 @@ class BareMetalInfrastructureClient: # pylint: disable=client-accepts-api-versi azure.mgmt.baremetalinfrastructure.aio.operations.AzureBareMetalInstancesOperations :ivar operations: Operations operations :vartype operations: azure.mgmt.baremetalinfrastructure.aio.operations.Operations + :ivar azure_bare_metal_storage_instances: AzureBareMetalStorageInstancesOperations operations + :vartype azure_bare_metal_storage_instances: + azure.mgmt.baremetalinfrastructure.aio.operations.AzureBareMetalStorageInstancesOperations :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 "2021-08-09". Note that overriding this + :keyword api_version: Api Version. Default value is "2023-04-06". Note that overriding this default value may result in unsupported behavior. :paramtype api_version: str """ @@ -51,9 +54,9 @@ def __init__( self._config = BareMetalInfrastructureClientConfiguration( credential=credential, subscription_id=subscription_id, **kwargs ) - self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) + self._client: AsyncARMPipelineClient = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} + client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) self._deserialize = Deserializer(client_models) self._serialize.client_side_validation = False @@ -61,6 +64,9 @@ def __init__( self._client, self._config, self._serialize, self._deserialize ) self.operations = Operations(self._client, self._config, self._serialize, self._deserialize) + self.azure_bare_metal_storage_instances = AzureBareMetalStorageInstancesOperations( + self._client, self._config, self._serialize, self._deserialize + ) def _send_request(self, request: HttpRequest, **kwargs: Any) -> Awaitable[AsyncHttpResponse]: """Runs the network request through the client's chained policies. @@ -91,5 +97,5 @@ async def __aenter__(self) -> "BareMetalInfrastructureClient": 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/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/_configuration.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/_configuration.py index fe9aef5f4ae2..77a6468a3226 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/_configuration.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/_configuration.py @@ -6,7 +6,6 @@ # 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 @@ -15,11 +14,6 @@ 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 @@ -35,14 +29,14 @@ class BareMetalInfrastructureClientConfiguration(Configuration): # pylint: disa :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 "2021-08-09". Note that overriding this + :keyword api_version: Api Version. Default value is "2023-04-06". 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(BareMetalInfrastructureClientConfiguration, self).__init__(**kwargs) - api_version = kwargs.pop("api_version", "2021-08-09") # type: Literal["2021-08-09"] + api_version: str = kwargs.pop("api_version", "2023-04-06") if credential is None: raise ValueError("Parameter 'credential' must not be None.") diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/__init__.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/__init__.py index 818471046741..3e12b5ce7466 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/__init__.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/__init__.py @@ -8,14 +8,16 @@ from ._azure_bare_metal_instances_operations import AzureBareMetalInstancesOperations from ._operations import Operations +from ._azure_bare_metal_storage_instances_operations import AzureBareMetalStorageInstancesOperations from ._patch import __all__ as _patch_all -from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import +from ._patch import * # pylint: disable=unused-wildcard-import from ._patch import patch_sdk as _patch_sdk __all__ = [ "AzureBareMetalInstancesOperations", "Operations", + "AzureBareMetalStorageInstancesOperations", ] __all__.extend([p for p in _patch_all if p not in __all__]) _patch_sdk() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_azure_bare_metal_instances_operations.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_azure_bare_metal_instances_operations.py index 0dbb67411408..492d2841fb3f 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_azure_bare_metal_instances_operations.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_azure_bare_metal_instances_operations.py @@ -6,7 +6,7 @@ # 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 io import IOBase from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, overload import urllib.parse @@ -30,16 +30,14 @@ from ... import models as _models from ..._vendor import _convert_request from ...operations._azure_bare_metal_instances_operations import ( + build_delete_request, build_get_request, build_list_by_resource_group_request, build_list_by_subscription_request, + build_put_request, build_update_request, ) -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 T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -80,10 +78,8 @@ def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.AzureBar _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["2021-08-09"] - cls = kwargs.pop("cls", None) # type: ClsType[_models.AzureBareMetalInstancesListResult] + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.AzureBareMetalInstancesListResult] = kwargs.pop("cls", None) error_map = { 401: ClientAuthenticationError, @@ -104,7 +100,7 @@ def prepare_request(next_link=None): 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 @@ -120,7 +116,7 @@ def prepare_request(next_link=None): "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.url = self._client.format_url(request.url) request.method = "GET" return request @@ -128,14 +124,15 @@ async def extract_data(pipeline_response): deserialized = self._deserialize("AzureBareMetalInstancesListResult", 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 deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run( # 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 @@ -148,7 +145,9 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances"} # type: ignore + list_by_subscription.metadata = { + "url": "/subscriptions/{subscriptionId}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances" + } @distributed_trace def list_by_resource_group( @@ -172,10 +171,8 @@ 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["2021-08-09"] - cls = kwargs.pop("cls", None) # type: ClsType[_models.AzureBareMetalInstancesListResult] + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.AzureBareMetalInstancesListResult] = kwargs.pop("cls", None) error_map = { 401: ClientAuthenticationError, @@ -197,7 +194,7 @@ def prepare_request(next_link=None): 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 @@ -213,7 +210,7 @@ def prepare_request(next_link=None): "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.url = self._client.format_url(request.url) request.method = "GET" return request @@ -221,14 +218,15 @@ async def extract_data(pipeline_response): deserialized = self._deserialize("AzureBareMetalInstancesListResult", 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 deserialized.next_link or None, AsyncList(list_of_elem) async def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = await self._client._pipeline.run( # 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 @@ -241,7 +239,9 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list_by_resource_group.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances"} # type: ignore + list_by_resource_group.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances" + } @distributed_trace_async async def get( @@ -273,10 +273,8 @@ 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["2021-08-09"] - cls = kwargs.pop("cls", None) # type: ClsType[_models.AzureBareMetalInstance] + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.AzureBareMetalInstance] = kwargs.pop("cls", None) request = build_get_request( resource_group_name=resource_group_name, @@ -288,10 +286,11 @@ async def get( 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 @@ -308,7 +307,228 @@ async def get( return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}"} # type: ignore + get.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}" + } + + @distributed_trace_async + async def delete( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, azure_bare_metal_instance_name: str, **kwargs: Any + ) -> None: + """Deletes an Azure BareMetal instance. + + Deletes an Azure BareMetal instance for the specified subscription, resource group, and + instance name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_instance_name: Name of the Azure BareMetal on Azure instance. Required. + :type azure_bare_metal_instance_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 = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + 501: lambda response: HttpResponseError(response=response, error_format=ARMErrorFormat), + } + 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[None] = kwargs.pop("cls", None) + + request = build_delete_request( + resource_group_name=resource_group_name, + azure_bare_metal_instance_name=azure_bare_metal_instance_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) + + _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 []: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}" + } + + @overload + async def put( # pylint: disable=inconsistent-return-statements + self, + resource_group_name: str, + azure_bare_metal_instance_name: str, + request_body_parameters: Optional[_models.AzureBareMetalInstance] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> None: + """Adds an Azure BareMetal Instance. + + Adds an Azure BareMetal instance for the specified subscription, resource group, and instance + name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_instance_name: Name of the Azure BareMetal on Azure instance. Required. + :type azure_bare_metal_instance_name: str + :param request_body_parameters: request body for put call. Default value is None. + :type request_body_parameters: + ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalInstance + :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: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def put( # pylint: disable=inconsistent-return-statements + self, + resource_group_name: str, + azure_bare_metal_instance_name: str, + request_body_parameters: Optional[IO] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> None: + """Adds an Azure BareMetal Instance. + + Adds an Azure BareMetal instance for the specified subscription, resource group, and instance + name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_instance_name: Name of the Azure BareMetal on Azure instance. Required. + :type azure_bare_metal_instance_name: str + :param request_body_parameters: request body for put call. Default value is None. + :type request_body_parameters: IO + :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: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def put( # pylint: disable=inconsistent-return-statements + self, + resource_group_name: str, + azure_bare_metal_instance_name: str, + request_body_parameters: Optional[Union[_models.AzureBareMetalInstance, IO]] = None, + **kwargs: Any + ) -> None: + """Adds an Azure BareMetal Instance. + + Adds an Azure BareMetal instance for the specified subscription, resource group, and instance + name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_instance_name: Name of the Azure BareMetal on Azure instance. Required. + :type azure_bare_metal_instance_name: str + :param request_body_parameters: request body for put call. Is either a AzureBareMetalInstance + type or a IO type. Default value is None. + :type request_body_parameters: + ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalInstance 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 + :return: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + 501: lambda response: HttpResponseError(response=response, error_format=ARMErrorFormat), + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(request_body_parameters, (IOBase, bytes)): + _content = request_body_parameters + else: + if request_body_parameters is not None: + _json = self._serialize.body(request_body_parameters, "AzureBareMetalInstance") + else: + _json = None + + request = build_put_request( + resource_group_name=resource_group_name, + azure_bare_metal_instance_name=azure_bare_metal_instance_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + template_url=self.put.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + 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 []: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + put.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}" + } @overload async def update( @@ -390,7 +610,7 @@ async def update( :type resource_group_name: str :param azure_bare_metal_instance_name: Name of the Azure BareMetal on Azure instance. Required. :type azure_bare_metal_instance_name: str - :param tags_parameter: Request body that only contains the new Tags field. Is either a model + :param tags_parameter: Request body that only contains the new Tags field. Is either a Tags type or a IO type. Required. :type tags_parameter: ~azure.mgmt.baremetalinfrastructure.models.Tags or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. @@ -412,16 +632,14 @@ 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["2021-08-09"] - content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.AzureBareMetalInstance] + 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.AzureBareMetalInstance] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(tags_parameter, (IO, bytes)): + if isinstance(tags_parameter, (IOBase, bytes)): _content = tags_parameter else: _json = self._serialize.body(tags_parameter, "Tags") @@ -439,10 +657,11 @@ async def update( 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 @@ -459,4 +678,6 @@ async def update( return deserialized - update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}"} # type: ignore + update.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}" + } diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_azure_bare_metal_storage_instances_operations.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_azure_bare_metal_storage_instances_operations.py new file mode 100644 index 000000000000..f44fb69692ff --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_azure_bare_metal_storage_instances_operations.py @@ -0,0 +1,691 @@ +# 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. +# 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 +from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, overload +import urllib.parse + +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.pipeline import PipelineResponse +from azure.core.pipeline.transport import AsyncHttpResponse +from azure.core.rest import 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._azure_bare_metal_storage_instances_operations import ( + build_create_request, + build_delete_request, + build_get_request, + build_list_by_resource_group_request, + build_list_by_subscription_request, + build_update_request, +) + +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] + + +class AzureBareMetalStorageInstancesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.baremetalinfrastructure.aio.BareMetalInfrastructureClient`'s + :attr:`azure_bare_metal_storage_instances` 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 + def list_by_subscription(self, **kwargs: Any) -> AsyncIterable["_models.AzureBareMetalStorageInstance"]: + """Gets a list of Azure BareMetalStorage instances in the specified subscription. + + Gets a list of AzureBareMetalStorage instances in the specified subscription. The operations + returns various properties of each Azure BareMetal instance. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AzureBareMetalStorageInstance or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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.AzureBareMetalStorageInstancesListResult] = kwargs.pop("cls", None) + + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.list_by_subscription.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + 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) + request.method = "GET" + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("AzureBareMetalStorageInstancesListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + _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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + list_by_subscription.metadata = { + "url": "/subscriptions/{subscriptionId}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances" + } + + @distributed_trace + def list_by_resource_group( + self, resource_group_name: str, **kwargs: Any + ) -> AsyncIterable["_models.AzureBareMetalStorageInstance"]: + """Gets a list of Azure BareMetalStorage instances in the specified subscription and resource + group. + + Gets a list of AzureBareMetalStorage instances in the specified subscription and resource + group. The operations returns various properties of each Azure BareMetal instance. + + :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: An iterator like instance of either AzureBareMetalStorageInstance or the result of + cls(response) + :rtype: + ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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.AzureBareMetalStorageInstancesListResult] = kwargs.pop("cls", None) + + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + 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) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + 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) + request.method = "GET" + return request + + async def extract_data(pipeline_response): + deserialized = self._deserialize("AzureBareMetalStorageInstancesListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + request = prepare_request(next_link) + + _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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) + + list_by_resource_group.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances" + } + + @distributed_trace_async + async def get( + self, resource_group_name: str, azure_bare_metal_storage_instance_name: str, **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Gets an Azure BareMetal Storage instance. + + Gets an Azure BareMetal Storage instance for the specified subscription, resource group, and + instance name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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.AzureBareMetalStorageInstance] = kwargs.pop("cls", None) + + request = build_get_request( + resource_group_name=resource_group_name, + azure_bare_metal_storage_instance_name=azure_bare_metal_storage_instance_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) + + _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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("AzureBareMetalStorageInstance", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}" + } + + @overload + async def create( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + request_body_parameters: _models.AzureBareMetalStorageInstance, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Create an azure baremetal storage resource. + + Create an azure baremetal storage resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param request_body_parameters: request body for put call. Required. + :type request_body_parameters: + ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :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: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def create( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + request_body_parameters: IO, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Create an azure baremetal storage resource. + + Create an azure baremetal storage resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param request_body_parameters: request body for put call. Required. + :type request_body_parameters: IO + :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: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def create( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + request_body_parameters: Union[_models.AzureBareMetalStorageInstance, IO], + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Create an azure baremetal storage resource. + + Create an azure baremetal storage resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param request_body_parameters: request body for put call. Is either a + AzureBareMetalStorageInstance type or a IO type. Required. + :type request_body_parameters: + ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance 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 + :return: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.AzureBareMetalStorageInstance] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(request_body_parameters, (IOBase, bytes)): + _content = request_body_parameters + else: + _json = self._serialize.body(request_body_parameters, "AzureBareMetalStorageInstance") + + request = build_create_request( + resource_group_name=resource_group_name, + azure_bare_metal_storage_instance_name=azure_bare_metal_storage_instance_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + 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) + + _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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize("AzureBareMetalStorageInstance", pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize("AzureBareMetalStorageInstance", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + create.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}" + } + + @overload + async def update( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + tags_parameter: _models.Tags, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Patches the Tags field of a Azure BareMetalStorage instance. + + Patches the Tags field of a Azure BareMetalStorage instance for the specified subscription, + resource group, and instance name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param tags_parameter: Request body that only contains the new Tags field. Required. + :type tags_parameter: ~azure.mgmt.baremetalinfrastructure.models.Tags + :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: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + async def update( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + tags_parameter: IO, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Patches the Tags field of a Azure BareMetalStorage instance. + + Patches the Tags field of a Azure BareMetalStorage instance for the specified subscription, + resource group, and instance name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param tags_parameter: Request body that only contains the new Tags field. Required. + :type tags_parameter: IO + :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: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace_async + async def update( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + tags_parameter: Union[_models.Tags, IO], + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Patches the Tags field of a Azure BareMetalStorage instance. + + Patches the Tags field of a Azure BareMetalStorage instance for the specified subscription, + resource group, and instance name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param tags_parameter: Request body that only contains the new Tags field. Is either a Tags + type or a IO type. Required. + :type tags_parameter: ~azure.mgmt.baremetalinfrastructure.models.Tags 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 + :return: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.AzureBareMetalStorageInstance] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(tags_parameter, (IOBase, bytes)): + _content = tags_parameter + else: + _json = self._serialize.body(tags_parameter, "Tags") + + request = build_update_request( + resource_group_name=resource_group_name, + azure_bare_metal_storage_instance_name=azure_bare_metal_storage_instance_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + 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) + + _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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("AzureBareMetalStorageInstance", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + update.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}" + } + + @distributed_trace_async + async def delete( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, azure_bare_metal_storage_instance_name: str, **kwargs: Any + ) -> None: + """Delete an AzureBareMetalStorageInstance. + + Delete an AzureBareMetalStorageInstance. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_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 = { + 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[None] = kwargs.pop("cls", None) + + request = build_delete_request( + resource_group_name=resource_group_name, + azure_bare_metal_storage_instance_name=azure_bare_metal_storage_instance_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) + + _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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}" + } diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_operations.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_operations.py index 13b72d1066d0..3e6813f2b26b 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_operations.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/aio/operations/_operations.py @@ -6,7 +6,6 @@ # 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, AsyncIterable, Callable, Dict, Optional, TypeVar import urllib.parse @@ -30,10 +29,6 @@ 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 -else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] @@ -70,10 +65,8 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Operation"]: _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["2021-08-09"] - 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) error_map = { 401: ClientAuthenticationError, @@ -93,7 +86,7 @@ def prepare_request(next_link=None): 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 @@ -109,7 +102,7 @@ def prepare_request(next_link=None): "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.url = self._client.format_url(request.url) request.method = "GET" return request @@ -117,14 +110,15 @@ async def extract_data(pipeline_response): deserialized = self._deserialize("OperationList", 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) - 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 @@ -137,4 +131,4 @@ async def get_next(next_link=None): return AsyncItemPaged(get_next, extract_data) - list.metadata = {"url": "/providers/Microsoft.BareMetalInfrastructure/operations"} # type: ignore + list.metadata = {"url": "/providers/Microsoft.BareMetalInfrastructure/operations"} diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/__init__.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/__init__.py index 85283c1e2f0c..4d791e8c70db 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/__init__.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/__init__.py @@ -8,9 +8,12 @@ from ._models_py3 import AzureBareMetalInstance from ._models_py3 import AzureBareMetalInstancesListResult +from ._models_py3 import AzureBareMetalStorageInstance +from ._models_py3 import AzureBareMetalStorageInstancesListResult from ._models_py3 import Disk from ._models_py3 import Display -from ._models_py3 import ErrorDefinition +from ._models_py3 import ErrorAdditionalInfo +from ._models_py3 import ErrorDetail from ._models_py3 import ErrorResponse from ._models_py3 import HardwareProfile from ._models_py3 import IpAddress @@ -20,7 +23,9 @@ from ._models_py3 import OperationList from ._models_py3 import Resource from ._models_py3 import Result +from ._models_py3 import StorageBillingProperties from ._models_py3 import StorageProfile +from ._models_py3 import StorageProperties from ._models_py3 import SystemData from ._models_py3 import Tags from ._models_py3 import TrackedResource @@ -30,16 +35,20 @@ from ._bare_metal_infrastructure_client_enums import AzureBareMetalInstanceSizeNamesEnum from ._bare_metal_infrastructure_client_enums import AzureBareMetalProvisioningStatesEnum from ._bare_metal_infrastructure_client_enums import CreatedByType +from ._bare_metal_infrastructure_client_enums import ProvisioningState from ._patch import __all__ as _patch_all -from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import +from ._patch import * # pylint: disable=unused-wildcard-import from ._patch import patch_sdk as _patch_sdk __all__ = [ "AzureBareMetalInstance", "AzureBareMetalInstancesListResult", + "AzureBareMetalStorageInstance", + "AzureBareMetalStorageInstancesListResult", "Disk", "Display", - "ErrorDefinition", + "ErrorAdditionalInfo", + "ErrorDetail", "ErrorResponse", "HardwareProfile", "IpAddress", @@ -49,7 +58,9 @@ "OperationList", "Resource", "Result", + "StorageBillingProperties", "StorageProfile", + "StorageProperties", "SystemData", "Tags", "TrackedResource", @@ -58,6 +69,7 @@ "AzureBareMetalInstanceSizeNamesEnum", "AzureBareMetalProvisioningStatesEnum", "CreatedByType", + "ProvisioningState", ] __all__.extend([p for p in _patch_all if p not in __all__]) _patch_sdk() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/_bare_metal_infrastructure_client_enums.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/_bare_metal_infrastructure_client_enums.py index 7b4de205221a..fdb9796a5bf3 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/_bare_metal_infrastructure_client_enums.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/_bare_metal_infrastructure_client_enums.py @@ -95,3 +95,16 @@ class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta): APPLICATION = "Application" MANAGED_IDENTITY = "ManagedIdentity" KEY = "Key" + + +class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """State of provisioning of the AzureBareMetalStorageInstance.""" + + ACCEPTED = "Accepted" + CREATING = "Creating" + UPDATING = "Updating" + FAILED = "Failed" + SUCCEEDED = "Succeeded" + DELETING = "Deleting" + CANCELED = "Canceled" + MIGRATING = "Migrating" diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/_models_py3.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/_models_py3.py index 77b0c0e6afef..c94ff9114aac 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/_models_py3.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/models/_models_py3.py @@ -8,7 +8,7 @@ # -------------------------------------------------------------------------- import datetime -from typing import Dict, List, Optional, TYPE_CHECKING, Union +from typing import Any, Dict, List, Optional, TYPE_CHECKING, Union from .. import _serialization @@ -44,7 +44,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,7 +53,8 @@ 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. @@ -88,7 +89,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] @@ -190,8 +191,8 @@ def __init__( os_profile: Optional["_models.OSProfile"] = None, network_profile: Optional["_models.NetworkProfile"] = None, partner_node_id: Optional[str] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword tags: Resource tags. :paramtype tags: dict[str, str] @@ -242,8 +243,8 @@ def __init__( *, value: Optional[List["_models.AzureBareMetalInstance"]] = None, next_link: Optional[str] = None, - **kwargs - ): + **kwargs: Any + ) -> None: """ :keyword value: The list of Azure BareMetal instances. :paramtype value: list[~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalInstance] @@ -255,6 +256,118 @@ def __init__( self.next_link = next_link +class AzureBareMetalStorageInstance(TrackedResource): + """AzureBareMetalStorageInstance info on Azure (ARM properties and AzureBareMetalStorage + properties). + + Variables are only populated by the server, and will be ignored when sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource ID for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}. + :vartype id: str + :ivar name: The name of the resource. + :vartype name: str + :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or + "Microsoft.Storage/storageAccounts". + :vartype type: str + :ivar tags: Resource tags. + :vartype tags: dict[str, str] + :ivar location: The geo-location where the resource lives. Required. + :vartype location: str + :ivar system_data: The system metadata relating to this resource. + :vartype system_data: ~azure.mgmt.baremetalinfrastructure.models.SystemData + :ivar azure_bare_metal_storage_instance_unique_identifier: Specifies the + AzureBareMetaStorageInstance unique ID. + :vartype azure_bare_metal_storage_instance_unique_identifier: str + :ivar storage_properties: Specifies the storage properties for the AzureBareMetalStorage + instance. + :vartype storage_properties: ~azure.mgmt.baremetalinfrastructure.models.StorageProperties + """ + + _validation = { + "id": {"readonly": True}, + "name": {"readonly": True}, + "type": {"readonly": True}, + "location": {"required": True}, + "system_data": {"readonly": True}, + } + + _attribute_map = { + "id": {"key": "id", "type": "str"}, + "name": {"key": "name", "type": "str"}, + "type": {"key": "type", "type": "str"}, + "tags": {"key": "tags", "type": "{str}"}, + "location": {"key": "location", "type": "str"}, + "system_data": {"key": "systemData", "type": "SystemData"}, + "azure_bare_metal_storage_instance_unique_identifier": { + "key": "properties.azureBareMetalStorageInstanceUniqueIdentifier", + "type": "str", + }, + "storage_properties": {"key": "properties.storageProperties", "type": "StorageProperties"}, + } + + def __init__( + self, + *, + location: str, + tags: Optional[Dict[str, str]] = None, + azure_bare_metal_storage_instance_unique_identifier: Optional[str] = None, + storage_properties: Optional["_models.StorageProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword tags: Resource tags. + :paramtype tags: dict[str, str] + :keyword location: The geo-location where the resource lives. Required. + :paramtype location: str + :keyword azure_bare_metal_storage_instance_unique_identifier: Specifies the + AzureBareMetaStorageInstance unique ID. + :paramtype azure_bare_metal_storage_instance_unique_identifier: str + :keyword storage_properties: Specifies the storage properties for the AzureBareMetalStorage + instance. + :paramtype storage_properties: ~azure.mgmt.baremetalinfrastructure.models.StorageProperties + """ + super().__init__(tags=tags, location=location, **kwargs) + self.system_data = None + self.azure_bare_metal_storage_instance_unique_identifier = azure_bare_metal_storage_instance_unique_identifier + self.storage_properties = storage_properties + + +class AzureBareMetalStorageInstancesListResult(_serialization.Model): + """The response from the Get AzureBareMetalStorageInstances operation. + + :ivar value: The list of AzureBareMetalStorage instances. + :vartype value: list[~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance] + :ivar next_link: The URL to get the next set of AzureBareMetalStorage instances. + :vartype next_link: str + """ + + _attribute_map = { + "value": {"key": "value", "type": "[AzureBareMetalStorageInstance]"}, + "next_link": {"key": "nextLink", "type": "str"}, + } + + def __init__( + self, + *, + value: Optional[List["_models.AzureBareMetalStorageInstance"]] = None, + next_link: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword value: The list of AzureBareMetalStorage instances. + :paramtype value: + list[~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance] + :keyword next_link: The URL to get the next set of AzureBareMetalStorage instances. + :paramtype next_link: str + """ + super().__init__(**kwargs) + self.value = value + self.next_link = next_link + + class Disk(_serialization.Model): """Specifies the disk information fo the AzureBareMetal instance. @@ -279,7 +392,7 @@ class Disk(_serialization.Model): "lun": {"key": "lun", "type": "int"}, } - def __init__(self, *, name: Optional[str] = None, disk_size_gb: Optional[int] = None, **kwargs): + def __init__(self, *, name: Optional[str] = None, disk_size_gb: Optional[int] = None, **kwargs: Any) -> None: """ :keyword name: The disk name. :paramtype name: str @@ -322,7 +435,7 @@ class Display(_serialization.Model): "description": {"key": "description", "type": "str"}, } - def __init__(self, **kwargs): + def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.provider = None @@ -331,54 +444,93 @@ def __init__(self, **kwargs): self.description = None -class ErrorDefinition(_serialization.Model): - """Error definition. +class ErrorAdditionalInfo(_serialization.Model): + """The resource management error additional info. + + Variables are only populated by the server, and will be ignored when sending a request. + + :ivar type: The additional info type. + :vartype type: str + :ivar info: The additional info. + :vartype info: JSON + """ + + _validation = { + "type": {"readonly": True}, + "info": {"readonly": True}, + } + + _attribute_map = { + "type": {"key": "type", "type": "str"}, + "info": {"key": "info", "type": "object"}, + } + + def __init__(self, **kwargs: Any) -> None: + """ """ + super().__init__(**kwargs) + self.type = None + self.info = None + + +class ErrorDetail(_serialization.Model): + """The error detail. Variables are only populated by the server, and will be ignored when sending a request. - :ivar code: Service specific error code which serves as the substatus for the HTTP error code. + :ivar code: The error code. :vartype code: str - :ivar message: Description of the error. + :ivar message: The error message. :vartype message: str - :ivar details: Internal error details. - :vartype details: list[~azure.mgmt.baremetalinfrastructure.models.ErrorDefinition] + :ivar target: The error target. + :vartype target: str + :ivar details: The error details. + :vartype details: list[~azure.mgmt.baremetalinfrastructure.models.ErrorDetail] + :ivar additional_info: The error additional info. + :vartype additional_info: list[~azure.mgmt.baremetalinfrastructure.models.ErrorAdditionalInfo] """ _validation = { "code": {"readonly": True}, "message": {"readonly": True}, + "target": {"readonly": True}, "details": {"readonly": True}, + "additional_info": {"readonly": True}, } _attribute_map = { "code": {"key": "code", "type": "str"}, "message": {"key": "message", "type": "str"}, - "details": {"key": "details", "type": "[ErrorDefinition]"}, + "target": {"key": "target", "type": "str"}, + "details": {"key": "details", "type": "[ErrorDetail]"}, + "additional_info": {"key": "additionalInfo", "type": "[ErrorAdditionalInfo]"}, } - def __init__(self, **kwargs): + def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.code = None self.message = None + self.target = None self.details = None + self.additional_info = None class ErrorResponse(_serialization.Model): - """Error response. + """Common error response for all Azure Resource Manager APIs to return error details for failed + operations. (This also follows the OData error response format.). - :ivar error: The error details. - :vartype error: ~azure.mgmt.baremetalinfrastructure.models.ErrorDefinition + :ivar error: The error object. + :vartype error: ~azure.mgmt.baremetalinfrastructure.models.ErrorDetail """ _attribute_map = { - "error": {"key": "error", "type": "ErrorDefinition"}, + "error": {"key": "error", "type": "ErrorDetail"}, } - def __init__(self, *, error: Optional["_models.ErrorDefinition"] = None, **kwargs): + def __init__(self, *, error: Optional["_models.ErrorDetail"] = None, **kwargs: Any) -> None: """ - :keyword error: The error details. - :paramtype error: ~azure.mgmt.baremetalinfrastructure.models.ErrorDefinition + :keyword error: The error object. + :paramtype error: ~azure.mgmt.baremetalinfrastructure.models.ErrorDetail """ super().__init__(**kwargs) self.error = error @@ -413,7 +565,7 @@ class HardwareProfile(_serialization.Model): "azure_bare_metal_instance_size": {"key": "azureBareMetalInstanceSize", "type": "str"}, } - def __init__(self, **kwargs): + def __init__(self, **kwargs: Any) -> None: """ """ super().__init__(**kwargs) self.hardware_type = None @@ -431,7 +583,7 @@ class IpAddress(_serialization.Model): "ip_address": {"key": "ipAddress", "type": "str"}, } - def __init__(self, *, ip_address: Optional[str] = None, **kwargs): + def __init__(self, *, ip_address: Optional[str] = None, **kwargs: Any) -> None: """ :keyword ip_address: Specifies the IP address of the network interface. :paramtype ip_address: str @@ -460,7 +612,7 @@ class NetworkProfile(_serialization.Model): "circuit_id": {"key": "circuitId", "type": "str"}, } - def __init__(self, *, network_interfaces: Optional[List["_models.IpAddress"]] = None, **kwargs): + def __init__(self, *, network_interfaces: Optional[List["_models.IpAddress"]] = None, **kwargs: Any) -> None: """ :keyword network_interfaces: Specifies the network interfaces for the AzureBareMetal instance. :paramtype network_interfaces: list[~azure.mgmt.baremetalinfrastructure.models.IpAddress] @@ -495,7 +647,7 @@ class Operation(_serialization.Model): "is_data_action": {"key": "isDataAction", "type": "bool"}, } - def __init__(self, *, display: Optional["_models.Display"] = None, **kwargs): + def __init__(self, *, display: Optional["_models.Display"] = None, **kwargs: Any) -> None: """ :keyword display: Displayed AzureBareMetal operation information. :paramtype display: ~azure.mgmt.baremetalinfrastructure.models.Display @@ -517,7 +669,7 @@ class OperationList(_serialization.Model): "value": {"key": "value", "type": "[Operation]"}, } - def __init__(self, *, value: Optional[List["_models.Operation"]] = None, **kwargs): + def __init__(self, *, value: Optional[List["_models.Operation"]] = None, **kwargs: Any) -> None: """ :keyword value: List of AzureBareMetal operations. :paramtype value: list[~azure.mgmt.baremetalinfrastructure.models.Operation] @@ -553,7 +705,9 @@ class OSProfile(_serialization.Model): "ssh_public_key": {"key": "sshPublicKey", "type": "str"}, } - def __init__(self, *, computer_name: Optional[str] = None, ssh_public_key: Optional[str] = None, **kwargs): + def __init__( + self, *, computer_name: Optional[str] = None, ssh_public_key: Optional[str] = None, **kwargs: Any + ) -> None: """ :keyword computer_name: Specifies the host OS name of the AzureBareMetal instance. :paramtype computer_name: str @@ -578,7 +732,7 @@ class Result(_serialization.Model): "sample_property": {"key": "sampleProperty", "type": "str"}, } - def __init__(self, *, sample_property: Optional[str] = None, **kwargs): + def __init__(self, *, sample_property: Optional[str] = None, **kwargs: Any) -> None: """ :keyword sample_property: Sample property of type string. :paramtype sample_property: str @@ -587,6 +741,38 @@ def __init__(self, *, sample_property: Optional[str] = None, **kwargs): self.sample_property = sample_property +class StorageBillingProperties(_serialization.Model): + """Describes the billing related details of the AzureBareMetalStorageInstance. + + :ivar billing_mode: the billing mode for the storage instance. + :vartype billing_mode: str + :ivar azure_bare_metal_storage_instance_size: the SKU type that is provisioned. + :vartype azure_bare_metal_storage_instance_size: str + """ + + _attribute_map = { + "billing_mode": {"key": "billingMode", "type": "str"}, + "azure_bare_metal_storage_instance_size": {"key": "azureBareMetalStorageInstanceSize", "type": "str"}, + } + + def __init__( + self, + *, + billing_mode: Optional[str] = None, + azure_bare_metal_storage_instance_size: Optional[str] = None, + **kwargs: Any + ) -> None: + """ + :keyword billing_mode: the billing mode for the storage instance. + :paramtype billing_mode: str + :keyword azure_bare_metal_storage_instance_size: the SKU type that is provisioned. + :paramtype azure_bare_metal_storage_instance_size: str + """ + super().__init__(**kwargs) + self.billing_mode = billing_mode + self.azure_bare_metal_storage_instance_size = azure_bare_metal_storage_instance_size + + class StorageProfile(_serialization.Model): """Specifies the storage settings for the AzureBareMetal instance disks. @@ -608,7 +794,7 @@ class StorageProfile(_serialization.Model): "os_disks": {"key": "osDisks", "type": "[Disk]"}, } - def __init__(self, *, os_disks: Optional[List["_models.Disk"]] = None, **kwargs): + def __init__(self, *, os_disks: Optional[List["_models.Disk"]] = None, **kwargs: Any) -> None: """ :keyword os_disks: Specifies information about the operating system disk used by baremetal instance. @@ -619,6 +805,81 @@ def __init__(self, *, os_disks: Optional[List["_models.Disk"]] = None, **kwargs) self.os_disks = os_disks +class StorageProperties(_serialization.Model): + """described the storage properties of the azure baremetalstorage instance. + + :ivar provisioning_state: State of provisioning of the AzureBareMetalStorageInstance. Known + values are: "Accepted", "Creating", "Updating", "Failed", "Succeeded", "Deleting", "Canceled", + and "Migrating". + :vartype provisioning_state: str or + ~azure.mgmt.baremetalinfrastructure.models.ProvisioningState + :ivar offering_type: the offering type for which the resource is getting provisioned. + :vartype offering_type: str + :ivar storage_type: the storage protocol for which the resource is getting provisioned. + :vartype storage_type: str + :ivar generation: the kind of storage instance. + :vartype generation: str + :ivar hardware_type: the hardware type of the storage instance. + :vartype hardware_type: str + :ivar workload_type: the workload for which the resource is getting provisioned. + :vartype workload_type: str + :ivar storage_billing_properties: the billing related information for the resource. + :vartype storage_billing_properties: + ~azure.mgmt.baremetalinfrastructure.models.StorageBillingProperties + """ + + _attribute_map = { + "provisioning_state": {"key": "provisioningState", "type": "str"}, + "offering_type": {"key": "offeringType", "type": "str"}, + "storage_type": {"key": "storageType", "type": "str"}, + "generation": {"key": "generation", "type": "str"}, + "hardware_type": {"key": "hardwareType", "type": "str"}, + "workload_type": {"key": "workloadType", "type": "str"}, + "storage_billing_properties": {"key": "storageBillingProperties", "type": "StorageBillingProperties"}, + } + + def __init__( + self, + *, + provisioning_state: Optional[Union[str, "_models.ProvisioningState"]] = None, + offering_type: Optional[str] = None, + storage_type: Optional[str] = None, + generation: Optional[str] = None, + hardware_type: Optional[str] = None, + workload_type: Optional[str] = None, + storage_billing_properties: Optional["_models.StorageBillingProperties"] = None, + **kwargs: Any + ) -> None: + """ + :keyword provisioning_state: State of provisioning of the AzureBareMetalStorageInstance. Known + values are: "Accepted", "Creating", "Updating", "Failed", "Succeeded", "Deleting", "Canceled", + and "Migrating". + :paramtype provisioning_state: str or + ~azure.mgmt.baremetalinfrastructure.models.ProvisioningState + :keyword offering_type: the offering type for which the resource is getting provisioned. + :paramtype offering_type: str + :keyword storage_type: the storage protocol for which the resource is getting provisioned. + :paramtype storage_type: str + :keyword generation: the kind of storage instance. + :paramtype generation: str + :keyword hardware_type: the hardware type of the storage instance. + :paramtype hardware_type: str + :keyword workload_type: the workload for which the resource is getting provisioned. + :paramtype workload_type: str + :keyword storage_billing_properties: the billing related information for the resource. + :paramtype storage_billing_properties: + ~azure.mgmt.baremetalinfrastructure.models.StorageBillingProperties + """ + super().__init__(**kwargs) + self.provisioning_state = provisioning_state + self.offering_type = offering_type + self.storage_type = storage_type + self.generation = generation + self.hardware_type = hardware_type + self.workload_type = workload_type + self.storage_billing_properties = storage_billing_properties + + class SystemData(_serialization.Model): """Metadata pertaining to creation and last modification of the resource. @@ -656,8 +917,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 @@ -685,9 +946,9 @@ def __init__( class Tags(_serialization.Model): - """Tags field of the AzureBareMetal instance. + """Tags field of the AzureBareMetal/AzureBareMetaStorage instance. - :ivar tags: Tags field of the AzureBareMetal instance. + :ivar tags: Tags field of the AzureBareMetal/AzureBareMetaStorage instance. :vartype tags: dict[str, str] """ @@ -695,9 +956,9 @@ class Tags(_serialization.Model): "tags": {"key": "tags", "type": "{str}"}, } - def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs): + def __init__(self, *, tags: Optional[Dict[str, str]] = None, **kwargs: Any) -> None: """ - :keyword tags: Tags field of the AzureBareMetal instance. + :keyword tags: Tags field of the AzureBareMetal/AzureBareMetaStorage instance. :paramtype tags: dict[str, str] """ super().__init__(**kwargs) diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/__init__.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/__init__.py index 818471046741..3e12b5ce7466 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/__init__.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/__init__.py @@ -8,14 +8,16 @@ from ._azure_bare_metal_instances_operations import AzureBareMetalInstancesOperations from ._operations import Operations +from ._azure_bare_metal_storage_instances_operations import AzureBareMetalStorageInstancesOperations from ._patch import __all__ as _patch_all -from ._patch import * # type: ignore # pylint: disable=unused-wildcard-import +from ._patch import * # pylint: disable=unused-wildcard-import from ._patch import patch_sdk as _patch_sdk __all__ = [ "AzureBareMetalInstancesOperations", "Operations", + "AzureBareMetalStorageInstancesOperations", ] __all__.extend([p for p in _patch_all if p not in __all__]) _patch_sdk() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_azure_bare_metal_instances_operations.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_azure_bare_metal_instances_operations.py index 7729eed92d21..1984b6cb6e18 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_azure_bare_metal_instances_operations.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_azure_bare_metal_instances_operations.py @@ -6,7 +6,7 @@ # 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 io import IOBase from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, overload import urllib.parse @@ -30,10 +30,6 @@ 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 -else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -45,7 +41,7 @@ def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> H _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", "2021-08-09")) # type: Literal["2021-08-09"] + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-04-06")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -56,7 +52,7 @@ def build_list_by_subscription_request(subscription_id: str, **kwargs: Any) -> H "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), } - _url = _format_url_section(_url, **path_format_arguments) + _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -71,7 +67,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", "2021-08-09")) # type: Literal["2021-08-09"] + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-04-06")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -86,7 +82,7 @@ def build_list_by_resource_group_request(resource_group_name: str, subscription_ ), } - _url = _format_url_section(_url, **path_format_arguments) + _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -103,7 +99,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", "2021-08-09")) # type: Literal["2021-08-09"] + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-04-06")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -121,7 +117,7 @@ def build_get_request( ), } - _url = _format_url_section(_url, **path_format_arguments) + _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -132,14 +128,87 @@ def build_get_request( return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs) +def build_delete_request( + resource_group_name: str, azure_bare_metal_instance_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", "2023-04-06")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "azureBareMetalInstanceName": _SERIALIZER.url( + "azure_bare_metal_instance_name", azure_bare_metal_instance_name, "str" + ), + } + + _url: str = _format_url_section(_url, **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="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_put_request( + resource_group_name: str, azure_bare_metal_instance_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", "2023-04-06")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "azureBareMetalInstanceName": _SERIALIZER.url( + "azure_bare_metal_instance_name", azure_bare_metal_instance_name, "str" + ), + } + + _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) + + def build_update_request( resource_group_name: str, azure_bare_metal_instance_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 = kwargs.pop("api_version", _params.pop("api-version", "2021-08-09")) # type: Literal["2021-08-09"] - 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", "2023-04-06")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -157,7 +226,7 @@ def build_update_request( ), } - _url = _format_url_section(_url, **path_format_arguments) + _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore # Construct parameters _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") @@ -206,10 +275,8 @@ def list_by_subscription(self, **kwargs: Any) -> Iterable["_models.AzureBareMeta _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["2021-08-09"] - cls = kwargs.pop("cls", None) # type: ClsType[_models.AzureBareMetalInstancesListResult] + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.AzureBareMetalInstancesListResult] = kwargs.pop("cls", None) error_map = { 401: ClientAuthenticationError, @@ -230,7 +297,7 @@ def prepare_request(next_link=None): 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 @@ -246,7 +313,7 @@ def prepare_request(next_link=None): "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.url = self._client.format_url(request.url) request.method = "GET" return request @@ -254,14 +321,15 @@ def extract_data(pipeline_response): deserialized = self._deserialize("AzureBareMetalInstancesListResult", 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 deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run( # 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 @@ -274,7 +342,9 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_subscription.metadata = {"url": "/subscriptions/{subscriptionId}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances"} # type: ignore + list_by_subscription.metadata = { + "url": "/subscriptions/{subscriptionId}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances" + } @distributed_trace def list_by_resource_group( @@ -298,10 +368,8 @@ 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["2021-08-09"] - cls = kwargs.pop("cls", None) # type: ClsType[_models.AzureBareMetalInstancesListResult] + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.AzureBareMetalInstancesListResult] = kwargs.pop("cls", None) error_map = { 401: ClientAuthenticationError, @@ -323,7 +391,7 @@ def prepare_request(next_link=None): 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 @@ -339,7 +407,7 @@ def prepare_request(next_link=None): "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.url = self._client.format_url(request.url) request.method = "GET" return request @@ -347,14 +415,15 @@ def extract_data(pipeline_response): deserialized = self._deserialize("AzureBareMetalInstancesListResult", 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 deserialized.next_link or None, iter(list_of_elem) def get_next(next_link=None): request = prepare_request(next_link) - pipeline_response = self._client._pipeline.run( # 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 @@ -367,7 +436,9 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list_by_resource_group.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances"} # type: ignore + list_by_resource_group.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances" + } @distributed_trace def get( @@ -399,10 +470,8 @@ 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["2021-08-09"] - cls = kwargs.pop("cls", None) # type: ClsType[_models.AzureBareMetalInstance] + api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version)) + cls: ClsType[_models.AzureBareMetalInstance] = kwargs.pop("cls", None) request = build_get_request( resource_group_name=resource_group_name, @@ -414,10 +483,11 @@ def get( 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 @@ -434,7 +504,228 @@ def get( return deserialized - get.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}"} # type: ignore + get.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}" + } + + @distributed_trace + def delete( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, azure_bare_metal_instance_name: str, **kwargs: Any + ) -> None: + """Deletes an Azure BareMetal instance. + + Deletes an Azure BareMetal instance for the specified subscription, resource group, and + instance name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_instance_name: Name of the Azure BareMetal on Azure instance. Required. + :type azure_bare_metal_instance_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 = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + 501: lambda response: HttpResponseError(response=response, error_format=ARMErrorFormat), + } + 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[None] = kwargs.pop("cls", None) + + request = build_delete_request( + resource_group_name=resource_group_name, + azure_bare_metal_instance_name=azure_bare_metal_instance_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) + + _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 []: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}" + } + + @overload + def put( # pylint: disable=inconsistent-return-statements + self, + resource_group_name: str, + azure_bare_metal_instance_name: str, + request_body_parameters: Optional[_models.AzureBareMetalInstance] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> None: + """Adds an Azure BareMetal Instance. + + Adds an Azure BareMetal instance for the specified subscription, resource group, and instance + name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_instance_name: Name of the Azure BareMetal on Azure instance. Required. + :type azure_bare_metal_instance_name: str + :param request_body_parameters: request body for put call. Default value is None. + :type request_body_parameters: + ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalInstance + :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: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def put( # pylint: disable=inconsistent-return-statements + self, + resource_group_name: str, + azure_bare_metal_instance_name: str, + request_body_parameters: Optional[IO] = None, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> None: + """Adds an Azure BareMetal Instance. + + Adds an Azure BareMetal instance for the specified subscription, resource group, and instance + name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_instance_name: Name of the Azure BareMetal on Azure instance. Required. + :type azure_bare_metal_instance_name: str + :param request_body_parameters: request body for put call. Default value is None. + :type request_body_parameters: IO + :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: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def put( # pylint: disable=inconsistent-return-statements + self, + resource_group_name: str, + azure_bare_metal_instance_name: str, + request_body_parameters: Optional[Union[_models.AzureBareMetalInstance, IO]] = None, + **kwargs: Any + ) -> None: + """Adds an Azure BareMetal Instance. + + Adds an Azure BareMetal instance for the specified subscription, resource group, and instance + name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_instance_name: Name of the Azure BareMetal on Azure instance. Required. + :type azure_bare_metal_instance_name: str + :param request_body_parameters: request body for put call. Is either a AzureBareMetalInstance + type or a IO type. Default value is None. + :type request_body_parameters: + ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalInstance 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 + :return: None or the result of cls(response) + :rtype: None + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + 501: lambda response: HttpResponseError(response=response, error_format=ARMErrorFormat), + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[None] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(request_body_parameters, (IOBase, bytes)): + _content = request_body_parameters + else: + if request_body_parameters is not None: + _json = self._serialize.body(request_body_parameters, "AzureBareMetalInstance") + else: + _json = None + + request = build_put_request( + resource_group_name=resource_group_name, + azure_bare_metal_instance_name=azure_bare_metal_instance_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + content_type=content_type, + json=_json, + content=_content, + template_url=self.put.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + 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 []: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + put.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}" + } @overload def update( @@ -516,7 +807,7 @@ def update( :type resource_group_name: str :param azure_bare_metal_instance_name: Name of the Azure BareMetal on Azure instance. Required. :type azure_bare_metal_instance_name: str - :param tags_parameter: Request body that only contains the new Tags field. Is either a model + :param tags_parameter: Request body that only contains the new Tags field. Is either a Tags type or a IO type. Required. :type tags_parameter: ~azure.mgmt.baremetalinfrastructure.models.Tags or IO :keyword content_type: Body Parameter content-type. Known values are: 'application/json'. @@ -538,16 +829,14 @@ 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["2021-08-09"] - content_type = kwargs.pop("content_type", _headers.pop("Content-Type", None)) # type: Optional[str] - cls = kwargs.pop("cls", None) # type: ClsType[_models.AzureBareMetalInstance] + 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.AzureBareMetalInstance] = kwargs.pop("cls", None) content_type = content_type or "application/json" _json = None _content = None - if isinstance(tags_parameter, (IO, bytes)): + if isinstance(tags_parameter, (IOBase, bytes)): _content = tags_parameter else: _json = self._serialize.body(tags_parameter, "Tags") @@ -565,10 +854,11 @@ def update( 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 @@ -585,4 +875,6 @@ def update( return deserialized - update.metadata = {"url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}"} # type: ignore + update.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalInstances/{azureBareMetalInstanceName}" + } diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_azure_bare_metal_storage_instances_operations.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_azure_bare_metal_storage_instances_operations.py new file mode 100644 index 000000000000..4837573f03a6 --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_azure_bare_metal_storage_instances_operations.py @@ -0,0 +1,889 @@ +# 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. +# 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 +from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, overload +import urllib.parse + +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +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.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 + +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_subscription_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: str = kwargs.pop("api_version", _params.pop("api-version", "2023-04-06")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + } + + _url: str = _format_url_section(_url, **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) + + +def build_list_by_resource_group_request(resource_group_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", "2023-04-06")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + } + + _url: str = _format_url_section(_url, **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) + + +def build_get_request( + resource_group_name: str, azure_bare_metal_storage_instance_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", "2023-04-06")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "azureBareMetalStorageInstanceName": _SERIALIZER.url( + "azure_bare_metal_storage_instance_name", azure_bare_metal_storage_instance_name, "str", pattern=r".*" + ), + } + + _url: str = _format_url_section(_url, **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) + + +def build_create_request( + resource_group_name: str, azure_bare_metal_storage_instance_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", "2023-04-06")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "azureBareMetalStorageInstanceName": _SERIALIZER.url( + "azure_bare_metal_storage_instance_name", azure_bare_metal_storage_instance_name, "str", pattern=r".*" + ), + } + + _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_update_request( + resource_group_name: str, azure_bare_metal_storage_instance_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", "2023-04-06")) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "azureBareMetalStorageInstanceName": _SERIALIZER.url( + "azure_bare_metal_storage_instance_name", azure_bare_metal_storage_instance_name, "str", pattern=r".*" + ), + } + + _url: str = _format_url_section(_url, **path_format_arguments) # type: ignore + + # Construct parameters + _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str") + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs) + + +def build_delete_request( + resource_group_name: str, azure_bare_metal_storage_instance_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", "2023-04-06")) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = kwargs.pop( + "template_url", + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}", + ) # pylint: disable=line-too-long + path_format_arguments = { + "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1), + "resourceGroupName": _SERIALIZER.url( + "resource_group_name", resource_group_name, "str", max_length=90, min_length=1 + ), + "azureBareMetalStorageInstanceName": _SERIALIZER.url( + "azure_bare_metal_storage_instance_name", azure_bare_metal_storage_instance_name, "str", pattern=r".*" + ), + } + + _url: str = _format_url_section(_url, **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="DELETE", url=_url, params=_params, headers=_headers, **kwargs) + + +class AzureBareMetalStorageInstancesOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~azure.mgmt.baremetalinfrastructure.BareMetalInfrastructureClient`'s + :attr:`azure_bare_metal_storage_instances` 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_subscription(self, **kwargs: Any) -> Iterable["_models.AzureBareMetalStorageInstance"]: + """Gets a list of Azure BareMetalStorage instances in the specified subscription. + + Gets a list of AzureBareMetalStorage instances in the specified subscription. The operations + returns various properties of each Azure BareMetal instance. + + :keyword callable cls: A custom type or function that will be passed the direct response + :return: An iterator like instance of either AzureBareMetalStorageInstance or the result of + cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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.AzureBareMetalStorageInstancesListResult] = kwargs.pop("cls", None) + + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + request = build_list_by_subscription_request( + subscription_id=self._config.subscription_id, + api_version=api_version, + template_url=self.list_by_subscription.metadata["url"], + headers=_headers, + params=_params, + ) + request = _convert_request(request) + request.url = self._client.format_url(request.url) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + 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) + request.method = "GET" + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize("AzureBareMetalStorageInstancesListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + _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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + list_by_subscription.metadata = { + "url": "/subscriptions/{subscriptionId}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances" + } + + @distributed_trace + def list_by_resource_group( + self, resource_group_name: str, **kwargs: Any + ) -> Iterable["_models.AzureBareMetalStorageInstance"]: + """Gets a list of Azure BareMetalStorage instances in the specified subscription and resource + group. + + Gets a list of AzureBareMetalStorage instances in the specified subscription and resource + group. The operations returns various properties of each Azure BareMetal instance. + + :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: An iterator like instance of either AzureBareMetalStorageInstance or the result of + cls(response) + :rtype: + ~azure.core.paging.ItemPaged[~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _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.AzureBareMetalStorageInstancesListResult] = kwargs.pop("cls", None) + + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + def prepare_request(next_link=None): + if not next_link: + + 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) + + else: + # make call to next link with the client's api-version + _parsed_next_link = urllib.parse.urlparse(next_link) + _next_request_params = case_insensitive_dict( + { + key: [urllib.parse.quote(v) for v in value] + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() + } + ) + _next_request_params["api-version"] = self._config.api_version + 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) + request.method = "GET" + return request + + def extract_data(pipeline_response): + deserialized = self._deserialize("AzureBareMetalStorageInstancesListResult", pipeline_response) + list_of_elem = deserialized.value + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.next_link or None, iter(list_of_elem) + + def get_next(next_link=None): + request = prepare_request(next_link) + + _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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + return pipeline_response + + return ItemPaged(get_next, extract_data) + + list_by_resource_group.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances" + } + + @distributed_trace + def get( + self, resource_group_name: str, azure_bare_metal_storage_instance_name: str, **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Gets an Azure BareMetal Storage instance. + + Gets an Azure BareMetal Storage instance for the specified subscription, resource group, and + instance name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :keyword callable cls: A custom type or function that will be passed the direct response + :return: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 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.AzureBareMetalStorageInstance] = kwargs.pop("cls", None) + + request = build_get_request( + resource_group_name=resource_group_name, + azure_bare_metal_storage_instance_name=azure_bare_metal_storage_instance_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) + + _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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("AzureBareMetalStorageInstance", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + get.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}" + } + + @overload + def create( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + request_body_parameters: _models.AzureBareMetalStorageInstance, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Create an azure baremetal storage resource. + + Create an azure baremetal storage resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param request_body_parameters: request body for put call. Required. + :type request_body_parameters: + ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :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: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def create( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + request_body_parameters: IO, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Create an azure baremetal storage resource. + + Create an azure baremetal storage resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param request_body_parameters: request body for put call. Required. + :type request_body_parameters: IO + :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: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def create( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + request_body_parameters: Union[_models.AzureBareMetalStorageInstance, IO], + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Create an azure baremetal storage resource. + + Create an azure baremetal storage resource. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param request_body_parameters: request body for put call. Is either a + AzureBareMetalStorageInstance type or a IO type. Required. + :type request_body_parameters: + ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance 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 + :return: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.AzureBareMetalStorageInstance] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(request_body_parameters, (IOBase, bytes)): + _content = request_body_parameters + else: + _json = self._serialize.body(request_body_parameters, "AzureBareMetalStorageInstance") + + request = build_create_request( + resource_group_name=resource_group_name, + azure_bare_metal_storage_instance_name=azure_bare_metal_storage_instance_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + 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) + + _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, 201]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if response.status_code == 200: + deserialized = self._deserialize("AzureBareMetalStorageInstance", pipeline_response) + + if response.status_code == 201: + deserialized = self._deserialize("AzureBareMetalStorageInstance", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) # type: ignore + + return deserialized # type: ignore + + create.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}" + } + + @overload + def update( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + tags_parameter: _models.Tags, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Patches the Tags field of a Azure BareMetalStorage instance. + + Patches the Tags field of a Azure BareMetalStorage instance for the specified subscription, + resource group, and instance name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param tags_parameter: Request body that only contains the new Tags field. Required. + :type tags_parameter: ~azure.mgmt.baremetalinfrastructure.models.Tags + :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: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def update( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + tags_parameter: IO, + *, + content_type: str = "application/json", + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Patches the Tags field of a Azure BareMetalStorage instance. + + Patches the Tags field of a Azure BareMetalStorage instance for the specified subscription, + resource group, and instance name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param tags_parameter: Request body that only contains the new Tags field. Required. + :type tags_parameter: IO + :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: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def update( + self, + resource_group_name: str, + azure_bare_metal_storage_instance_name: str, + tags_parameter: Union[_models.Tags, IO], + **kwargs: Any + ) -> _models.AzureBareMetalStorageInstance: + """Patches the Tags field of a Azure BareMetalStorage instance. + + Patches the Tags field of a Azure BareMetalStorage instance for the specified subscription, + resource group, and instance name. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_name: str + :param tags_parameter: Request body that only contains the new Tags field. Is either a Tags + type or a IO type. Required. + :type tags_parameter: ~azure.mgmt.baremetalinfrastructure.models.Tags 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 + :return: AzureBareMetalStorageInstance or the result of cls(response) + :rtype: ~azure.mgmt.baremetalinfrastructure.models.AzureBareMetalStorageInstance + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _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", self._config.api_version)) + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[_models.AzureBareMetalStorageInstance] = kwargs.pop("cls", None) + + content_type = content_type or "application/json" + _json = None + _content = None + if isinstance(tags_parameter, (IOBase, bytes)): + _content = tags_parameter + else: + _json = self._serialize.body(tags_parameter, "Tags") + + request = build_update_request( + resource_group_name=resource_group_name, + azure_bare_metal_storage_instance_name=azure_bare_metal_storage_instance_name, + subscription_id=self._config.subscription_id, + api_version=api_version, + 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) + + _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) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize("AzureBareMetalStorageInstance", pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + + update.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}" + } + + @distributed_trace + def delete( # pylint: disable=inconsistent-return-statements + self, resource_group_name: str, azure_bare_metal_storage_instance_name: str, **kwargs: Any + ) -> None: + """Delete an AzureBareMetalStorageInstance. + + Delete an AzureBareMetalStorageInstance. + + :param resource_group_name: The name of the resource group. The name is case insensitive. + Required. + :type resource_group_name: str + :param azure_bare_metal_storage_instance_name: Name of the AzureBareMetalStorage on Azure + instance. Required. + :type azure_bare_metal_storage_instance_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 = { + 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[None] = kwargs.pop("cls", None) + + request = build_delete_request( + resource_group_name=resource_group_name, + azure_bare_metal_storage_instance_name=azure_bare_metal_storage_instance_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) + + _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, 204]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + if cls: + return cls(pipeline_response, None, {}) + + delete.metadata = { + "url": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BareMetalInfrastructure/bareMetalStorageInstances/{azureBareMetalStorageInstanceName}" + } diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_operations.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_operations.py index c29ce108798b..eb0723e64b2a 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_operations.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/azure/mgmt/baremetalinfrastructure/operations/_operations.py @@ -6,7 +6,6 @@ # 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, Iterable, Optional, TypeVar import urllib.parse @@ -30,10 +29,6 @@ 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 -else: - from typing_extensions import Literal # type: ignore # pylint: disable=ungrouped-imports T = TypeVar("T") ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] @@ -45,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", "2021-08-09")) # type: Literal["2021-08-09"] + api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2023-04-06")) accept = _headers.pop("Accept", "application/json") # Construct URL @@ -91,10 +86,8 @@ def list(self, **kwargs: Any) -> Iterable["_models.Operation"]: _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["2021-08-09"] - 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) error_map = { 401: ClientAuthenticationError, @@ -114,7 +107,7 @@ def prepare_request(next_link=None): 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 @@ -130,7 +123,7 @@ def prepare_request(next_link=None): "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.url = self._client.format_url(request.url) request.method = "GET" return request @@ -138,14 +131,15 @@ def extract_data(pipeline_response): deserialized = self._deserialize("OperationList", 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) - 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 @@ -158,4 +152,4 @@ def get_next(next_link=None): return ItemPaged(get_next, extract_data) - list.metadata = {"url": "/providers/Microsoft.BareMetalInfrastructure/operations"} # type: ignore + list.metadata = {"url": "/providers/Microsoft.BareMetalInfrastructure/operations"} diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_delete.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_delete.py new file mode 100644 index 000000000000..62a9e4bd46c7 --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_delete.py @@ -0,0 +1,40 @@ +# 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.baremetalinfrastructure import BareMetalInfrastructureClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-baremetalinfrastructure +# USAGE + python azure_bare_metal_instances_delete.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 = BareMetalInfrastructureClient( + credential=DefaultAzureCredential(), + subscription_id="f0f4887f-d13c-4943-a8ba-d7da28d2a3fd", + ) + + client.azure_bare_metal_instances.delete( + resource_group_name="myResourceGroup", + azure_bare_metal_instance_name="myAzureBareMetalInstance", + ) + + +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalInstances_Delete.json +if __name__ == "__main__": + main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/get_an_azure_bare_metal_instance.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_get.py similarity index 93% rename from sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/get_an_azure_bare_metal_instance.py rename to sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_get.py index 72f82f65b8a5..53c441a4c7d0 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/get_an_azure_bare_metal_instance.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_get.py @@ -14,7 +14,7 @@ pip install azure-identity pip install azure-mgmt-baremetalinfrastructure # USAGE - python get_an_azure_bare_metal_instance.py + python azure_bare_metal_instances_get.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 +36,6 @@ def main(): print(response) -# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2021-08-09/examples/AzureBareMetalInstances_Get.json +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalInstances_Get.json if __name__ == "__main__": main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/list_all_azure_bare_metal_instances_in_a_resource_group.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_list_by_resource_group.py similarity index 92% rename from sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/list_all_azure_bare_metal_instances_in_a_resource_group.py rename to sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_list_by_resource_group.py index 99a31d20d5cf..b89051656eb5 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/list_all_azure_bare_metal_instances_in_a_resource_group.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_list_by_resource_group.py @@ -14,7 +14,7 @@ pip install azure-identity pip install azure-mgmt-baremetalinfrastructure # USAGE - python list_all_azure_bare_metal_instances_in_a_resource_group.py + python azure_bare_metal_instances_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, @@ -36,6 +36,6 @@ def main(): print(item) -# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2021-08-09/examples/AzureBareMetalInstances_ListByResourceGroup.json +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalInstances_ListByResourceGroup.json if __name__ == "__main__": main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/list_all_azure_bare_metal_instances_in_a_subscription.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_list_by_subscription.py similarity index 92% rename from sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/list_all_azure_bare_metal_instances_in_a_subscription.py rename to sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_list_by_subscription.py index 7dedfffd3614..b65175c3b2e1 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/list_all_azure_bare_metal_instances_in_a_subscription.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_list_by_subscription.py @@ -14,7 +14,7 @@ pip install azure-identity pip install azure-mgmt-baremetalinfrastructure # USAGE - python list_all_azure_bare_metal_instances_in_a_subscription.py + python azure_bare_metal_instances_list_by_subscription.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, @@ -34,6 +34,6 @@ def main(): print(item) -# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2021-08-09/examples/AzureBareMetalInstances_ListBySubscription.json +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalInstances_ListBySubscription.json if __name__ == "__main__": main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/update_tags_field_of_an_azure_bare_metal_instance.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_patch_tags.py similarity index 92% rename from sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/update_tags_field_of_an_azure_bare_metal_instance.py rename to sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_patch_tags.py index 0a8b6576042c..e0675f48eb21 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/update_tags_field_of_an_azure_bare_metal_instance.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_patch_tags.py @@ -14,7 +14,7 @@ pip install azure-identity pip install azure-mgmt-baremetalinfrastructure # USAGE - python update_tags_field_of_an_azure_bare_metal_instance.py + python azure_bare_metal_instances_patch_tags.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, @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2021-08-09/examples/AzureBareMetalInstances_PatchTags.json +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalInstances_PatchTags.json if __name__ == "__main__": main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/delete_tags_field_of_an_azure_bare_metal_instance.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_patch_tags_delete.py similarity index 92% rename from sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/delete_tags_field_of_an_azure_bare_metal_instance.py rename to sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_patch_tags_delete.py index 45662a3bb740..f50c64b0981a 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/delete_tags_field_of_an_azure_bare_metal_instance.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_patch_tags_delete.py @@ -14,7 +14,7 @@ pip install azure-identity pip install azure-mgmt-baremetalinfrastructure # USAGE - python delete_tags_field_of_an_azure_bare_metal_instance.py + python azure_bare_metal_instances_patch_tags_delete.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, @@ -37,6 +37,6 @@ def main(): print(response) -# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2021-08-09/examples/AzureBareMetalInstances_PatchTags_Delete.json +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalInstances_PatchTags_Delete.json if __name__ == "__main__": main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_put.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_put.py new file mode 100644 index 000000000000..171757d2c61c --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_instances_put.py @@ -0,0 +1,40 @@ +# 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.baremetalinfrastructure import BareMetalInfrastructureClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-baremetalinfrastructure +# USAGE + python azure_bare_metal_instances_put.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 = BareMetalInfrastructureClient( + credential=DefaultAzureCredential(), + subscription_id="f0f4887f-d13c-4943-a8ba-d7da28d2a3fd", + ) + + client.azure_bare_metal_instances.put( + resource_group_name="myResourceGroup", + azure_bare_metal_instance_name="myAzureBareMetalInstance", + ) + + +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalInstances_Put.json +if __name__ == "__main__": + main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/list_all_management_operations_supported_by_the_azure_bare_metal_rp.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_operations_list.py similarity index 90% rename from sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/list_all_management_operations_supported_by_the_azure_bare_metal_rp.py rename to sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_operations_list.py index 2641b8c8dc1c..a33cdb0cf64e 100644 --- a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/list_all_management_operations_supported_by_the_azure_bare_metal_rp.py +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_operations_list.py @@ -14,7 +14,7 @@ pip install azure-identity pip install azure-mgmt-baremetalinfrastructure # USAGE - python list_all_management_operations_supported_by_the_azure_bare_metal_rp.py + python azure_bare_metal_operations_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, @@ -34,6 +34,6 @@ def main(): print(item) -# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2021-08-09/examples/AzureBareMetalOperations_List.json +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalOperations_List.json if __name__ == "__main__": main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_create.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_create.py new file mode 100644 index 000000000000..ea08a8e7fbb0 --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_create.py @@ -0,0 +1,57 @@ +# 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.baremetalinfrastructure import BareMetalInfrastructureClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-baremetalinfrastructure +# USAGE + python azure_bare_metal_storage_instances_create.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 = BareMetalInfrastructureClient( + credential=DefaultAzureCredential(), + subscription_id="00000000-0000-0000-0000-000000000000", + ) + + response = client.azure_bare_metal_storage_instances.create( + resource_group_name="myResourceGroup", + azure_bare_metal_storage_instance_name="myAzureBareMetalStorageInstance", + request_body_parameters={ + "location": "westus2", + "properties": { + "azureBareMetalStorageInstanceUniqueIdentifier": "23415635-4d7e-41dc-9598-8194f22c24e9", + "storageProperties": { + "generation": "Gen4", + "hardwareType": "NetApp", + "offeringType": "EPIC", + "provisioningState": "Succeeded", + "storageBillingProperties": {"azureBareMetalStorageInstanceSize": "", "billingMode": "PAYG"}, + "storageType": "FC", + "workloadType": "ODB", + }, + }, + "tags": {"key": "value"}, + }, + ) + print(response) + + +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalStorageInstances_Create.json +if __name__ == "__main__": + main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_delete.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_delete.py new file mode 100644 index 000000000000..8bc52d379e4d --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_delete.py @@ -0,0 +1,40 @@ +# 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.baremetalinfrastructure import BareMetalInfrastructureClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-baremetalinfrastructure +# USAGE + python azure_bare_metal_storage_instances_delete.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 = BareMetalInfrastructureClient( + credential=DefaultAzureCredential(), + subscription_id="00000000-0000-0000-0000-000000000000", + ) + + client.azure_bare_metal_storage_instances.delete( + resource_group_name="myResourceGroup", + azure_bare_metal_storage_instance_name="myAzureBareMetalStorageInstance", + ) + + +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalStorageInstances_Delete.json +if __name__ == "__main__": + main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_get.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_get.py new file mode 100644 index 000000000000..1a3edff0a3e5 --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_get.py @@ -0,0 +1,41 @@ +# 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.baremetalinfrastructure import BareMetalInfrastructureClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-baremetalinfrastructure +# USAGE + python azure_bare_metal_storage_instances_get.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 = BareMetalInfrastructureClient( + credential=DefaultAzureCredential(), + subscription_id="f0f4887f-d13c-4943-a8ba-d7da28d2a3fd", + ) + + response = client.azure_bare_metal_storage_instances.get( + resource_group_name="myResourceGroup", + azure_bare_metal_storage_instance_name="myAzureBareMetalStorageInstance", + ) + print(response) + + +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalStorageInstances_Get.json +if __name__ == "__main__": + main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_list_by_resource_group.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_list_by_resource_group.py new file mode 100644 index 000000000000..fe7ae0d92207 --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_list_by_resource_group.py @@ -0,0 +1,41 @@ +# 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.baremetalinfrastructure import BareMetalInfrastructureClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-baremetalinfrastructure +# USAGE + python azure_bare_metal_storage_instances_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, + 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 = BareMetalInfrastructureClient( + credential=DefaultAzureCredential(), + subscription_id="f0f4887f-d13c-4943-a8ba-d7da28d2a3fd", + ) + + response = client.azure_bare_metal_storage_instances.list_by_resource_group( + resource_group_name="myResourceGroup", + ) + for item in response: + print(item) + + +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalStorageInstances_ListByResourceGroup.json +if __name__ == "__main__": + main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_list_by_subscription.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_list_by_subscription.py new file mode 100644 index 000000000000..80a5f0cf2e2d --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_list_by_subscription.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. +# -------------------------------------------------------------------------- + +from azure.identity import DefaultAzureCredential +from azure.mgmt.baremetalinfrastructure import BareMetalInfrastructureClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-baremetalinfrastructure +# USAGE + python azure_bare_metal_storage_instances_list_by_subscription.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 = BareMetalInfrastructureClient( + credential=DefaultAzureCredential(), + subscription_id="f0f4887f-d13c-4943-a8ba-d7da28d2a3fd", + ) + + response = client.azure_bare_metal_storage_instances.list_by_subscription() + for item in response: + print(item) + + +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalStorageInstances_ListBySubscription.json +if __name__ == "__main__": + main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_patch_tags.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_patch_tags.py new file mode 100644 index 000000000000..45014ff6ab16 --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_patch_tags.py @@ -0,0 +1,42 @@ +# 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.baremetalinfrastructure import BareMetalInfrastructureClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-baremetalinfrastructure +# USAGE + python azure_bare_metal_storage_instances_patch_tags.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 = BareMetalInfrastructureClient( + credential=DefaultAzureCredential(), + subscription_id="f0f4887f-d13c-4943-a8ba-d7da28d2a3fd", + ) + + response = client.azure_bare_metal_storage_instances.update( + resource_group_name="myResourceGroup", + azure_bare_metal_storage_instance_name="myABMSInstance", + tags_parameter={"tags": {"testkey": "testvalue"}}, + ) + print(response) + + +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalStorageInstances_PatchTags.json +if __name__ == "__main__": + main() diff --git a/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_patch_tags_delete.py b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_patch_tags_delete.py new file mode 100644 index 000000000000..81037978ec19 --- /dev/null +++ b/sdk/baremetalinfrastructure/azure-mgmt-baremetalinfrastructure/generated_samples/azure_bare_metal_storage_instances_patch_tags_delete.py @@ -0,0 +1,42 @@ +# 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.baremetalinfrastructure import BareMetalInfrastructureClient + +""" +# PREREQUISITES + pip install azure-identity + pip install azure-mgmt-baremetalinfrastructure +# USAGE + python azure_bare_metal_storage_instances_patch_tags_delete.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 = BareMetalInfrastructureClient( + credential=DefaultAzureCredential(), + subscription_id="f0f4887f-d13c-4943-a8ba-d7da28d2a3fd", + ) + + response = client.azure_bare_metal_storage_instances.update( + resource_group_name="myResourceGroup", + azure_bare_metal_storage_instance_name="myABMSInstance", + tags_parameter={"tags": {}}, + ) + print(response) + + +# x-ms-original-file: specification/baremetalinfrastructure/resource-manager/Microsoft.BareMetalInfrastructure/stable/2023-04-06/examples/AzureBareMetalStorageInstances_PatchTags_Delete.json +if __name__ == "__main__": + main()