diff --git a/azure-mgmt-relay/MANIFEST.in b/azure-mgmt-relay/MANIFEST.in index 9ecaeb15de50..e4884efef41b 100644 --- a/azure-mgmt-relay/MANIFEST.in +++ b/azure-mgmt-relay/MANIFEST.in @@ -1,2 +1,5 @@ +recursive-include tests *.py *.yaml include *.rst -include azure_bdist_wheel.py \ No newline at end of file +include azure/__init__.py +include azure/mgmt/__init__.py + diff --git a/azure-mgmt-relay/README.rst b/azure-mgmt-relay/README.rst index b1ceb983533c..08560c95c71a 100644 --- a/azure-mgmt-relay/README.rst +++ b/azure-mgmt-relay/README.rst @@ -1,12 +1,12 @@ Microsoft Azure SDK for Python ============================== -This is the Microsoft Azure Relay Client Library. +This is the Microsoft Azure MyService Management Client Library. Azure Resource Manager (ARM) is the next generation of management APIs that replace the old Azure Service Management (ASM). -This package has been tested with Python 2.7, 3.4, 3.5 and 3.6. +This package has been tested with Python 2.7, 3.4, 3.5, 3.6 and 3.7. For the older Azure Service Management (ASM) libraries, see `azure-servicemanagement-legacy `__ library. @@ -14,30 +14,11 @@ For the older Azure Service Management (ASM) libraries, see For a more complete set of Azure libraries, see the `azure `__ bundle package. -Compatibility -============= - -**IMPORTANT**: If you have an earlier version of the azure package -(version < 1.0), you should uninstall it before installing this package. - -You can check the version using pip: - -.. code:: shell - - pip freeze - -If you see azure==0.11.0 (or any version below 1.0), uninstall it first: - -.. code:: shell - - pip uninstall azure - - Usage ===== -For code examples, see `Relay -`__ +For code examples, see `MyService Management +`__ on docs.microsoft.com. @@ -47,3 +28,6 @@ Provide Feedback If you encounter any bugs or have suggestions, please file an issue in the `Issues `__ section of the project. + + +.. image:: https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-python%2Fazure-mgmt-relay%2FREADME.png diff --git a/azure-mgmt-relay/azure/__init__.py b/azure-mgmt-relay/azure/__init__.py index de40ea7ca058..0260537a02bb 100644 --- a/azure-mgmt-relay/azure/__init__.py +++ b/azure-mgmt-relay/azure/__init__.py @@ -1 +1 @@ -__import__('pkg_resources').declare_namespace(__name__) +__path__ = __import__('pkgutil').extend_path(__path__, __name__) \ No newline at end of file diff --git a/azure-mgmt-relay/azure/mgmt/__init__.py b/azure-mgmt-relay/azure/mgmt/__init__.py index de40ea7ca058..0260537a02bb 100644 --- a/azure-mgmt-relay/azure/mgmt/__init__.py +++ b/azure-mgmt-relay/azure/mgmt/__init__.py @@ -1 +1 @@ -__import__('pkg_resources').declare_namespace(__name__) +__path__ = __import__('pkgutil').extend_path(__path__, __name__) \ No newline at end of file diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/__init__.py b/azure-mgmt-relay/azure/mgmt/relay/models/__init__.py index d5130b57dab8..ad1ad778033b 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/__init__.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/__init__.py @@ -9,22 +9,40 @@ # regenerated. # -------------------------------------------------------------------------- -from .tracked_resource import TrackedResource -from .resource_namespace_patch import ResourceNamespacePatch -from .resource import Resource -from .hybrid_connection import HybridConnection -from .wcf_relay import WcfRelay -from .sku import Sku -from .relay_namespace import RelayNamespace -from .relay_update_parameters import RelayUpdateParameters -from .authorization_rule import AuthorizationRule -from .access_keys import AccessKeys -from .regenerate_access_key_parameters import RegenerateAccessKeyParameters -from .check_name_availability import CheckNameAvailability -from .check_name_availability_result import CheckNameAvailabilityResult -from .operation_display import OperationDisplay -from .operation import Operation -from .error_response import ErrorResponse, ErrorResponseException +try: + from .tracked_resource_py3 import TrackedResource + from .resource_namespace_patch_py3 import ResourceNamespacePatch + from .resource_py3 import Resource + from .hybrid_connection_py3 import HybridConnection + from .wcf_relay_py3 import WcfRelay + from .sku_py3 import Sku + from .relay_namespace_py3 import RelayNamespace + from .relay_update_parameters_py3 import RelayUpdateParameters + from .authorization_rule_py3 import AuthorizationRule + from .access_keys_py3 import AccessKeys + from .regenerate_access_key_parameters_py3 import RegenerateAccessKeyParameters + from .check_name_availability_py3 import CheckNameAvailability + from .check_name_availability_result_py3 import CheckNameAvailabilityResult + from .operation_display_py3 import OperationDisplay + from .operation_py3 import Operation + from .error_response_py3 import ErrorResponse, ErrorResponseException +except (SyntaxError, ImportError): + from .tracked_resource import TrackedResource + from .resource_namespace_patch import ResourceNamespacePatch + from .resource import Resource + from .hybrid_connection import HybridConnection + from .wcf_relay import WcfRelay + from .sku import Sku + from .relay_namespace import RelayNamespace + from .relay_update_parameters import RelayUpdateParameters + from .authorization_rule import AuthorizationRule + from .access_keys import AccessKeys + from .regenerate_access_key_parameters import RegenerateAccessKeyParameters + from .check_name_availability import CheckNameAvailability + from .check_name_availability_result import CheckNameAvailabilityResult + from .operation_display import OperationDisplay + from .operation import Operation + from .error_response import ErrorResponse, ErrorResponseException from .operation_paged import OperationPaged from .relay_namespace_paged import RelayNamespacePaged from .authorization_rule_paged import AuthorizationRulePaged diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/access_keys.py b/azure-mgmt-relay/azure/mgmt/relay/models/access_keys.py index 29d3e5492094..73a3001f45d9 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/access_keys.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/access_keys.py @@ -39,10 +39,10 @@ class AccessKeys(Model): 'key_name': {'key': 'keyName', 'type': 'str'}, } - def __init__(self, primary_connection_string=None, secondary_connection_string=None, primary_key=None, secondary_key=None, key_name=None): - super(AccessKeys, self).__init__() - self.primary_connection_string = primary_connection_string - self.secondary_connection_string = secondary_connection_string - self.primary_key = primary_key - self.secondary_key = secondary_key - self.key_name = key_name + def __init__(self, **kwargs): + super(AccessKeys, self).__init__(**kwargs) + self.primary_connection_string = kwargs.get('primary_connection_string', None) + self.secondary_connection_string = kwargs.get('secondary_connection_string', None) + self.primary_key = kwargs.get('primary_key', None) + self.secondary_key = kwargs.get('secondary_key', None) + self.key_name = kwargs.get('key_name', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/access_keys_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/access_keys_py3.py new file mode 100644 index 000000000000..7b2681c8d93d --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/access_keys_py3.py @@ -0,0 +1,48 @@ +# 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 msrest.serialization import Model + + +class AccessKeys(Model): + """Namespace/Relay Connection String. + + :param primary_connection_string: Primary connection string of the created + namespace authorization rule. + :type primary_connection_string: str + :param secondary_connection_string: Secondary connection string of the + created namespace authorization rule. + :type secondary_connection_string: str + :param primary_key: A base64-encoded 256-bit primary key for signing and + validating the SAS token. + :type primary_key: str + :param secondary_key: A base64-encoded 256-bit secondary key for signing + and validating the SAS token. + :type secondary_key: str + :param key_name: A string that describes the authorization rule. + :type key_name: str + """ + + _attribute_map = { + 'primary_connection_string': {'key': 'primaryConnectionString', 'type': 'str'}, + 'secondary_connection_string': {'key': 'secondaryConnectionString', 'type': 'str'}, + 'primary_key': {'key': 'primaryKey', 'type': 'str'}, + 'secondary_key': {'key': 'secondaryKey', 'type': 'str'}, + 'key_name': {'key': 'keyName', 'type': 'str'}, + } + + def __init__(self, *, primary_connection_string: str=None, secondary_connection_string: str=None, primary_key: str=None, secondary_key: str=None, key_name: str=None, **kwargs) -> None: + super(AccessKeys, self).__init__(**kwargs) + self.primary_connection_string = primary_connection_string + self.secondary_connection_string = secondary_connection_string + self.primary_key = primary_key + self.secondary_key = secondary_key + self.key_name = key_name diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/authorization_rule.py b/azure-mgmt-relay/azure/mgmt/relay/models/authorization_rule.py index 321dba44e0ae..dc4b5c3e36b1 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/authorization_rule.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/authorization_rule.py @@ -18,13 +18,15 @@ class AuthorizationRule(Resource): Variables are only populated by the server, and will be ignored when sending a request. + All required parameters must be populated in order to send to Azure. + :ivar id: Resource ID. :vartype id: str :ivar name: Resource name. :vartype name: str :ivar type: Resource type. :vartype type: str - :param rights: The rights associated with the rule. + :param rights: Required. The rights associated with the rule. :type rights: list[str or ~azure.mgmt.relay.models.AccessRights] """ @@ -42,6 +44,6 @@ class AuthorizationRule(Resource): 'rights': {'key': 'properties.rights', 'type': '[AccessRights]'}, } - def __init__(self, rights): - super(AuthorizationRule, self).__init__() - self.rights = rights + def __init__(self, **kwargs): + super(AuthorizationRule, self).__init__(**kwargs) + self.rights = kwargs.get('rights', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/authorization_rule_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/authorization_rule_py3.py new file mode 100644 index 000000000000..ffde450c2fe1 --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/authorization_rule_py3.py @@ -0,0 +1,49 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .resource_py3 import Resource + + +class AuthorizationRule(Resource): + """Description of a namespace authorization rule. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param rights: Required. The rights associated with the rule. + :type rights: list[str or ~azure.mgmt.relay.models.AccessRights] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'rights': {'required': True, 'unique': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'rights': {'key': 'properties.rights', 'type': '[AccessRights]'}, + } + + def __init__(self, *, rights, **kwargs) -> None: + super(AuthorizationRule, self).__init__(**kwargs) + self.rights = rights diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability.py b/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability.py index 470cfd69db2a..6108fa093d3e 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability.py @@ -15,9 +15,12 @@ class CheckNameAvailability(Model): """Description of the check name availability request properties. - :param name: The namespace name to check for availability. The namespace - name can contain only letters, numbers, and hyphens. The namespace must - start with a letter, and it must end with a letter or number. + All required parameters must be populated in order to send to Azure. + + :param name: Required. The namespace name to check for availability. The + namespace name can contain only letters, numbers, and hyphens. The + namespace must start with a letter, and it must end with a letter or + number. :type name: str """ @@ -29,6 +32,6 @@ class CheckNameAvailability(Model): 'name': {'key': 'name', 'type': 'str'}, } - def __init__(self, name): - super(CheckNameAvailability, self).__init__() - self.name = name + def __init__(self, **kwargs): + super(CheckNameAvailability, self).__init__(**kwargs) + self.name = kwargs.get('name', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability_py3.py new file mode 100644 index 000000000000..a726776ca9a7 --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability_py3.py @@ -0,0 +1,37 @@ +# 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 msrest.serialization import Model + + +class CheckNameAvailability(Model): + """Description of the check name availability request properties. + + All required parameters must be populated in order to send to Azure. + + :param name: Required. The namespace name to check for availability. The + namespace name can contain only letters, numbers, and hyphens. The + namespace must start with a letter, and it must end with a letter or + number. + :type name: str + """ + + _validation = { + 'name': {'required': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + } + + def __init__(self, *, name: str, **kwargs) -> None: + super(CheckNameAvailability, self).__init__(**kwargs) + self.name = name diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability_result.py b/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability_result.py index 2cad65d4c9a0..f02fb72b499b 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability_result.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability_result.py @@ -40,8 +40,8 @@ class CheckNameAvailabilityResult(Model): 'reason': {'key': 'reason', 'type': 'UnavailableReason'}, } - def __init__(self, name_available=None, reason=None): - super(CheckNameAvailabilityResult, self).__init__() + def __init__(self, **kwargs): + super(CheckNameAvailabilityResult, self).__init__(**kwargs) self.message = None - self.name_available = name_available - self.reason = reason + self.name_available = kwargs.get('name_available', None) + self.reason = kwargs.get('reason', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability_result_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability_result_py3.py new file mode 100644 index 000000000000..f623f0561aaf --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/check_name_availability_result_py3.py @@ -0,0 +1,47 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class CheckNameAvailabilityResult(Model): + """Description of the check name availability request properties. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar message: The detailed info regarding the reason associated with the + namespace. + :vartype message: str + :param name_available: Value indicating namespace is available. Returns + true if the namespace is available; otherwise, false. + :type name_available: bool + :param reason: The reason for unavailability of a namespace. Possible + values include: 'None', 'InvalidName', 'SubscriptionIsDisabled', + 'NameInUse', 'NameInLockdown', 'TooManyNamespaceInCurrentSubscription' + :type reason: str or ~azure.mgmt.relay.models.UnavailableReason + """ + + _validation = { + 'message': {'readonly': True}, + } + + _attribute_map = { + 'message': {'key': 'message', 'type': 'str'}, + 'name_available': {'key': 'nameAvailable', 'type': 'bool'}, + 'reason': {'key': 'reason', 'type': 'UnavailableReason'}, + } + + def __init__(self, *, name_available: bool=None, reason=None, **kwargs) -> None: + super(CheckNameAvailabilityResult, self).__init__(**kwargs) + self.message = None + self.name_available = name_available + self.reason = reason diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/error_response.py b/azure-mgmt-relay/azure/mgmt/relay/models/error_response.py index bf0a83937052..b24b5ce4d45c 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/error_response.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/error_response.py @@ -14,7 +14,7 @@ class ErrorResponse(Model): - """Error reponse indicates Relay service is not able to process the incoming + """Error response indicates Relay service is not able to process the incoming request. The reason is provided in the error message. :param code: Error code. @@ -28,10 +28,10 @@ class ErrorResponse(Model): 'message': {'key': 'message', 'type': 'str'}, } - def __init__(self, code=None, message=None): - super(ErrorResponse, self).__init__() - self.code = code - self.message = message + def __init__(self, **kwargs): + super(ErrorResponse, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) class ErrorResponseException(HttpOperationError): diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/error_response_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/error_response_py3.py new file mode 100644 index 000000000000..7d8c3e96f152 --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/error_response_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model +from msrest.exceptions import HttpOperationError + + +class ErrorResponse(Model): + """Error response indicates Relay service is not able to process the incoming + request. The reason is provided in the error message. + + :param code: Error code. + :type code: str + :param message: Error message indicating why the operation failed. + :type message: str + """ + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__(self, *, code: str=None, message: str=None, **kwargs) -> None: + super(ErrorResponse, self).__init__(**kwargs) + self.code = code + self.message = message + + +class ErrorResponseException(HttpOperationError): + """Server responsed with exception of type: 'ErrorResponse'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(ErrorResponseException, self).__init__(deserialize, response, 'ErrorResponse', *args) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/hybrid_connection.py b/azure-mgmt-relay/azure/mgmt/relay/models/hybrid_connection.py index 6f5d0655ef7d..134bf4817951 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/hybrid_connection.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/hybrid_connection.py @@ -34,7 +34,7 @@ class HybridConnection(Resource): :param requires_client_authorization: Returns true if client authorization is needed for this hybrid connection; otherwise, false. :type requires_client_authorization: bool - :param user_metadata: The usermetadata is a placeholder to store + :param user_metadata: The userMetadata is a placeholder to store user-defined string data for the hybrid connection endpoint. For example, it can be used to store descriptive data, such as a list of teams and their contact information. Also, user-defined configuration settings can @@ -62,10 +62,10 @@ class HybridConnection(Resource): 'user_metadata': {'key': 'properties.userMetadata', 'type': 'str'}, } - def __init__(self, requires_client_authorization=None, user_metadata=None): - super(HybridConnection, self).__init__() + def __init__(self, **kwargs): + super(HybridConnection, self).__init__(**kwargs) self.created_at = None self.updated_at = None self.listener_count = None - self.requires_client_authorization = requires_client_authorization - self.user_metadata = user_metadata + self.requires_client_authorization = kwargs.get('requires_client_authorization', None) + self.user_metadata = kwargs.get('user_metadata', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/hybrid_connection_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/hybrid_connection_py3.py new file mode 100644 index 000000000000..4d28de40d307 --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/hybrid_connection_py3.py @@ -0,0 +1,71 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .resource_py3 import Resource + + +class HybridConnection(Resource): + """Description of hybrid connection resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :ivar created_at: The time the hybrid connection was created. + :vartype created_at: datetime + :ivar updated_at: The time the namespace was updated. + :vartype updated_at: datetime + :ivar listener_count: The number of listeners for this hybrid connection. + Note that min : 1 and max:25 are supported. + :vartype listener_count: int + :param requires_client_authorization: Returns true if client authorization + is needed for this hybrid connection; otherwise, false. + :type requires_client_authorization: bool + :param user_metadata: The userMetadata is a placeholder to store + user-defined string data for the hybrid connection endpoint. For example, + it can be used to store descriptive data, such as a list of teams and + their contact information. Also, user-defined configuration settings can + be stored. + :type user_metadata: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'created_at': {'readonly': True}, + 'updated_at': {'readonly': True}, + 'listener_count': {'readonly': True, 'maximum': 25, 'minimum': 0}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'}, + 'updated_at': {'key': 'properties.updatedAt', 'type': 'iso-8601'}, + 'listener_count': {'key': 'properties.listenerCount', 'type': 'int'}, + 'requires_client_authorization': {'key': 'properties.requiresClientAuthorization', 'type': 'bool'}, + 'user_metadata': {'key': 'properties.userMetadata', 'type': 'str'}, + } + + def __init__(self, *, requires_client_authorization: bool=None, user_metadata: str=None, **kwargs) -> None: + super(HybridConnection, self).__init__(**kwargs) + self.created_at = None + self.updated_at = None + self.listener_count = None + self.requires_client_authorization = requires_client_authorization + self.user_metadata = user_metadata diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/operation.py b/azure-mgmt-relay/azure/mgmt/relay/models/operation.py index 981d16f5d5ac..5bff3c000c80 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/operation.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/operation.py @@ -33,7 +33,7 @@ class Operation(Model): 'display': {'key': 'display', 'type': 'OperationDisplay'}, } - def __init__(self, display=None): - super(Operation, self).__init__() + def __init__(self, **kwargs): + super(Operation, self).__init__(**kwargs) self.name = None - self.display = display + self.display = kwargs.get('display', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/operation_display.py b/azure-mgmt-relay/azure/mgmt/relay/models/operation_display.py index 2c1f285b4621..a8eaeee8622d 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/operation_display.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/operation_display.py @@ -39,8 +39,8 @@ class OperationDisplay(Model): 'operation': {'key': 'operation', 'type': 'str'}, } - def __init__(self): - super(OperationDisplay, self).__init__() + def __init__(self, **kwargs): + super(OperationDisplay, self).__init__(**kwargs) self.provider = None self.resource = None self.operation = None diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/operation_display_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/operation_display_py3.py new file mode 100644 index 000000000000..ee850026500d --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/operation_display_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class OperationDisplay(Model): + """The object that represents the operation. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar provider: Service provider: Relay. + :vartype provider: str + :ivar resource: Resource on which the operation is performed: Invoice, + etc. + :vartype resource: str + :ivar operation: Operation type: Read, write, delete, etc. + :vartype operation: str + """ + + _validation = { + 'provider': {'readonly': True}, + 'resource': {'readonly': True}, + 'operation': {'readonly': True}, + } + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(OperationDisplay, self).__init__(**kwargs) + self.provider = None + self.resource = None + self.operation = None diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/operation_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/operation_py3.py new file mode 100644 index 000000000000..1c446d85e932 --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/operation_py3.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 msrest.serialization import Model + + +class Operation(Model): + """A Relay REST API operation. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar name: Operation name: {provider}/{resource}/{operation} + :vartype name: str + :param display: The object that represents the operation. + :type display: ~azure.mgmt.relay.models.OperationDisplay + """ + + _validation = { + 'name': {'readonly': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'OperationDisplay'}, + } + + def __init__(self, *, display=None, **kwargs) -> None: + super(Operation, self).__init__(**kwargs) + self.name = None + self.display = display diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/regenerate_access_key_parameters.py b/azure-mgmt-relay/azure/mgmt/relay/models/regenerate_access_key_parameters.py index f0a85ce88ca3..ae8e25c03951 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/regenerate_access_key_parameters.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/regenerate_access_key_parameters.py @@ -14,10 +14,12 @@ class RegenerateAccessKeyParameters(Model): """Parameters supplied to the regenerate authorization rule operation, - specifies which key neeeds to be reset. + specifies which key needs to be reset. - :param key_type: The access key to regenerate. Possible values include: - 'PrimaryKey', 'SecondaryKey' + All required parameters must be populated in order to send to Azure. + + :param key_type: Required. The access key to regenerate. Possible values + include: 'PrimaryKey', 'SecondaryKey' :type key_type: str or ~azure.mgmt.relay.models.KeyType :param key: Optional. If the key value is provided, this is set to key type, or autogenerated key value set for key type. @@ -33,7 +35,7 @@ class RegenerateAccessKeyParameters(Model): 'key': {'key': 'key', 'type': 'str'}, } - def __init__(self, key_type, key=None): - super(RegenerateAccessKeyParameters, self).__init__() - self.key_type = key_type - self.key = key + def __init__(self, **kwargs): + super(RegenerateAccessKeyParameters, self).__init__(**kwargs) + self.key_type = kwargs.get('key_type', None) + self.key = kwargs.get('key', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/regenerate_access_key_parameters_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/regenerate_access_key_parameters_py3.py new file mode 100644 index 000000000000..438a8d251386 --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/regenerate_access_key_parameters_py3.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 msrest.serialization import Model + + +class RegenerateAccessKeyParameters(Model): + """Parameters supplied to the regenerate authorization rule operation, + specifies which key needs to be reset. + + All required parameters must be populated in order to send to Azure. + + :param key_type: Required. The access key to regenerate. Possible values + include: 'PrimaryKey', 'SecondaryKey' + :type key_type: str or ~azure.mgmt.relay.models.KeyType + :param key: Optional. If the key value is provided, this is set to key + type, or autogenerated key value set for key type. + :type key: str + """ + + _validation = { + 'key_type': {'required': True}, + } + + _attribute_map = { + 'key_type': {'key': 'keyType', 'type': 'KeyType'}, + 'key': {'key': 'key', 'type': 'str'}, + } + + def __init__(self, *, key_type, key: str=None, **kwargs) -> None: + super(RegenerateAccessKeyParameters, self).__init__(**kwargs) + self.key_type = key_type + self.key = key diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/relay_management_client_enums.py b/azure-mgmt-relay/azure/mgmt/relay/models/relay_management_client_enums.py index 2f825eff7373..d4198f6752f0 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/relay_management_client_enums.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/relay_management_client_enums.py @@ -12,18 +12,18 @@ from enum import Enum -class Relaytype(Enum): +class Relaytype(str, Enum): net_tcp = "NetTcp" http = "Http" -class SkuTier(Enum): +class SkuTier(str, Enum): standard = "Standard" -class ProvisioningStateEnum(Enum): +class ProvisioningStateEnum(str, Enum): created = "Created" succeeded = "Succeeded" @@ -33,20 +33,20 @@ class ProvisioningStateEnum(Enum): unknown = "Unknown" -class AccessRights(Enum): +class AccessRights(str, Enum): manage = "Manage" send = "Send" listen = "Listen" -class KeyType(Enum): +class KeyType(str, Enum): primary_key = "PrimaryKey" secondary_key = "SecondaryKey" -class UnavailableReason(Enum): +class UnavailableReason(str, Enum): none = "None" invalid_name = "InvalidName" diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/relay_namespace.py b/azure-mgmt-relay/azure/mgmt/relay/models/relay_namespace.py index aabe904feacd..371a68b21ee9 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/relay_namespace.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/relay_namespace.py @@ -18,13 +18,15 @@ class RelayNamespace(TrackedResource): Variables are only populated by the server, and will be ignored when sending a request. + All required parameters must be populated in order to send to Azure. + :ivar id: Resource ID. :vartype id: str :ivar name: Resource name. :vartype name: str :ivar type: Resource type. :vartype type: str - :param location: Resource location. + :param location: Required. Resource location. :type location: str :param tags: Resource tags. :type tags: dict[str, str] @@ -71,9 +73,9 @@ class RelayNamespace(TrackedResource): 'metric_id': {'key': 'properties.metricId', 'type': 'str'}, } - def __init__(self, location, tags=None, sku=None): - super(RelayNamespace, self).__init__(location=location, tags=tags) - self.sku = sku + def __init__(self, **kwargs): + super(RelayNamespace, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) self.provisioning_state = None self.created_at = None self.updated_at = None diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/relay_namespace_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/relay_namespace_py3.py new file mode 100644 index 000000000000..ea72eacfd1c2 --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/relay_namespace_py3.py @@ -0,0 +1,83 @@ +# 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 .tracked_resource_py3 import TrackedResource + + +class RelayNamespace(TrackedResource): + """Description of a namespace resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param location: Required. Resource location. + :type location: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param sku: SKU of the namespace. + :type sku: ~azure.mgmt.relay.models.Sku + :ivar provisioning_state: Possible values include: 'Created', 'Succeeded', + 'Deleted', 'Failed', 'Updating', 'Unknown' + :vartype provisioning_state: str or + ~azure.mgmt.relay.models.ProvisioningStateEnum + :ivar created_at: The time the namespace was created. + :vartype created_at: datetime + :ivar updated_at: The time the namespace was updated. + :vartype updated_at: datetime + :ivar service_bus_endpoint: Endpoint you can use to perform Service Bus + operations. + :vartype service_bus_endpoint: str + :ivar metric_id: Identifier for Azure Insights metrics. + :vartype metric_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + 'provisioning_state': {'readonly': True}, + 'created_at': {'readonly': True}, + 'updated_at': {'readonly': True}, + 'service_bus_endpoint': {'readonly': True}, + 'metric_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'sku': {'key': 'sku', 'type': 'Sku'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'ProvisioningStateEnum'}, + 'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'}, + 'updated_at': {'key': 'properties.updatedAt', 'type': 'iso-8601'}, + 'service_bus_endpoint': {'key': 'properties.serviceBusEndpoint', 'type': 'str'}, + 'metric_id': {'key': 'properties.metricId', 'type': 'str'}, + } + + def __init__(self, *, location: str, tags=None, sku=None, **kwargs) -> None: + super(RelayNamespace, self).__init__(location=location, tags=tags, **kwargs) + self.sku = sku + self.provisioning_state = None + self.created_at = None + self.updated_at = None + self.service_bus_endpoint = None + self.metric_id = None diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/relay_update_parameters.py b/azure-mgmt-relay/azure/mgmt/relay/models/relay_update_parameters.py index ec0cf4f08fab..b2276035c62c 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/relay_update_parameters.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/relay_update_parameters.py @@ -67,9 +67,9 @@ class RelayUpdateParameters(ResourceNamespacePatch): 'metric_id': {'key': 'properties.metricId', 'type': 'str'}, } - def __init__(self, tags=None, sku=None): - super(RelayUpdateParameters, self).__init__(tags=tags) - self.sku = sku + def __init__(self, **kwargs): + super(RelayUpdateParameters, self).__init__(**kwargs) + self.sku = kwargs.get('sku', None) self.provisioning_state = None self.created_at = None self.updated_at = None diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/relay_update_parameters_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/relay_update_parameters_py3.py new file mode 100644 index 000000000000..0d18f809a3d7 --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/relay_update_parameters_py3.py @@ -0,0 +1,77 @@ +# 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 .resource_namespace_patch_py3 import ResourceNamespacePatch + + +class RelayUpdateParameters(ResourceNamespacePatch): + """Description of a namespace resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param tags: Resource tags. + :type tags: dict[str, str] + :param sku: SKU of the namespace. + :type sku: ~azure.mgmt.relay.models.Sku + :ivar provisioning_state: Possible values include: 'Created', 'Succeeded', + 'Deleted', 'Failed', 'Updating', 'Unknown' + :vartype provisioning_state: str or + ~azure.mgmt.relay.models.ProvisioningStateEnum + :ivar created_at: The time the namespace was created. + :vartype created_at: datetime + :ivar updated_at: The time the namespace was updated. + :vartype updated_at: datetime + :ivar service_bus_endpoint: Endpoint you can use to perform Service Bus + operations. + :vartype service_bus_endpoint: str + :ivar metric_id: Identifier for Azure Insights metrics. + :vartype metric_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'created_at': {'readonly': True}, + 'updated_at': {'readonly': True}, + 'service_bus_endpoint': {'readonly': True}, + 'metric_id': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'sku': {'key': 'sku', 'type': 'Sku'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'ProvisioningStateEnum'}, + 'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'}, + 'updated_at': {'key': 'properties.updatedAt', 'type': 'iso-8601'}, + 'service_bus_endpoint': {'key': 'properties.serviceBusEndpoint', 'type': 'str'}, + 'metric_id': {'key': 'properties.metricId', 'type': 'str'}, + } + + def __init__(self, *, tags=None, sku=None, **kwargs) -> None: + super(RelayUpdateParameters, self).__init__(tags=tags, **kwargs) + self.sku = sku + self.provisioning_state = None + self.created_at = None + self.updated_at = None + self.service_bus_endpoint = None + self.metric_id = None diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/resource.py b/azure-mgmt-relay/azure/mgmt/relay/models/resource.py index 08c1c9b59730..b1ef73099bc6 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/resource.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/resource.py @@ -38,8 +38,8 @@ class Resource(Model): 'type': {'key': 'type', 'type': 'str'}, } - def __init__(self): - super(Resource, self).__init__() + def __init__(self, **kwargs): + super(Resource, self).__init__(**kwargs) self.id = None self.name = None self.type = None diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/resource_namespace_patch.py b/azure-mgmt-relay/azure/mgmt/relay/models/resource_namespace_patch.py index 4978d97c1945..f4991ad6d313 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/resource_namespace_patch.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/resource_namespace_patch.py @@ -41,6 +41,6 @@ class ResourceNamespacePatch(Resource): 'tags': {'key': 'tags', 'type': '{str}'}, } - def __init__(self, tags=None): - super(ResourceNamespacePatch, self).__init__() - self.tags = tags + def __init__(self, **kwargs): + super(ResourceNamespacePatch, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/resource_namespace_patch_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/resource_namespace_patch_py3.py new file mode 100644 index 000000000000..3cee2173bc9d --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/resource_namespace_patch_py3.py @@ -0,0 +1,46 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .resource_py3 import Resource + + +class ResourceNamespacePatch(Resource): + """Definition of resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param tags: Resource tags. + :type tags: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__(self, *, tags=None, **kwargs) -> None: + super(ResourceNamespacePatch, self).__init__(**kwargs) + self.tags = tags diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/resource_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/resource_py3.py new file mode 100644 index 000000000000..1a0890e76b74 --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/resource_py3.py @@ -0,0 +1,45 @@ +# 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 msrest.serialization import Model + + +class Resource(Model): + """The resource definition. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/sku.py b/azure-mgmt-relay/azure/mgmt/relay/models/sku.py index e9ad72418bef..9162fd1c0970 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/sku.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/sku.py @@ -18,7 +18,9 @@ class Sku(Model): Variables are only populated by the server, and will be ignored when sending a request. - :ivar name: Name of this SKU. Default value: "Standard" . + All required parameters must be populated in order to send to Azure. + + :ivar name: Required. Name of this SKU. Default value: "Standard" . :vartype name: str :param tier: The tier of this SKU. Possible values include: 'Standard' :type tier: str or ~azure.mgmt.relay.models.SkuTier @@ -35,6 +37,6 @@ class Sku(Model): name = "Standard" - def __init__(self, tier=None): - super(Sku, self).__init__() - self.tier = tier + def __init__(self, **kwargs): + super(Sku, self).__init__(**kwargs) + self.tier = kwargs.get('tier', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/sku_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/sku_py3.py new file mode 100644 index 000000000000..c81d3789b177 --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/sku_py3.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 msrest.serialization import Model + + +class Sku(Model): + """SKU of the namespace. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar name: Required. Name of this SKU. Default value: "Standard" . + :vartype name: str + :param tier: The tier of this SKU. Possible values include: 'Standard' + :type tier: str or ~azure.mgmt.relay.models.SkuTier + """ + + _validation = { + 'name': {'required': True, 'constant': True}, + } + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'tier': {'key': 'tier', 'type': 'SkuTier'}, + } + + name = "Standard" + + def __init__(self, *, tier=None, **kwargs) -> None: + super(Sku, self).__init__(**kwargs) + self.tier = tier diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/tracked_resource.py b/azure-mgmt-relay/azure/mgmt/relay/models/tracked_resource.py index 4618796cea1f..6ad63c681ff3 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/tracked_resource.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/tracked_resource.py @@ -18,13 +18,15 @@ class TrackedResource(Resource): Variables are only populated by the server, and will be ignored when sending a request. + All required parameters must be populated in order to send to Azure. + :ivar id: Resource ID. :vartype id: str :ivar name: Resource name. :vartype name: str :ivar type: Resource type. :vartype type: str - :param location: Resource location. + :param location: Required. Resource location. :type location: str :param tags: Resource tags. :type tags: dict[str, str] @@ -45,7 +47,7 @@ class TrackedResource(Resource): 'tags': {'key': 'tags', 'type': '{str}'}, } - def __init__(self, location, tags=None): - super(TrackedResource, self).__init__() - self.location = location - self.tags = tags + def __init__(self, **kwargs): + super(TrackedResource, self).__init__(**kwargs) + self.location = kwargs.get('location', None) + self.tags = kwargs.get('tags', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/tracked_resource_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/tracked_resource_py3.py new file mode 100644 index 000000000000..0f570808a6fa --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/tracked_resource_py3.py @@ -0,0 +1,53 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .resource_py3 import Resource + + +class TrackedResource(Resource): + """Definition of resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :param location: Required. Resource location. + :type location: str + :param tags: Resource tags. + :type tags: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'location': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__(self, *, location: str, tags=None, **kwargs) -> None: + super(TrackedResource, self).__init__(**kwargs) + self.location = location + self.tags = tags diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/wcf_relay.py b/azure-mgmt-relay/azure/mgmt/relay/models/wcf_relay.py index ea59df614f7e..a6dd0e8566a6 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/models/wcf_relay.py +++ b/azure-mgmt-relay/azure/mgmt/relay/models/wcf_relay.py @@ -42,7 +42,7 @@ class WcfRelay(Resource): :param requires_transport_security: Returns true if transport security is needed for this relay; otherwise, false. :type requires_transport_security: bool - :param user_metadata: The usermetadata is a placeholder to store + :param user_metadata: The userMetadata is a placeholder to store user-defined string data for the WCF Relay endpoint. For example, it can be used to store descriptive data, such as list of teams and their contact information. Also, user-defined configuration settings can be stored. @@ -73,13 +73,13 @@ class WcfRelay(Resource): 'user_metadata': {'key': 'properties.userMetadata', 'type': 'str'}, } - def __init__(self, relay_type=None, requires_client_authorization=None, requires_transport_security=None, user_metadata=None): - super(WcfRelay, self).__init__() + def __init__(self, **kwargs): + super(WcfRelay, self).__init__(**kwargs) self.is_dynamic = None self.created_at = None self.updated_at = None self.listener_count = None - self.relay_type = relay_type - self.requires_client_authorization = requires_client_authorization - self.requires_transport_security = requires_transport_security - self.user_metadata = user_metadata + self.relay_type = kwargs.get('relay_type', None) + self.requires_client_authorization = kwargs.get('requires_client_authorization', None) + self.requires_transport_security = kwargs.get('requires_transport_security', None) + self.user_metadata = kwargs.get('user_metadata', None) diff --git a/azure-mgmt-relay/azure/mgmt/relay/models/wcf_relay_py3.py b/azure-mgmt-relay/azure/mgmt/relay/models/wcf_relay_py3.py new file mode 100644 index 000000000000..9d7ab33903da --- /dev/null +++ b/azure-mgmt-relay/azure/mgmt/relay/models/wcf_relay_py3.py @@ -0,0 +1,85 @@ +# 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 .resource_py3 import Resource + + +class WcfRelay(Resource): + """Description of the WCF relay resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource ID. + :vartype id: str + :ivar name: Resource name. + :vartype name: str + :ivar type: Resource type. + :vartype type: str + :ivar is_dynamic: Returns true if the relay is dynamic; otherwise, false. + :vartype is_dynamic: bool + :ivar created_at: The time the WCF relay was created. + :vartype created_at: datetime + :ivar updated_at: The time the namespace was updated. + :vartype updated_at: datetime + :ivar listener_count: The number of listeners for this relay. Note that + min :1 and max:25 are supported. + :vartype listener_count: int + :param relay_type: WCF relay type. Possible values include: 'NetTcp', + 'Http' + :type relay_type: str or ~azure.mgmt.relay.models.Relaytype + :param requires_client_authorization: Returns true if client authorization + is needed for this relay; otherwise, false. + :type requires_client_authorization: bool + :param requires_transport_security: Returns true if transport security is + needed for this relay; otherwise, false. + :type requires_transport_security: bool + :param user_metadata: The userMetadata is a placeholder to store + user-defined string data for the WCF Relay endpoint. For example, it can + be used to store descriptive data, such as list of teams and their contact + information. Also, user-defined configuration settings can be stored. + :type user_metadata: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'is_dynamic': {'readonly': True}, + 'created_at': {'readonly': True}, + 'updated_at': {'readonly': True}, + 'listener_count': {'readonly': True, 'maximum': 25, 'minimum': 0}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'is_dynamic': {'key': 'properties.isDynamic', 'type': 'bool'}, + 'created_at': {'key': 'properties.createdAt', 'type': 'iso-8601'}, + 'updated_at': {'key': 'properties.updatedAt', 'type': 'iso-8601'}, + 'listener_count': {'key': 'properties.listenerCount', 'type': 'int'}, + 'relay_type': {'key': 'properties.relayType', 'type': 'Relaytype'}, + 'requires_client_authorization': {'key': 'properties.requiresClientAuthorization', 'type': 'bool'}, + 'requires_transport_security': {'key': 'properties.requiresTransportSecurity', 'type': 'bool'}, + 'user_metadata': {'key': 'properties.userMetadata', 'type': 'str'}, + } + + def __init__(self, *, relay_type=None, requires_client_authorization: bool=None, requires_transport_security: bool=None, user_metadata: str=None, **kwargs) -> None: + super(WcfRelay, self).__init__(**kwargs) + self.is_dynamic = None + self.created_at = None + self.updated_at = None + self.listener_count = None + self.relay_type = relay_type + self.requires_client_authorization = requires_client_authorization + self.requires_transport_security = requires_transport_security + self.user_metadata = user_metadata diff --git a/azure-mgmt-relay/azure/mgmt/relay/operations/hybrid_connections_operations.py b/azure-mgmt-relay/azure/mgmt/relay/operations/hybrid_connections_operations.py index e6c057a9e552..fe0904ac5efe 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/operations/hybrid_connections_operations.py +++ b/azure-mgmt-relay/azure/mgmt/relay/operations/hybrid_connections_operations.py @@ -78,7 +78,7 @@ def internal_paging(next_link=None, raw=False): # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -87,9 +87,8 @@ def internal_paging(next_link=None, raw=False): header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send( - request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -122,7 +121,7 @@ def create_or_update( :param requires_client_authorization: Returns true if client authorization is needed for this hybrid connection; otherwise, false. :type requires_client_authorization: bool - :param user_metadata: The usermetadata is a placeholder to store + :param user_metadata: The userMetadata is a placeholder to store user-defined string data for the hybrid connection endpoint. For example, it can be used to store descriptive data, such as a list of teams and their contact information. Also, user-defined configuration @@ -157,6 +156,7 @@ def create_or_update( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -169,9 +169,8 @@ def create_or_update( body_content = self._serialize.body(parameters, 'HybridConnection') # Construct and send request - request = self._client.put(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -225,7 +224,6 @@ def delete( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -234,8 +232,8 @@ def delete( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.delete(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 204]: raise models.ErrorResponseException(self._deserialize, response) @@ -283,7 +281,7 @@ def get( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -292,8 +290,8 @@ def get( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -355,7 +353,7 @@ def internal_paging(next_link=None, raw=False): # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -364,9 +362,8 @@ def internal_paging(next_link=None, raw=False): header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send( - request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -429,6 +426,7 @@ def create_or_update_authorization_rule( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -441,9 +439,8 @@ def create_or_update_authorization_rule( body_content = self._serialize.body(parameters, 'AuthorizationRule') # Construct and send request - request = self._client.put(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -500,7 +497,6 @@ def delete_authorization_rule( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -509,8 +505,8 @@ def delete_authorization_rule( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.delete(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 204]: raise models.ErrorResponseException(self._deserialize, response) @@ -561,7 +557,7 @@ def get_authorization_rule( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -570,8 +566,8 @@ def get_authorization_rule( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -629,7 +625,7 @@ def list_keys( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -638,8 +634,8 @@ def list_keys( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.post(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -706,6 +702,7 @@ def regenerate_keys( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -718,9 +715,8 @@ def regenerate_keys( body_content = self._serialize.body(parameters, 'RegenerateAccessKeyParameters') # Construct and send request - request = self._client.post(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) diff --git a/azure-mgmt-relay/azure/mgmt/relay/operations/namespaces_operations.py b/azure-mgmt-relay/azure/mgmt/relay/operations/namespaces_operations.py index b8d1cd62ec5d..2c824ca92d28 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/operations/namespaces_operations.py +++ b/azure-mgmt-relay/azure/mgmt/relay/operations/namespaces_operations.py @@ -11,8 +11,8 @@ import uuid from msrest.pipeline import ClientRawResponse -from msrest.exceptions import DeserializationError -from msrestazure.azure_operation import AzureOperationPoller +from msrest.polling import LROPoller, NoPolling +from msrestazure.polling.arm_polling import ARMPolling from .. import models @@ -73,6 +73,7 @@ def check_name_availability_method( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -85,9 +86,8 @@ def check_name_availability_method( body_content = self._serialize.body(parameters, 'CheckNameAvailability') # Construct and send request - request = self._client.post(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -140,7 +140,7 @@ def internal_paging(next_link=None, raw=False): # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -149,9 +149,8 @@ def internal_paging(next_link=None, raw=False): header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send( - request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -208,7 +207,7 @@ def internal_paging(next_link=None, raw=False): # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -217,9 +216,8 @@ def internal_paging(next_link=None, raw=False): header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send( - request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -255,6 +253,7 @@ def _create_or_update_initial( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -267,9 +266,8 @@ def _create_or_update_initial( body_content = self._serialize.body(parameters, 'RelayNamespace') # Construct and send request - request = self._client.put(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 201]: raise models.ErrorResponseException(self._deserialize, response) @@ -288,7 +286,7 @@ def _create_or_update_initial( return deserialized def create_or_update( - self, resource_group_name, namespace_name, parameters, custom_headers=None, raw=False, **operation_config): + self, resource_group_name, namespace_name, parameters, custom_headers=None, raw=False, polling=True, **operation_config): """Create Azure Relay namespace. :param resource_group_name: Name of the Resource group within the @@ -299,13 +297,16 @@ def create_or_update( :param parameters: Parameters supplied to create a namespace resource. :type parameters: ~azure.mgmt.relay.models.RelayNamespace :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :return: An instance of AzureOperationPoller that returns - RelayNamespace or ClientRawResponse if raw=true + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns RelayNamespace or + ClientRawResponse if raw==True :rtype: ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.relay.models.RelayNamespace] - or ~msrest.pipeline.ClientRawResponse + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.relay.models.RelayNamespace]] :raises: :class:`ErrorResponseException` """ @@ -317,28 +318,8 @@ def create_or_update( raw=True, **operation_config ) - if raw: - return raw_result - - # Construct and send request - def long_running_send(): - return raw_result.response - - def get_long_running_status(status_link, headers=None): - - request = self._client.get(status_link) - if headers: - request.headers.update(headers) - header_parameters = {} - header_parameters['x-ms-client-request-id'] = raw_result.response.request.headers['x-ms-client-request-id'] - return self._client.send( - request, header_parameters, stream=False, **operation_config) def get_long_running_output(response): - - if response.status_code not in [200, 201]: - raise models.ErrorResponseException(self._deserialize, response) - deserialized = self._deserialize('RelayNamespace', response) if raw: @@ -347,12 +328,13 @@ def get_long_running_output(response): return deserialized - long_running_operation_timeout = operation_config.get( + lro_delay = operation_config.get( 'long_running_operation_timeout', self.config.long_running_operation_timeout) - return AzureOperationPoller( - long_running_send, get_long_running_output, - get_long_running_status, long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}'} @@ -373,7 +355,6 @@ def _delete_initial( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -382,8 +363,8 @@ def _delete_initial( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.delete(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 202, 204]: raise models.ErrorResponseException(self._deserialize, response) @@ -393,7 +374,7 @@ def _delete_initial( return client_raw_response def delete( - self, resource_group_name, namespace_name, custom_headers=None, raw=False, **operation_config): + self, resource_group_name, namespace_name, custom_headers=None, raw=False, polling=True, **operation_config): """Deletes an existing namespace. This operation also removes all associated resources under the namespace. @@ -403,12 +384,14 @@ def delete( :param namespace_name: The namespace name :type namespace_name: str :param dict custom_headers: headers that will be added to the request - :param bool raw: returns the direct response alongside the - deserialized response - :return: An instance of AzureOperationPoller that returns None or - ClientRawResponse if raw=true + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or - ~msrest.pipeline.ClientRawResponse + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] :raises: :class:`ErrorResponseException` """ @@ -419,38 +402,19 @@ def delete( raw=True, **operation_config ) - if raw: - return raw_result - - # Construct and send request - def long_running_send(): - return raw_result.response - - def get_long_running_status(status_link, headers=None): - - request = self._client.get(status_link) - if headers: - request.headers.update(headers) - header_parameters = {} - header_parameters['x-ms-client-request-id'] = raw_result.response.request.headers['x-ms-client-request-id'] - return self._client.send( - request, header_parameters, stream=False, **operation_config) def get_long_running_output(response): - - if response.status_code not in [200, 202, 204]: - raise models.ErrorResponseException(self._deserialize, response) - if raw: client_raw_response = ClientRawResponse(None, response) return client_raw_response - long_running_operation_timeout = operation_config.get( + lro_delay = operation_config.get( 'long_running_operation_timeout', self.config.long_running_operation_timeout) - return AzureOperationPoller( - long_running_send, get_long_running_output, - get_long_running_status, long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Relay/namespaces/{namespaceName}'} def get( @@ -488,7 +452,7 @@ def get( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -497,8 +461,8 @@ def get( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -557,6 +521,7 @@ def update( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -569,9 +534,8 @@ def update( body_content = self._serialize.body(parameters, 'RelayUpdateParameters') # Construct and send request - request = self._client.patch(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.patch(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 201]: raise models.ErrorResponseException(self._deserialize, response) @@ -632,7 +596,7 @@ def internal_paging(next_link=None, raw=False): # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -641,9 +605,8 @@ def internal_paging(next_link=None, raw=False): header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send( - request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -703,6 +666,7 @@ def create_or_update_authorization_rule( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -715,9 +679,8 @@ def create_or_update_authorization_rule( body_content = self._serialize.body(parameters, 'AuthorizationRule') # Construct and send request - request = self._client.put(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -771,7 +734,6 @@ def delete_authorization_rule( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -780,8 +742,8 @@ def delete_authorization_rule( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.delete(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 204]: raise models.ErrorResponseException(self._deserialize, response) @@ -829,7 +791,7 @@ def get_authorization_rule( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -838,8 +800,8 @@ def get_authorization_rule( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -894,7 +856,7 @@ def list_keys( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -903,8 +865,8 @@ def list_keys( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.post(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -968,6 +930,7 @@ def regenerate_keys( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -980,9 +943,8 @@ def regenerate_keys( body_content = self._serialize.body(parameters, 'RegenerateAccessKeyParameters') # Construct and send request - request = self._client.post(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) diff --git a/azure-mgmt-relay/azure/mgmt/relay/operations/operations.py b/azure-mgmt-relay/azure/mgmt/relay/operations/operations.py index 94122a7504b1..545badf3c107 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/operations/operations.py +++ b/azure-mgmt-relay/azure/mgmt/relay/operations/operations.py @@ -67,7 +67,7 @@ def internal_paging(next_link=None, raw=False): # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -76,9 +76,8 @@ def internal_paging(next_link=None, raw=False): header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send( - request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) diff --git a/azure-mgmt-relay/azure/mgmt/relay/operations/wcf_relays_operations.py b/azure-mgmt-relay/azure/mgmt/relay/operations/wcf_relays_operations.py index bd7fe1fa1133..0190da6dfafa 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/operations/wcf_relays_operations.py +++ b/azure-mgmt-relay/azure/mgmt/relay/operations/wcf_relays_operations.py @@ -79,7 +79,7 @@ def internal_paging(next_link=None, raw=False): # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -88,9 +88,8 @@ def internal_paging(next_link=None, raw=False): header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send( - request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -148,6 +147,7 @@ def create_or_update( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -160,9 +160,8 @@ def create_or_update( body_content = self._serialize.body(parameters, 'WcfRelay') # Construct and send request - request = self._client.put(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -216,7 +215,6 @@ def delete( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -225,8 +223,8 @@ def delete( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.delete(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 204]: raise models.ErrorResponseException(self._deserialize, response) @@ -274,7 +272,7 @@ def get( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -283,8 +281,8 @@ def get( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 204]: raise models.ErrorResponseException(self._deserialize, response) @@ -345,7 +343,7 @@ def internal_paging(next_link=None, raw=False): # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -354,9 +352,8 @@ def internal_paging(next_link=None, raw=False): header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send( - request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: exp = CloudError(response) @@ -421,6 +418,7 @@ def create_or_update_authorization_rule( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -433,9 +431,8 @@ def create_or_update_authorization_rule( body_content = self._serialize.body(parameters, 'AuthorizationRule') # Construct and send request - request = self._client.put(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.put(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -492,7 +489,6 @@ def delete_authorization_rule( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -501,8 +497,8 @@ def delete_authorization_rule( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.delete(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.delete(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 204]: raise models.ErrorResponseException(self._deserialize, response) @@ -553,7 +549,7 @@ def get_authorization_rule( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -562,8 +558,8 @@ def get_authorization_rule( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.get(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.get(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -621,7 +617,7 @@ def list_keys( # Construct headers header_parameters = {} - header_parameters['Content-Type'] = 'application/json; charset=utf-8' + header_parameters['Accept'] = 'application/json' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -630,8 +626,8 @@ def list_keys( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct and send request - request = self._client.post(url, query_parameters) - response = self._client.send(request, header_parameters, stream=False, **operation_config) + request = self._client.post(url, query_parameters, header_parameters) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) @@ -698,6 +694,7 @@ def regenerate_keys( # Construct headers header_parameters = {} + header_parameters['Accept'] = 'application/json' header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) @@ -710,9 +707,8 @@ def regenerate_keys( body_content = self._serialize.body(parameters, 'RegenerateAccessKeyParameters') # Construct and send request - request = self._client.post(url, query_parameters) - response = self._client.send( - request, header_parameters, body_content, stream=False, **operation_config) + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200]: raise models.ErrorResponseException(self._deserialize, response) diff --git a/azure-mgmt-relay/azure/mgmt/relay/relay_management_client.py b/azure-mgmt-relay/azure/mgmt/relay/relay_management_client.py index 329c6e8172a2..64cb7b93baab 100644 --- a/azure-mgmt-relay/azure/mgmt/relay/relay_management_client.py +++ b/azure-mgmt-relay/azure/mgmt/relay/relay_management_client.py @@ -9,7 +9,7 @@ # regenerated. # -------------------------------------------------------------------------- -from msrest.service_client import ServiceClient +from msrest.service_client import SDKClient from msrest import Serializer, Deserializer from msrestazure import AzureConfiguration from .version import VERSION @@ -54,7 +54,7 @@ def __init__( self.subscription_id = subscription_id -class RelayManagementClient(object): +class RelayManagementClient(SDKClient): """Use these API to manage Azure Relay resources through Azure Resource Manager. :ivar config: Configuration for client. @@ -83,7 +83,7 @@ def __init__( self, credentials, subscription_id, base_url=None): self.config = RelayManagementClientConfiguration(credentials, subscription_id, base_url) - self._client = ServiceClient(self.config.credentials, self.config) + super(RelayManagementClient, self).__init__(self.config.credentials, self.config) client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} self.api_version = '2017-04-01' diff --git a/azure-mgmt-relay/azure_bdist_wheel.py b/azure-mgmt-relay/azure_bdist_wheel.py deleted file mode 100644 index 61ec571a9743..000000000000 --- a/azure-mgmt-relay/azure_bdist_wheel.py +++ /dev/null @@ -1,533 +0,0 @@ -""" -"wheel" copyright (c) 2012-2017 Daniel Holth and -contributors. - -The MIT License - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. - -Create a Azure wheel (.whl) distribution (a wheel is a built archive format). - -This file is a copy of the official bdist_wheel file from wheel 0.30.0a0, enhanced -of the bottom with some Microsoft extension for Azure SDK for Python - -""" - -import csv -import hashlib -import os -import subprocess -import warnings -import shutil -import json -import sys - -try: - import sysconfig -except ImportError: # pragma nocover - # Python < 2.7 - import distutils.sysconfig as sysconfig - -import pkg_resources - -safe_name = pkg_resources.safe_name -safe_version = pkg_resources.safe_version - -from shutil import rmtree -from email.generator import Generator - -from distutils.core import Command -from distutils.sysconfig import get_python_version - -from distutils import log as logger - -from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag, get_platform -from wheel.util import native, open_for_csv -from wheel.archive import archive_wheelfile -from wheel.pkginfo import read_pkg_info, write_pkg_info -from wheel.metadata import pkginfo_to_dict -from wheel import pep425tags, metadata -from wheel import __version__ as wheel_version - -def safer_name(name): - return safe_name(name).replace('-', '_') - -def safer_version(version): - return safe_version(version).replace('-', '_') - -class bdist_wheel(Command): - - description = 'create a wheel distribution' - - user_options = [('bdist-dir=', 'b', - "temporary directory for creating the distribution"), - ('plat-name=', 'p', - "platform name to embed in generated filenames " - "(default: %s)" % get_platform()), - ('keep-temp', 'k', - "keep the pseudo-installation tree around after " + - "creating the distribution archive"), - ('dist-dir=', 'd', - "directory to put final built distributions in"), - ('skip-build', None, - "skip rebuilding everything (for testing/debugging)"), - ('relative', None, - "build the archive using relative paths" - "(default: false)"), - ('owner=', 'u', - "Owner name used when creating a tar file" - " [default: current user]"), - ('group=', 'g', - "Group name used when creating a tar file" - " [default: current group]"), - ('universal', None, - "make a universal wheel" - " (default: false)"), - ('python-tag=', None, - "Python implementation compatibility tag" - " (default: py%s)" % get_impl_ver()[0]), - ] - - boolean_options = ['keep-temp', 'skip-build', 'relative', 'universal'] - - def initialize_options(self): - self.bdist_dir = None - self.data_dir = None - self.plat_name = None - self.plat_tag = None - self.format = 'zip' - self.keep_temp = False - self.dist_dir = None - self.distinfo_dir = None - self.egginfo_dir = None - self.root_is_pure = None - self.skip_build = None - self.relative = False - self.owner = None - self.group = None - self.universal = False - self.python_tag = 'py' + get_impl_ver()[0] - self.plat_name_supplied = False - - def finalize_options(self): - if self.bdist_dir is None: - bdist_base = self.get_finalized_command('bdist').bdist_base - self.bdist_dir = os.path.join(bdist_base, 'wheel') - - self.data_dir = self.wheel_dist_name + '.data' - self.plat_name_supplied = self.plat_name is not None - - need_options = ('dist_dir', 'plat_name', 'skip_build') - - self.set_undefined_options('bdist', - *zip(need_options, need_options)) - - self.root_is_pure = not (self.distribution.has_ext_modules() - or self.distribution.has_c_libraries()) - - # Support legacy [wheel] section for setting universal - wheel = self.distribution.get_option_dict('wheel') - if 'universal' in wheel: - # please don't define this in your global configs - val = wheel['universal'][1].strip() - if val.lower() in ('1', 'true', 'yes'): - self.universal = True - - @property - def wheel_dist_name(self): - """Return distribution full name with - replaced with _""" - return '-'.join((safer_name(self.distribution.get_name()), - safer_version(self.distribution.get_version()))) - - def get_tag(self): - # bdist sets self.plat_name if unset, we should only use it for purepy - # wheels if the user supplied it. - if self.plat_name_supplied: - plat_name = self.plat_name - elif self.root_is_pure: - plat_name = 'any' - else: - plat_name = self.plat_name or get_platform() - if plat_name in ('linux-x86_64', 'linux_x86_64') and sys.maxsize == 2147483647: - plat_name = 'linux_i686' - plat_name = plat_name.replace('-', '_').replace('.', '_') - - - if self.root_is_pure: - if self.universal: - impl = 'py2.py3' - else: - impl = self.python_tag - tag = (impl, 'none', plat_name) - else: - impl_name = get_abbr_impl() - impl_ver = get_impl_ver() - # PEP 3149 - abi_tag = str(get_abi_tag()).lower() - tag = (impl_name + impl_ver, abi_tag, plat_name) - supported_tags = pep425tags.get_supported( - supplied_platform=plat_name if self.plat_name_supplied else None) - # XXX switch to this alternate implementation for non-pure: - assert tag == supported_tags[0], "%s != %s" % (tag, supported_tags[0]) - return tag - - def get_archive_basename(self): - """Return archive name without extension""" - - impl_tag, abi_tag, plat_tag = self.get_tag() - - archive_basename = "%s-%s-%s-%s" % ( - self.wheel_dist_name, - impl_tag, - abi_tag, - plat_tag) - return archive_basename - - def run(self): - build_scripts = self.reinitialize_command('build_scripts') - build_scripts.executable = 'python' - - if not self.skip_build: - self.run_command('build') - - install = self.reinitialize_command('install', - reinit_subcommands=True) - install.root = self.bdist_dir - install.compile = False - install.skip_build = self.skip_build - install.warn_dir = False - - # A wheel without setuptools scripts is more cross-platform. - # Use the (undocumented) `no_ep` option to setuptools' - # install_scripts command to avoid creating entry point scripts. - install_scripts = self.reinitialize_command('install_scripts') - install_scripts.no_ep = True - - # Use a custom scheme for the archive, because we have to decide - # at installation time which scheme to use. - for key in ('headers', 'scripts', 'data', 'purelib', 'platlib'): - setattr(install, - 'install_' + key, - os.path.join(self.data_dir, key)) - - basedir_observed = '' - - if os.name == 'nt': - # win32 barfs if any of these are ''; could be '.'? - # (distutils.command.install:change_roots bug) - basedir_observed = os.path.normpath(os.path.join(self.data_dir, '..')) - self.install_libbase = self.install_lib = basedir_observed - - setattr(install, - 'install_purelib' if self.root_is_pure else 'install_platlib', - basedir_observed) - - logger.info("installing to %s", self.bdist_dir) - - self.run_command('install') - - archive_basename = self.get_archive_basename() - - pseudoinstall_root = os.path.join(self.dist_dir, archive_basename) - if not self.relative: - archive_root = self.bdist_dir - else: - archive_root = os.path.join( - self.bdist_dir, - self._ensure_relative(install.install_base)) - - self.set_undefined_options( - 'install_egg_info', ('target', 'egginfo_dir')) - self.distinfo_dir = os.path.join(self.bdist_dir, - '%s.dist-info' % self.wheel_dist_name) - self.egg2dist(self.egginfo_dir, - self.distinfo_dir) - - self.write_wheelfile(self.distinfo_dir) - - self.write_record(self.bdist_dir, self.distinfo_dir) - - # Make the archive - if not os.path.exists(self.dist_dir): - os.makedirs(self.dist_dir) - wheel_name = archive_wheelfile(pseudoinstall_root, archive_root) - - # Sign the archive - if 'WHEEL_TOOL' in os.environ: - subprocess.call([os.environ['WHEEL_TOOL'], 'sign', wheel_name]) - - # Add to 'Distribution.dist_files' so that the "upload" command works - getattr(self.distribution, 'dist_files', []).append( - ('bdist_wheel', get_python_version(), wheel_name)) - - if not self.keep_temp: - if self.dry_run: - logger.info('removing %s', self.bdist_dir) - else: - rmtree(self.bdist_dir) - - def write_wheelfile(self, wheelfile_base, generator='bdist_wheel (' + wheel_version + ')'): - from email.message import Message - msg = Message() - msg['Wheel-Version'] = '1.0' # of the spec - msg['Generator'] = generator - msg['Root-Is-Purelib'] = str(self.root_is_pure).lower() - - # Doesn't work for bdist_wininst - impl_tag, abi_tag, plat_tag = self.get_tag() - for impl in impl_tag.split('.'): - for abi in abi_tag.split('.'): - for plat in plat_tag.split('.'): - msg['Tag'] = '-'.join((impl, abi, plat)) - - wheelfile_path = os.path.join(wheelfile_base, 'WHEEL') - logger.info('creating %s', wheelfile_path) - with open(wheelfile_path, 'w') as f: - Generator(f, maxheaderlen=0).flatten(msg) - - def _ensure_relative(self, path): - # copied from dir_util, deleted - drive, path = os.path.splitdrive(path) - if path[0:1] == os.sep: - path = drive + path[1:] - return path - - def _pkginfo_to_metadata(self, egg_info_path, pkginfo_path): - return metadata.pkginfo_to_metadata(egg_info_path, pkginfo_path) - - def license_file(self): - """Return license filename from a license-file key in setup.cfg, or None.""" - metadata = self.distribution.get_option_dict('metadata') - if not 'license_file' in metadata: - return None - return metadata['license_file'][1] - - def setupcfg_requirements(self): - """Generate requirements from setup.cfg as - ('Requires-Dist', 'requirement; qualifier') tuples. From a metadata - section in setup.cfg: - - [metadata] - provides-extra = extra1 - extra2 - requires-dist = requirement; qualifier - another; qualifier2 - unqualified - - Yields - - ('Provides-Extra', 'extra1'), - ('Provides-Extra', 'extra2'), - ('Requires-Dist', 'requirement; qualifier'), - ('Requires-Dist', 'another; qualifier2'), - ('Requires-Dist', 'unqualified') - """ - metadata = self.distribution.get_option_dict('metadata') - - # our .ini parser folds - to _ in key names: - for key, title in (('provides_extra', 'Provides-Extra'), - ('requires_dist', 'Requires-Dist')): - if not key in metadata: - continue - field = metadata[key] - for line in field[1].splitlines(): - line = line.strip() - if not line: - continue - yield (title, line) - - def add_requirements(self, metadata_path): - """Add additional requirements from setup.cfg to file metadata_path""" - additional = list(self.setupcfg_requirements()) - if not additional: return - pkg_info = read_pkg_info(metadata_path) - if 'Provides-Extra' in pkg_info or 'Requires-Dist' in pkg_info: - warnings.warn('setup.cfg requirements overwrite values from setup.py') - del pkg_info['Provides-Extra'] - del pkg_info['Requires-Dist'] - for k, v in additional: - pkg_info[k] = v - write_pkg_info(metadata_path, pkg_info) - - def egg2dist(self, egginfo_path, distinfo_path): - """Convert an .egg-info directory into a .dist-info directory""" - def adios(p): - """Appropriately delete directory, file or link.""" - if os.path.exists(p) and not os.path.islink(p) and os.path.isdir(p): - shutil.rmtree(p) - elif os.path.exists(p): - os.unlink(p) - - adios(distinfo_path) - - if not os.path.exists(egginfo_path): - # There is no egg-info. This is probably because the egg-info - # file/directory is not named matching the distribution name used - # to name the archive file. Check for this case and report - # accordingly. - import glob - pat = os.path.join(os.path.dirname(egginfo_path), '*.egg-info') - possible = glob.glob(pat) - err = "Egg metadata expected at %s but not found" % (egginfo_path,) - if possible: - alt = os.path.basename(possible[0]) - err += " (%s found - possible misnamed archive file?)" % (alt,) - - raise ValueError(err) - - if os.path.isfile(egginfo_path): - # .egg-info is a single file - pkginfo_path = egginfo_path - pkg_info = self._pkginfo_to_metadata(egginfo_path, egginfo_path) - os.mkdir(distinfo_path) - else: - # .egg-info is a directory - pkginfo_path = os.path.join(egginfo_path, 'PKG-INFO') - pkg_info = self._pkginfo_to_metadata(egginfo_path, pkginfo_path) - - # ignore common egg metadata that is useless to wheel - shutil.copytree(egginfo_path, distinfo_path, - ignore=lambda x, y: set(('PKG-INFO', - 'requires.txt', - 'SOURCES.txt', - 'not-zip-safe',))) - - # delete dependency_links if it is only whitespace - dependency_links_path = os.path.join(distinfo_path, 'dependency_links.txt') - with open(dependency_links_path, 'r') as dependency_links_file: - dependency_links = dependency_links_file.read().strip() - if not dependency_links: - adios(dependency_links_path) - - write_pkg_info(os.path.join(distinfo_path, 'METADATA'), pkg_info) - - # XXX deprecated. Still useful for current distribute/setuptools. - metadata_path = os.path.join(distinfo_path, 'METADATA') - self.add_requirements(metadata_path) - - # XXX intentionally a different path than the PEP. - metadata_json_path = os.path.join(distinfo_path, 'metadata.json') - pymeta = pkginfo_to_dict(metadata_path, - distribution=self.distribution) - - if 'description' in pymeta: - description_filename = 'DESCRIPTION.rst' - description_text = pymeta.pop('description') - description_path = os.path.join(distinfo_path, - description_filename) - with open(description_path, "wb") as description_file: - description_file.write(description_text.encode('utf-8')) - pymeta['extensions']['python.details']['document_names']['description'] = description_filename - - # XXX heuristically copy any LICENSE/LICENSE.txt? - license = self.license_file() - if license: - license_filename = 'LICENSE.txt' - shutil.copy(license, os.path.join(self.distinfo_dir, license_filename)) - pymeta['extensions']['python.details']['document_names']['license'] = license_filename - - with open(metadata_json_path, "w") as metadata_json: - json.dump(pymeta, metadata_json, sort_keys=True) - - adios(egginfo_path) - - def write_record(self, bdist_dir, distinfo_dir): - from wheel.util import urlsafe_b64encode - - record_path = os.path.join(distinfo_dir, 'RECORD') - record_relpath = os.path.relpath(record_path, bdist_dir) - - def walk(): - for dir, dirs, files in os.walk(bdist_dir): - dirs.sort() - for f in sorted(files): - yield os.path.join(dir, f) - - def skip(path): - """Wheel hashes every possible file.""" - return (path == record_relpath) - - with open_for_csv(record_path, 'w+') as record_file: - writer = csv.writer(record_file) - for path in walk(): - relpath = os.path.relpath(path, bdist_dir) - if skip(relpath): - hash = '' - size = '' - else: - with open(path, 'rb') as f: - data = f.read() - digest = hashlib.sha256(data).digest() - hash = 'sha256=' + native(urlsafe_b64encode(digest)) - size = len(data) - record_path = os.path.relpath( - path, bdist_dir).replace(os.path.sep, '/') - writer.writerow((record_path, hash, size)) - - -#------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -#-------------------------------------------------------------------------- - -from distutils import log as logger -import os.path - -#from wheel.bdist_wheel import bdist_wheel -class azure_bdist_wheel(bdist_wheel): - - description = "Create an Azure wheel distribution" - - user_options = bdist_wheel.user_options + \ - [('azure-namespace-package=', None, - "Name of the deepest nspkg used")] - - def initialize_options(self): - bdist_wheel.initialize_options(self) - self.azure_namespace_package = None - - def finalize_options(self): - bdist_wheel.finalize_options(self) - if self.azure_namespace_package and not self.azure_namespace_package.endswith("-nspkg"): - raise ValueError("azure_namespace_package must finish by -nspkg") - - def run(self): - if not self.distribution.install_requires: - self.distribution.install_requires = [] - self.distribution.install_requires.append( - "{}>=2.0.0".format(self.azure_namespace_package)) - bdist_wheel.run(self) - - def write_record(self, bdist_dir, distinfo_dir): - if self.azure_namespace_package: - # Split and remove last part, assuming it's "nspkg" - subparts = self.azure_namespace_package.split('-')[0:-1] - folder_with_init = [os.path.join(*subparts[0:i+1]) for i in range(len(subparts))] - for azure_sub_package in folder_with_init: - init_file = os.path.join(bdist_dir, azure_sub_package, '__init__.py') - if os.path.isfile(init_file): - logger.info("manually remove {} while building the wheel".format(init_file)) - os.remove(init_file) - else: - raise ValueError("Unable to find {}. Are you sure of your namespace package?".format(init_file)) - bdist_wheel.write_record(self, bdist_dir, distinfo_dir) -cmdclass = { - 'bdist_wheel': azure_bdist_wheel, -} diff --git a/azure-mgmt-relay/sdk_packaging.toml b/azure-mgmt-relay/sdk_packaging.toml new file mode 100644 index 000000000000..18a619507e43 --- /dev/null +++ b/azure-mgmt-relay/sdk_packaging.toml @@ -0,0 +1,8 @@ +[packaging] +package_name = "azure-mgmt-relay" +package_nspkg = "azure-mgmt-nspkg" +package_pprint_name = "MyService Management" +package_doc_id = "" +is_stable = false +is_arm = true +need_msrestazure = true diff --git a/azure-mgmt-relay/setup.cfg b/azure-mgmt-relay/setup.cfg index 856f4164982c..3c6e79cf31da 100644 --- a/azure-mgmt-relay/setup.cfg +++ b/azure-mgmt-relay/setup.cfg @@ -1,3 +1,2 @@ [bdist_wheel] universal=1 -azure-namespace-package=azure-mgmt-nspkg \ No newline at end of file diff --git a/azure-mgmt-relay/setup.py b/azure-mgmt-relay/setup.py index b7242e80f597..76365c2c2284 100644 --- a/azure-mgmt-relay/setup.py +++ b/azure-mgmt-relay/setup.py @@ -10,16 +10,10 @@ import os.path from io import open from setuptools import find_packages, setup -try: - from azure_bdist_wheel import cmdclass -except ImportError: - from distutils import log as logger - logger.warn("Wheel is not available, disabling bdist_wheel hook") - cmdclass = {} # Change the PACKAGE_NAME only to change folder and different name PACKAGE_NAME = "azure-mgmt-relay" -PACKAGE_PPRINT_NAME = "Relay" +PACKAGE_PPRINT_NAME = "MyService Management" # a-b-c => a/b/c package_folder_path = PACKAGE_NAME.replace('-', '/') @@ -72,13 +66,22 @@ 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'License :: OSI Approved :: MIT License', ], zip_safe=False, - packages=find_packages(exclude=["tests"]), + packages=find_packages(exclude=[ + 'tests', + # Exclude packages that will be covered by PEP420 or nspkg + 'azure', + 'azure.mgmt', + ]), install_requires=[ - 'msrestazure>=0.4.20,<2.0.0', + 'msrest>=0.5.0', + 'msrestazure>=0.4.32,<2.0.0', 'azure-common~=1.1', ], - cmdclass=cmdclass + extras_require={ + ":python_version<'3.0'": ['azure-mgmt-nspkg'], + } )