diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_my_sql_management_client.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_my_sql_management_client.py index ad62412a54a4..f30655f43804 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_my_sql_management_client.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/_my_sql_management_client.py @@ -21,6 +21,7 @@ from .operations import DatabasesOperations from .operations import ConfigurationsOperations from .operations import LogFilesOperations +from .operations import ServerAdministratorsOperations from .operations import LocationBasedPerformanceTierOperations from .operations import CheckNameAvailabilityOperations from .operations import ServerSecurityAlertPoliciesOperations @@ -57,6 +58,8 @@ class MySQLManagementClient(MySQLManagementClientOperationsMixin, SDKClient): :vartype configurations: azure.mgmt.rdbms.mysql.operations.ConfigurationsOperations :ivar log_files: LogFiles operations :vartype log_files: azure.mgmt.rdbms.mysql.operations.LogFilesOperations + :ivar server_administrators: ServerAdministrators operations + :vartype server_administrators: azure.mgmt.rdbms.mysql.operations.ServerAdministratorsOperations :ivar location_based_performance_tier: LocationBasedPerformanceTier operations :vartype location_based_performance_tier: azure.mgmt.rdbms.mysql.operations.LocationBasedPerformanceTierOperations :ivar check_name_availability: CheckNameAvailability operations @@ -116,6 +119,8 @@ def __init__( self._client, self.config, self._serialize, self._deserialize) self.log_files = LogFilesOperations( self._client, self.config, self._serialize, self._deserialize) + self.server_administrators = ServerAdministratorsOperations( + self._client, self.config, self._serialize, self._deserialize) self.location_based_performance_tier = LocationBasedPerformanceTierOperations( self._client, self.config, self._serialize, self._deserialize) self.check_name_availability = CheckNameAvailabilityOperations( diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/__init__.py index d6512b81821c..95387b38efcf 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/__init__.py @@ -37,8 +37,13 @@ from ._models_py3 import RecommendationActionsResultList from ._models_py3 import RecommendedActionSessionsOperationStatus from ._models_py3 import Resource + from ._models_py3 import ResourceIdentity from ._models_py3 import Server + from ._models_py3 import ServerAdministratorResource from ._models_py3 import ServerForCreate + from ._models_py3 import ServerPrivateEndpointConnection + from ._models_py3 import ServerPrivateEndpointConnectionProperties + from ._models_py3 import ServerPrivateLinkServiceConnectionStateProperty from ._models_py3 import ServerPropertiesForCreate from ._models_py3 import ServerPropertiesForDefaultCreate from ._models_py3 import ServerPropertiesForGeoRestore @@ -82,8 +87,13 @@ from ._models import RecommendationActionsResultList from ._models import RecommendedActionSessionsOperationStatus from ._models import Resource + from ._models import ResourceIdentity from ._models import Server + from ._models import ServerAdministratorResource from ._models import ServerForCreate + from ._models import ServerPrivateEndpointConnection + from ._models import ServerPrivateEndpointConnectionProperties + from ._models import ServerPrivateLinkServiceConnectionStateProperty from ._models import ServerPropertiesForCreate from ._models import ServerPropertiesForDefaultCreate from ._models import ServerPropertiesForGeoRestore @@ -110,16 +120,24 @@ from ._paged_models import QueryStatisticPaged from ._paged_models import QueryTextPaged from ._paged_models import RecommendationActionPaged +from ._paged_models import ServerAdministratorResourcePaged from ._paged_models import ServerPaged from ._paged_models import VirtualNetworkRulePaged from ._paged_models import WaitStatisticPaged from ._my_sql_management_client_enums import ( ServerVersion, SslEnforcementEnum, + MinimalTlsVersionEnum, + PrivateLinkServiceConnectionStateStatus, + PrivateLinkServiceConnectionStateActionsRequire, + PrivateEndpointProvisioningState, + InfrastructureEncryption, ServerState, GeoRedundantBackup, StorageAutogrow, + PublicNetworkAccessEnum, SkuTier, + IdentityType, VirtualNetworkRuleState, OperationOrigin, ServerSecurityAlertPolicyState, @@ -153,8 +171,13 @@ 'RecommendationActionsResultList', 'RecommendedActionSessionsOperationStatus', 'Resource', + 'ResourceIdentity', 'Server', + 'ServerAdministratorResource', 'ServerForCreate', + 'ServerPrivateEndpointConnection', + 'ServerPrivateEndpointConnectionProperties', + 'ServerPrivateLinkServiceConnectionStateProperty', 'ServerPropertiesForCreate', 'ServerPropertiesForDefaultCreate', 'ServerPropertiesForGeoRestore', @@ -176,6 +199,7 @@ 'DatabasePaged', 'ConfigurationPaged', 'LogFilePaged', + 'ServerAdministratorResourcePaged', 'PerformanceTierPropertiesPaged', 'QueryTextPaged', 'QueryStatisticPaged', @@ -186,10 +210,17 @@ 'PrivateLinkResourcePaged', 'ServerVersion', 'SslEnforcementEnum', + 'MinimalTlsVersionEnum', + 'PrivateLinkServiceConnectionStateStatus', + 'PrivateLinkServiceConnectionStateActionsRequire', + 'PrivateEndpointProvisioningState', + 'InfrastructureEncryption', 'ServerState', 'GeoRedundantBackup', 'StorageAutogrow', + 'PublicNetworkAccessEnum', 'SkuTier', + 'IdentityType', 'VirtualNetworkRuleState', 'OperationOrigin', 'ServerSecurityAlertPolicyState', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models.py index 2b9b48040133..1b600e33dab6 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models.py @@ -1065,6 +1065,40 @@ def __init__(self, **kwargs): self.status = kwargs.get('status', None) +class ResourceIdentity(Model): + """Azure Active Directory identity configuration for a resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar principal_id: The Azure Active Directory principal id. + :vartype principal_id: str + :param type: The identity type. Set this to 'SystemAssigned' in order to + automatically create and assign an Azure Active Directory principal for + the resource. Possible values include: 'SystemAssigned' + :type type: str or ~azure.mgmt.rdbms.mysql.models.IdentityType + :ivar tenant_id: The Azure Active Directory tenant id. + :vartype tenant_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ResourceIdentity, self).__init__(**kwargs) + self.principal_id = None + self.type = kwargs.get('type', None) + self.tenant_id = None + + class TrackedResource(Resource): """The resource model definition for a ARM tracked top level resource. @@ -1128,6 +1162,8 @@ class Server(TrackedResource): :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives :type location: str + :param identity: The Azure Active Directory identity of the server. + :type identity: ~azure.mgmt.rdbms.mysql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. :type sku: ~azure.mgmt.rdbms.mysql.models.Sku :param administrator_login: The administrator's login name of a server. @@ -1141,8 +1177,21 @@ class Server(TrackedResource): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum + :ivar byok_enforcement: Status showing whether the server data encryption + is enabled with customer-managed keys. + :vartype byok_enforcement: str + :param infrastructure_encryption: Status showing whether the server + enabled infrastructure encryption. Possible values include: 'Enabled', + 'Disabled' + :type infrastructure_encryption: str or + ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param user_visible_state: A state of a server that is visible to user. - Possible values include: 'Ready', 'Dropping', 'Disabled' + Possible values include: 'Ready', 'Dropping', 'Disabled', 'Inaccessible' :type user_visible_state: str or ~azure.mgmt.rdbms.mysql.models.ServerState :param fully_qualified_domain_name: The fully qualified domain name of a @@ -1160,6 +1209,15 @@ class Server(TrackedResource): :param replica_capacity: The maximum number of replicas that a master server can have. :type replica_capacity: int + :param public_network_access: Whether or not public endpoint access is + allowed for this server. Value is optional but if passed in, must be + 'Enabled' or 'Disabled'. Possible values include: 'Enabled', 'Disabled' + :type public_network_access: str or + ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum + :ivar private_endpoint_connections: List of private endpoint connections + on a server + :vartype private_endpoint_connections: + list[~azure.mgmt.rdbms.mysql.models.ServerPrivateEndpointConnection] """ _validation = { @@ -1167,7 +1225,9 @@ class Server(TrackedResource): 'name': {'readonly': True}, 'type': {'readonly': True}, 'location': {'required': True}, + 'byok_enforcement': {'readonly': True}, 'replica_capacity': {'minimum': 0}, + 'private_endpoint_connections': {'readonly': True}, } _attribute_map = { @@ -1176,10 +1236,14 @@ class Server(TrackedResource): 'type': {'key': 'type', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, 'location': {'key': 'location', 'type': 'str'}, + 'identity': {'key': 'identity', 'type': 'ResourceIdentity'}, 'sku': {'key': 'sku', 'type': 'Sku'}, 'administrator_login': {'key': 'properties.administratorLogin', 'type': 'str'}, 'version': {'key': 'properties.version', 'type': 'str'}, 'ssl_enforcement': {'key': 'properties.sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'properties.minimalTlsVersion', 'type': 'str'}, + 'byok_enforcement': {'key': 'properties.byokEnforcement', 'type': 'str'}, + 'infrastructure_encryption': {'key': 'properties.infrastructureEncryption', 'type': 'str'}, 'user_visible_state': {'key': 'properties.userVisibleState', 'type': 'str'}, 'fully_qualified_domain_name': {'key': 'properties.fullyQualifiedDomainName', 'type': 'str'}, 'earliest_restore_date': {'key': 'properties.earliestRestoreDate', 'type': 'iso-8601'}, @@ -1187,14 +1251,20 @@ class Server(TrackedResource): 'replication_role': {'key': 'properties.replicationRole', 'type': 'str'}, 'master_server_id': {'key': 'properties.masterServerId', 'type': 'str'}, 'replica_capacity': {'key': 'properties.replicaCapacity', 'type': 'int'}, + 'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'}, + 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[ServerPrivateEndpointConnection]'}, } def __init__(self, **kwargs): super(Server, self).__init__(**kwargs) + self.identity = kwargs.get('identity', None) self.sku = kwargs.get('sku', None) self.administrator_login = kwargs.get('administrator_login', None) self.version = kwargs.get('version', None) self.ssl_enforcement = kwargs.get('ssl_enforcement', None) + self.minimal_tls_version = kwargs.get('minimal_tls_version', None) + self.byok_enforcement = None + self.infrastructure_encryption = kwargs.get('infrastructure_encryption', None) self.user_visible_state = kwargs.get('user_visible_state', None) self.fully_qualified_domain_name = kwargs.get('fully_qualified_domain_name', None) self.earliest_restore_date = kwargs.get('earliest_restore_date', None) @@ -1202,6 +1272,65 @@ def __init__(self, **kwargs): self.replication_role = kwargs.get('replication_role', None) self.master_server_id = kwargs.get('master_server_id', None) self.replica_capacity = kwargs.get('replica_capacity', None) + self.public_network_access = kwargs.get('public_network_access', None) + self.private_endpoint_connections = None + + +class ServerAdministratorResource(ProxyResource): + """Represents a and external administrator to be created. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar administrator_type: Required. The type of administrator. Default + value: "ActiveDirectory" . + :vartype administrator_type: str + :param login: Required. The server administrator login account name. + :type login: str + :param sid: Required. The server administrator Sid (Secure ID). + :type sid: str + :param tenant_id: Required. The server Active Directory Administrator + tenant id. + :type tenant_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'administrator_type': {'required': True, 'constant': True}, + 'login': {'required': True}, + 'sid': {'required': True}, + 'tenant_id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'administrator_type': {'key': 'properties.administratorType', 'type': 'str'}, + 'login': {'key': 'properties.login', 'type': 'str'}, + 'sid': {'key': 'properties.sid', 'type': 'str'}, + 'tenant_id': {'key': 'properties.tenantId', 'type': 'str'}, + } + + administrator_type = "ActiveDirectory" + + def __init__(self, **kwargs): + super(ServerAdministratorResource, self).__init__(**kwargs) + self.login = kwargs.get('login', None) + self.sid = kwargs.get('sid', None) + self.tenant_id = kwargs.get('tenant_id', None) class ServerForCreate(Model): @@ -1239,6 +1368,112 @@ def __init__(self, **kwargs): self.tags = kwargs.get('tags', None) +class ServerPrivateEndpointConnection(Model): + """A private endpoint connection under a server. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource Id of the private endpoint connection. + :vartype id: str + :ivar properties: Private endpoint connection properties + :vartype properties: + ~azure.mgmt.rdbms.mysql.models.ServerPrivateEndpointConnectionProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'properties': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ServerPrivateEndpointConnectionProperties'}, + } + + def __init__(self, **kwargs): + super(ServerPrivateEndpointConnection, self).__init__(**kwargs) + self.id = None + self.properties = None + + +class ServerPrivateEndpointConnectionProperties(Model): + """Properties of a private endpoint connection. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param private_endpoint: Private endpoint which the connection belongs to. + :type private_endpoint: + ~azure.mgmt.rdbms.mysql.models.PrivateEndpointProperty + :param private_link_service_connection_state: Connection state of the + private endpoint connection. + :type private_link_service_connection_state: + ~azure.mgmt.rdbms.mysql.models.ServerPrivateLinkServiceConnectionStateProperty + :ivar provisioning_state: State of the private endpoint connection. + Possible values include: 'Approving', 'Ready', 'Dropping', 'Failed', + 'Rejecting' + :vartype provisioning_state: str or + ~azure.mgmt.rdbms.mysql.models.PrivateEndpointProvisioningState + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'private_endpoint': {'key': 'privateEndpoint', 'type': 'PrivateEndpointProperty'}, + 'private_link_service_connection_state': {'key': 'privateLinkServiceConnectionState', 'type': 'ServerPrivateLinkServiceConnectionStateProperty'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ServerPrivateEndpointConnectionProperties, self).__init__(**kwargs) + self.private_endpoint = kwargs.get('private_endpoint', None) + self.private_link_service_connection_state = kwargs.get('private_link_service_connection_state', None) + self.provisioning_state = None + + +class ServerPrivateLinkServiceConnectionStateProperty(Model): + """ServerPrivateLinkServiceConnectionStateProperty. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The private link service connection status. + Possible values include: 'Approved', 'Pending', 'Rejected', 'Disconnected' + :type status: str or + ~azure.mgmt.rdbms.mysql.models.PrivateLinkServiceConnectionStateStatus + :param description: Required. The private link service connection + description. + :type description: str + :ivar actions_required: The actions required for private link service + connection. Possible values include: 'None' + :vartype actions_required: str or + ~azure.mgmt.rdbms.mysql.models.PrivateLinkServiceConnectionStateActionsRequire + """ + + _validation = { + 'status': {'required': True}, + 'description': {'required': True}, + 'actions_required': {'readonly': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'actions_required': {'key': 'actionsRequired', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ServerPrivateLinkServiceConnectionStateProperty, self).__init__(**kwargs) + self.status = kwargs.get('status', None) + self.description = kwargs.get('description', None) + self.actions_required = None + + class ServerPropertiesForCreate(Model): """The properties used to create a new server. @@ -1256,6 +1491,11 @@ class ServerPropertiesForCreate(Model): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param storage_profile: Storage profile of a server. :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. Constant filled by server. @@ -1269,6 +1509,7 @@ class ServerPropertiesForCreate(Model): _attribute_map = { 'version': {'key': 'version', 'type': 'str'}, 'ssl_enforcement': {'key': 'sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'minimalTlsVersion', 'type': 'str'}, 'storage_profile': {'key': 'storageProfile', 'type': 'StorageProfile'}, 'create_mode': {'key': 'createMode', 'type': 'str'}, } @@ -1281,6 +1522,7 @@ def __init__(self, **kwargs): super(ServerPropertiesForCreate, self).__init__(**kwargs) self.version = kwargs.get('version', None) self.ssl_enforcement = kwargs.get('ssl_enforcement', None) + self.minimal_tls_version = kwargs.get('minimal_tls_version', None) self.storage_profile = kwargs.get('storage_profile', None) self.create_mode = None @@ -1297,6 +1539,11 @@ class ServerPropertiesForDefaultCreate(ServerPropertiesForCreate): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param storage_profile: Storage profile of a server. :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. Constant filled by server. @@ -1319,6 +1566,7 @@ class ServerPropertiesForDefaultCreate(ServerPropertiesForCreate): _attribute_map = { 'version': {'key': 'version', 'type': 'str'}, 'ssl_enforcement': {'key': 'sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'minimalTlsVersion', 'type': 'str'}, 'storage_profile': {'key': 'storageProfile', 'type': 'StorageProfile'}, 'create_mode': {'key': 'createMode', 'type': 'str'}, 'administrator_login': {'key': 'administratorLogin', 'type': 'str'}, @@ -1345,6 +1593,11 @@ class ServerPropertiesForGeoRestore(ServerPropertiesForCreate): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param storage_profile: Storage profile of a server. :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. Constant filled by server. @@ -1361,6 +1614,7 @@ class ServerPropertiesForGeoRestore(ServerPropertiesForCreate): _attribute_map = { 'version': {'key': 'version', 'type': 'str'}, 'ssl_enforcement': {'key': 'sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'minimalTlsVersion', 'type': 'str'}, 'storage_profile': {'key': 'storageProfile', 'type': 'StorageProfile'}, 'create_mode': {'key': 'createMode', 'type': 'str'}, 'source_server_id': {'key': 'sourceServerId', 'type': 'str'}, @@ -1384,6 +1638,11 @@ class ServerPropertiesForReplica(ServerPropertiesForCreate): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param storage_profile: Storage profile of a server. :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. Constant filled by server. @@ -1401,6 +1660,7 @@ class ServerPropertiesForReplica(ServerPropertiesForCreate): _attribute_map = { 'version': {'key': 'version', 'type': 'str'}, 'ssl_enforcement': {'key': 'sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'minimalTlsVersion', 'type': 'str'}, 'storage_profile': {'key': 'storageProfile', 'type': 'StorageProfile'}, 'create_mode': {'key': 'createMode', 'type': 'str'}, 'source_server_id': {'key': 'sourceServerId', 'type': 'str'}, @@ -1424,6 +1684,11 @@ class ServerPropertiesForRestore(ServerPropertiesForCreate): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param storage_profile: Storage profile of a server. :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. Constant filled by server. @@ -1444,6 +1709,7 @@ class ServerPropertiesForRestore(ServerPropertiesForCreate): _attribute_map = { 'version': {'key': 'version', 'type': 'str'}, 'ssl_enforcement': {'key': 'sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'minimalTlsVersion', 'type': 'str'}, 'storage_profile': {'key': 'storageProfile', 'type': 'StorageProfile'}, 'create_mode': {'key': 'createMode', 'type': 'str'}, 'source_server_id': {'key': 'sourceServerId', 'type': 'str'}, @@ -1547,6 +1813,11 @@ class ServerUpdateParameters(Model): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param replication_role: The replication role of the server. :type replication_role: str :param tags: Application-specific metadata in the form of key-value pairs. @@ -1559,6 +1830,7 @@ class ServerUpdateParameters(Model): 'administrator_login_password': {'key': 'properties.administratorLoginPassword', 'type': 'str'}, 'version': {'key': 'properties.version', 'type': 'str'}, 'ssl_enforcement': {'key': 'properties.sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'properties.minimalTlsVersion', 'type': 'str'}, 'replication_role': {'key': 'properties.replicationRole', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, } @@ -1570,6 +1842,7 @@ def __init__(self, **kwargs): self.administrator_login_password = kwargs.get('administrator_login_password', None) self.version = kwargs.get('version', None) self.ssl_enforcement = kwargs.get('ssl_enforcement', None) + self.minimal_tls_version = kwargs.get('minimal_tls_version', None) self.replication_role = kwargs.get('replication_role', None) self.tags = kwargs.get('tags', None) diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models_py3.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models_py3.py index e44e5a637dac..b3ead6c2c845 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models_py3.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_models_py3.py @@ -1065,6 +1065,40 @@ def __init__(self, *, name: str=None, start_time=None, status: str=None, **kwarg self.status = status +class ResourceIdentity(Model): + """Azure Active Directory identity configuration for a resource. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar principal_id: The Azure Active Directory principal id. + :vartype principal_id: str + :param type: The identity type. Set this to 'SystemAssigned' in order to + automatically create and assign an Azure Active Directory principal for + the resource. Possible values include: 'SystemAssigned' + :type type: str or ~azure.mgmt.rdbms.mysql.models.IdentityType + :ivar tenant_id: The Azure Active Directory tenant id. + :vartype tenant_id: str + """ + + _validation = { + 'principal_id': {'readonly': True}, + 'tenant_id': {'readonly': True}, + } + + _attribute_map = { + 'principal_id': {'key': 'principalId', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tenant_id': {'key': 'tenantId', 'type': 'str'}, + } + + def __init__(self, *, type=None, **kwargs) -> None: + super(ResourceIdentity, self).__init__(**kwargs) + self.principal_id = None + self.type = type + self.tenant_id = None + + class TrackedResource(Resource): """The resource model definition for a ARM tracked top level resource. @@ -1128,6 +1162,8 @@ class Server(TrackedResource): :type tags: dict[str, str] :param location: Required. The geo-location where the resource lives :type location: str + :param identity: The Azure Active Directory identity of the server. + :type identity: ~azure.mgmt.rdbms.mysql.models.ResourceIdentity :param sku: The SKU (pricing tier) of the server. :type sku: ~azure.mgmt.rdbms.mysql.models.Sku :param administrator_login: The administrator's login name of a server. @@ -1141,8 +1177,21 @@ class Server(TrackedResource): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum + :ivar byok_enforcement: Status showing whether the server data encryption + is enabled with customer-managed keys. + :vartype byok_enforcement: str + :param infrastructure_encryption: Status showing whether the server + enabled infrastructure encryption. Possible values include: 'Enabled', + 'Disabled' + :type infrastructure_encryption: str or + ~azure.mgmt.rdbms.mysql.models.InfrastructureEncryption :param user_visible_state: A state of a server that is visible to user. - Possible values include: 'Ready', 'Dropping', 'Disabled' + Possible values include: 'Ready', 'Dropping', 'Disabled', 'Inaccessible' :type user_visible_state: str or ~azure.mgmt.rdbms.mysql.models.ServerState :param fully_qualified_domain_name: The fully qualified domain name of a @@ -1160,6 +1209,15 @@ class Server(TrackedResource): :param replica_capacity: The maximum number of replicas that a master server can have. :type replica_capacity: int + :param public_network_access: Whether or not public endpoint access is + allowed for this server. Value is optional but if passed in, must be + 'Enabled' or 'Disabled'. Possible values include: 'Enabled', 'Disabled' + :type public_network_access: str or + ~azure.mgmt.rdbms.mysql.models.PublicNetworkAccessEnum + :ivar private_endpoint_connections: List of private endpoint connections + on a server + :vartype private_endpoint_connections: + list[~azure.mgmt.rdbms.mysql.models.ServerPrivateEndpointConnection] """ _validation = { @@ -1167,7 +1225,9 @@ class Server(TrackedResource): 'name': {'readonly': True}, 'type': {'readonly': True}, 'location': {'required': True}, + 'byok_enforcement': {'readonly': True}, 'replica_capacity': {'minimum': 0}, + 'private_endpoint_connections': {'readonly': True}, } _attribute_map = { @@ -1176,10 +1236,14 @@ class Server(TrackedResource): 'type': {'key': 'type', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, 'location': {'key': 'location', 'type': 'str'}, + 'identity': {'key': 'identity', 'type': 'ResourceIdentity'}, 'sku': {'key': 'sku', 'type': 'Sku'}, 'administrator_login': {'key': 'properties.administratorLogin', 'type': 'str'}, 'version': {'key': 'properties.version', 'type': 'str'}, 'ssl_enforcement': {'key': 'properties.sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'properties.minimalTlsVersion', 'type': 'str'}, + 'byok_enforcement': {'key': 'properties.byokEnforcement', 'type': 'str'}, + 'infrastructure_encryption': {'key': 'properties.infrastructureEncryption', 'type': 'str'}, 'user_visible_state': {'key': 'properties.userVisibleState', 'type': 'str'}, 'fully_qualified_domain_name': {'key': 'properties.fullyQualifiedDomainName', 'type': 'str'}, 'earliest_restore_date': {'key': 'properties.earliestRestoreDate', 'type': 'iso-8601'}, @@ -1187,14 +1251,20 @@ class Server(TrackedResource): 'replication_role': {'key': 'properties.replicationRole', 'type': 'str'}, 'master_server_id': {'key': 'properties.masterServerId', 'type': 'str'}, 'replica_capacity': {'key': 'properties.replicaCapacity', 'type': 'int'}, + 'public_network_access': {'key': 'properties.publicNetworkAccess', 'type': 'str'}, + 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[ServerPrivateEndpointConnection]'}, } - def __init__(self, *, location: str, tags=None, sku=None, administrator_login: str=None, version=None, ssl_enforcement=None, user_visible_state=None, fully_qualified_domain_name: str=None, earliest_restore_date=None, storage_profile=None, replication_role: str=None, master_server_id: str=None, replica_capacity: int=None, **kwargs) -> None: + def __init__(self, *, location: str, tags=None, identity=None, sku=None, administrator_login: str=None, version=None, ssl_enforcement=None, minimal_tls_version=None, infrastructure_encryption=None, user_visible_state=None, fully_qualified_domain_name: str=None, earliest_restore_date=None, storage_profile=None, replication_role: str=None, master_server_id: str=None, replica_capacity: int=None, public_network_access=None, **kwargs) -> None: super(Server, self).__init__(tags=tags, location=location, **kwargs) + self.identity = identity self.sku = sku self.administrator_login = administrator_login self.version = version self.ssl_enforcement = ssl_enforcement + self.minimal_tls_version = minimal_tls_version + self.byok_enforcement = None + self.infrastructure_encryption = infrastructure_encryption self.user_visible_state = user_visible_state self.fully_qualified_domain_name = fully_qualified_domain_name self.earliest_restore_date = earliest_restore_date @@ -1202,6 +1272,65 @@ def __init__(self, *, location: str, tags=None, sku=None, administrator_login: s self.replication_role = replication_role self.master_server_id = master_server_id self.replica_capacity = replica_capacity + self.public_network_access = public_network_access + self.private_endpoint_connections = None + + +class ServerAdministratorResource(ProxyResource): + """Represents a and external administrator to be created. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar id: Fully qualified resource Id for the resource. Ex - + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + :vartype id: str + :ivar name: The name of the resource + :vartype name: str + :ivar type: The type of the resource. Ex- + Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts. + :vartype type: str + :ivar administrator_type: Required. The type of administrator. Default + value: "ActiveDirectory" . + :vartype administrator_type: str + :param login: Required. The server administrator login account name. + :type login: str + :param sid: Required. The server administrator Sid (Secure ID). + :type sid: str + :param tenant_id: Required. The server Active Directory Administrator + tenant id. + :type tenant_id: str + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + 'administrator_type': {'required': True, 'constant': True}, + 'login': {'required': True}, + 'sid': {'required': True}, + 'tenant_id': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'administrator_type': {'key': 'properties.administratorType', 'type': 'str'}, + 'login': {'key': 'properties.login', 'type': 'str'}, + 'sid': {'key': 'properties.sid', 'type': 'str'}, + 'tenant_id': {'key': 'properties.tenantId', 'type': 'str'}, + } + + administrator_type = "ActiveDirectory" + + def __init__(self, *, login: str, sid: str, tenant_id: str, **kwargs) -> None: + super(ServerAdministratorResource, self).__init__(**kwargs) + self.login = login + self.sid = sid + self.tenant_id = tenant_id class ServerForCreate(Model): @@ -1239,6 +1368,112 @@ def __init__(self, *, properties, location: str, sku=None, tags=None, **kwargs) self.tags = tags +class ServerPrivateEndpointConnection(Model): + """A private endpoint connection under a server. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar id: Resource Id of the private endpoint connection. + :vartype id: str + :ivar properties: Private endpoint connection properties + :vartype properties: + ~azure.mgmt.rdbms.mysql.models.ServerPrivateEndpointConnectionProperties + """ + + _validation = { + 'id': {'readonly': True}, + 'properties': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'properties': {'key': 'properties', 'type': 'ServerPrivateEndpointConnectionProperties'}, + } + + def __init__(self, **kwargs) -> None: + super(ServerPrivateEndpointConnection, self).__init__(**kwargs) + self.id = None + self.properties = None + + +class ServerPrivateEndpointConnectionProperties(Model): + """Properties of a private endpoint connection. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :param private_endpoint: Private endpoint which the connection belongs to. + :type private_endpoint: + ~azure.mgmt.rdbms.mysql.models.PrivateEndpointProperty + :param private_link_service_connection_state: Connection state of the + private endpoint connection. + :type private_link_service_connection_state: + ~azure.mgmt.rdbms.mysql.models.ServerPrivateLinkServiceConnectionStateProperty + :ivar provisioning_state: State of the private endpoint connection. + Possible values include: 'Approving', 'Ready', 'Dropping', 'Failed', + 'Rejecting' + :vartype provisioning_state: str or + ~azure.mgmt.rdbms.mysql.models.PrivateEndpointProvisioningState + """ + + _validation = { + 'provisioning_state': {'readonly': True}, + } + + _attribute_map = { + 'private_endpoint': {'key': 'privateEndpoint', 'type': 'PrivateEndpointProperty'}, + 'private_link_service_connection_state': {'key': 'privateLinkServiceConnectionState', 'type': 'ServerPrivateLinkServiceConnectionStateProperty'}, + 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, + } + + def __init__(self, *, private_endpoint=None, private_link_service_connection_state=None, **kwargs) -> None: + super(ServerPrivateEndpointConnectionProperties, self).__init__(**kwargs) + self.private_endpoint = private_endpoint + self.private_link_service_connection_state = private_link_service_connection_state + self.provisioning_state = None + + +class ServerPrivateLinkServiceConnectionStateProperty(Model): + """ServerPrivateLinkServiceConnectionStateProperty. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param status: Required. The private link service connection status. + Possible values include: 'Approved', 'Pending', 'Rejected', 'Disconnected' + :type status: str or + ~azure.mgmt.rdbms.mysql.models.PrivateLinkServiceConnectionStateStatus + :param description: Required. The private link service connection + description. + :type description: str + :ivar actions_required: The actions required for private link service + connection. Possible values include: 'None' + :vartype actions_required: str or + ~azure.mgmt.rdbms.mysql.models.PrivateLinkServiceConnectionStateActionsRequire + """ + + _validation = { + 'status': {'required': True}, + 'description': {'required': True}, + 'actions_required': {'readonly': True}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + 'actions_required': {'key': 'actionsRequired', 'type': 'str'}, + } + + def __init__(self, *, status, description: str, **kwargs) -> None: + super(ServerPrivateLinkServiceConnectionStateProperty, self).__init__(**kwargs) + self.status = status + self.description = description + self.actions_required = None + + class ServerPropertiesForCreate(Model): """The properties used to create a new server. @@ -1256,6 +1491,11 @@ class ServerPropertiesForCreate(Model): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param storage_profile: Storage profile of a server. :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. Constant filled by server. @@ -1269,6 +1509,7 @@ class ServerPropertiesForCreate(Model): _attribute_map = { 'version': {'key': 'version', 'type': 'str'}, 'ssl_enforcement': {'key': 'sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'minimalTlsVersion', 'type': 'str'}, 'storage_profile': {'key': 'storageProfile', 'type': 'StorageProfile'}, 'create_mode': {'key': 'createMode', 'type': 'str'}, } @@ -1277,10 +1518,11 @@ class ServerPropertiesForCreate(Model): 'create_mode': {'Default': 'ServerPropertiesForDefaultCreate', 'PointInTimeRestore': 'ServerPropertiesForRestore', 'GeoRestore': 'ServerPropertiesForGeoRestore', 'Replica': 'ServerPropertiesForReplica'} } - def __init__(self, *, version=None, ssl_enforcement=None, storage_profile=None, **kwargs) -> None: + def __init__(self, *, version=None, ssl_enforcement=None, minimal_tls_version=None, storage_profile=None, **kwargs) -> None: super(ServerPropertiesForCreate, self).__init__(**kwargs) self.version = version self.ssl_enforcement = ssl_enforcement + self.minimal_tls_version = minimal_tls_version self.storage_profile = storage_profile self.create_mode = None @@ -1297,6 +1539,11 @@ class ServerPropertiesForDefaultCreate(ServerPropertiesForCreate): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param storage_profile: Storage profile of a server. :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. Constant filled by server. @@ -1319,14 +1566,15 @@ class ServerPropertiesForDefaultCreate(ServerPropertiesForCreate): _attribute_map = { 'version': {'key': 'version', 'type': 'str'}, 'ssl_enforcement': {'key': 'sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'minimalTlsVersion', 'type': 'str'}, 'storage_profile': {'key': 'storageProfile', 'type': 'StorageProfile'}, 'create_mode': {'key': 'createMode', 'type': 'str'}, 'administrator_login': {'key': 'administratorLogin', 'type': 'str'}, 'administrator_login_password': {'key': 'administratorLoginPassword', 'type': 'str'}, } - def __init__(self, *, administrator_login: str, administrator_login_password: str, version=None, ssl_enforcement=None, storage_profile=None, **kwargs) -> None: - super(ServerPropertiesForDefaultCreate, self).__init__(version=version, ssl_enforcement=ssl_enforcement, storage_profile=storage_profile, **kwargs) + def __init__(self, *, administrator_login: str, administrator_login_password: str, version=None, ssl_enforcement=None, minimal_tls_version=None, storage_profile=None, **kwargs) -> None: + super(ServerPropertiesForDefaultCreate, self).__init__(version=version, ssl_enforcement=ssl_enforcement, minimal_tls_version=minimal_tls_version, storage_profile=storage_profile, **kwargs) self.administrator_login = administrator_login self.administrator_login_password = administrator_login_password self.create_mode = 'Default' @@ -1345,6 +1593,11 @@ class ServerPropertiesForGeoRestore(ServerPropertiesForCreate): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param storage_profile: Storage profile of a server. :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. Constant filled by server. @@ -1361,13 +1614,14 @@ class ServerPropertiesForGeoRestore(ServerPropertiesForCreate): _attribute_map = { 'version': {'key': 'version', 'type': 'str'}, 'ssl_enforcement': {'key': 'sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'minimalTlsVersion', 'type': 'str'}, 'storage_profile': {'key': 'storageProfile', 'type': 'StorageProfile'}, 'create_mode': {'key': 'createMode', 'type': 'str'}, 'source_server_id': {'key': 'sourceServerId', 'type': 'str'}, } - def __init__(self, *, source_server_id: str, version=None, ssl_enforcement=None, storage_profile=None, **kwargs) -> None: - super(ServerPropertiesForGeoRestore, self).__init__(version=version, ssl_enforcement=ssl_enforcement, storage_profile=storage_profile, **kwargs) + def __init__(self, *, source_server_id: str, version=None, ssl_enforcement=None, minimal_tls_version=None, storage_profile=None, **kwargs) -> None: + super(ServerPropertiesForGeoRestore, self).__init__(version=version, ssl_enforcement=ssl_enforcement, minimal_tls_version=minimal_tls_version, storage_profile=storage_profile, **kwargs) self.source_server_id = source_server_id self.create_mode = 'GeoRestore' @@ -1384,6 +1638,11 @@ class ServerPropertiesForReplica(ServerPropertiesForCreate): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param storage_profile: Storage profile of a server. :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. Constant filled by server. @@ -1401,13 +1660,14 @@ class ServerPropertiesForReplica(ServerPropertiesForCreate): _attribute_map = { 'version': {'key': 'version', 'type': 'str'}, 'ssl_enforcement': {'key': 'sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'minimalTlsVersion', 'type': 'str'}, 'storage_profile': {'key': 'storageProfile', 'type': 'StorageProfile'}, 'create_mode': {'key': 'createMode', 'type': 'str'}, 'source_server_id': {'key': 'sourceServerId', 'type': 'str'}, } - def __init__(self, *, source_server_id: str, version=None, ssl_enforcement=None, storage_profile=None, **kwargs) -> None: - super(ServerPropertiesForReplica, self).__init__(version=version, ssl_enforcement=ssl_enforcement, storage_profile=storage_profile, **kwargs) + def __init__(self, *, source_server_id: str, version=None, ssl_enforcement=None, minimal_tls_version=None, storage_profile=None, **kwargs) -> None: + super(ServerPropertiesForReplica, self).__init__(version=version, ssl_enforcement=ssl_enforcement, minimal_tls_version=minimal_tls_version, storage_profile=storage_profile, **kwargs) self.source_server_id = source_server_id self.create_mode = 'Replica' @@ -1424,6 +1684,11 @@ class ServerPropertiesForRestore(ServerPropertiesForCreate): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param storage_profile: Storage profile of a server. :type storage_profile: ~azure.mgmt.rdbms.mysql.models.StorageProfile :param create_mode: Required. Constant filled by server. @@ -1444,14 +1709,15 @@ class ServerPropertiesForRestore(ServerPropertiesForCreate): _attribute_map = { 'version': {'key': 'version', 'type': 'str'}, 'ssl_enforcement': {'key': 'sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'minimalTlsVersion', 'type': 'str'}, 'storage_profile': {'key': 'storageProfile', 'type': 'StorageProfile'}, 'create_mode': {'key': 'createMode', 'type': 'str'}, 'source_server_id': {'key': 'sourceServerId', 'type': 'str'}, 'restore_point_in_time': {'key': 'restorePointInTime', 'type': 'iso-8601'}, } - def __init__(self, *, source_server_id: str, restore_point_in_time, version=None, ssl_enforcement=None, storage_profile=None, **kwargs) -> None: - super(ServerPropertiesForRestore, self).__init__(version=version, ssl_enforcement=ssl_enforcement, storage_profile=storage_profile, **kwargs) + def __init__(self, *, source_server_id: str, restore_point_in_time, version=None, ssl_enforcement=None, minimal_tls_version=None, storage_profile=None, **kwargs) -> None: + super(ServerPropertiesForRestore, self).__init__(version=version, ssl_enforcement=ssl_enforcement, minimal_tls_version=minimal_tls_version, storage_profile=storage_profile, **kwargs) self.source_server_id = source_server_id self.restore_point_in_time = restore_point_in_time self.create_mode = 'PointInTimeRestore' @@ -1547,6 +1813,11 @@ class ServerUpdateParameters(Model): server. Possible values include: 'Enabled', 'Disabled' :type ssl_enforcement: str or ~azure.mgmt.rdbms.mysql.models.SslEnforcementEnum + :param minimal_tls_version: Enforce a minimal Tls version for the server. + Possible values include: 'TLS1_0', 'TLS1_1', 'TLS1_2', + 'TLSEnforcementDisabled' + :type minimal_tls_version: str or + ~azure.mgmt.rdbms.mysql.models.MinimalTlsVersionEnum :param replication_role: The replication role of the server. :type replication_role: str :param tags: Application-specific metadata in the form of key-value pairs. @@ -1559,17 +1830,19 @@ class ServerUpdateParameters(Model): 'administrator_login_password': {'key': 'properties.administratorLoginPassword', 'type': 'str'}, 'version': {'key': 'properties.version', 'type': 'str'}, 'ssl_enforcement': {'key': 'properties.sslEnforcement', 'type': 'SslEnforcementEnum'}, + 'minimal_tls_version': {'key': 'properties.minimalTlsVersion', 'type': 'str'}, 'replication_role': {'key': 'properties.replicationRole', 'type': 'str'}, 'tags': {'key': 'tags', 'type': '{str}'}, } - def __init__(self, *, sku=None, storage_profile=None, administrator_login_password: str=None, version=None, ssl_enforcement=None, replication_role: str=None, tags=None, **kwargs) -> None: + def __init__(self, *, sku=None, storage_profile=None, administrator_login_password: str=None, version=None, ssl_enforcement=None, minimal_tls_version=None, replication_role: str=None, tags=None, **kwargs) -> None: super(ServerUpdateParameters, self).__init__(**kwargs) self.sku = sku self.storage_profile = storage_profile self.administrator_login_password = administrator_login_password self.version = version self.ssl_enforcement = ssl_enforcement + self.minimal_tls_version = minimal_tls_version self.replication_role = replication_role self.tags = tags diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_my_sql_management_client_enums.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_my_sql_management_client_enums.py index 02e5f8b4f85f..9e29760fd84b 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_my_sql_management_client_enums.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_my_sql_management_client_enums.py @@ -25,11 +25,48 @@ class SslEnforcementEnum(str, Enum): disabled = "Disabled" +class MinimalTlsVersionEnum(str, Enum): + + tls1_0 = "TLS1_0" + tls1_1 = "TLS1_1" + tls1_2 = "TLS1_2" + tls_enforcement_disabled = "TLSEnforcementDisabled" + + +class PrivateLinkServiceConnectionStateStatus(str, Enum): + + approved = "Approved" + pending = "Pending" + rejected = "Rejected" + disconnected = "Disconnected" + + +class PrivateLinkServiceConnectionStateActionsRequire(str, Enum): + + none = "None" + + +class PrivateEndpointProvisioningState(str, Enum): + + approving = "Approving" + ready = "Ready" + dropping = "Dropping" + failed = "Failed" + rejecting = "Rejecting" + + +class InfrastructureEncryption(str, Enum): + + enabled = "Enabled" + disabled = "Disabled" + + class ServerState(str, Enum): ready = "Ready" dropping = "Dropping" disabled = "Disabled" + inaccessible = "Inaccessible" class GeoRedundantBackup(str, Enum): @@ -44,6 +81,12 @@ class StorageAutogrow(str, Enum): disabled = "Disabled" +class PublicNetworkAccessEnum(str, Enum): + + enabled = "Enabled" + disabled = "Disabled" + + class SkuTier(str, Enum): basic = "Basic" @@ -51,6 +94,11 @@ class SkuTier(str, Enum): memory_optimized = "MemoryOptimized" +class IdentityType(str, Enum): + + system_assigned = "SystemAssigned" + + class VirtualNetworkRuleState(str, Enum): initializing = "Initializing" diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_paged_models.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_paged_models.py index 4710c3578dd2..92e932f2c861 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_paged_models.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/models/_paged_models.py @@ -90,6 +90,19 @@ class LogFilePaged(Paged): def __init__(self, *args, **kwargs): super(LogFilePaged, self).__init__(*args, **kwargs) +class ServerAdministratorResourcePaged(Paged): + """ + A paging container for iterating over a list of :class:`ServerAdministratorResource ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[ServerAdministratorResource]'} + } + + def __init__(self, *args, **kwargs): + + super(ServerAdministratorResourcePaged, self).__init__(*args, **kwargs) class PerformanceTierPropertiesPaged(Paged): """ A paging container for iterating over a list of :class:`PerformanceTierProperties ` object diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/__init__.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/__init__.py index e565fde9f84b..808bee3107c5 100644 --- a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/__init__.py +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/__init__.py @@ -16,6 +16,7 @@ from ._databases_operations import DatabasesOperations from ._configurations_operations import ConfigurationsOperations from ._log_files_operations import LogFilesOperations +from ._server_administrators_operations import ServerAdministratorsOperations from ._location_based_performance_tier_operations import LocationBasedPerformanceTierOperations from ._check_name_availability_operations import CheckNameAvailabilityOperations from ._server_security_alert_policies_operations import ServerSecurityAlertPoliciesOperations @@ -39,6 +40,7 @@ 'DatabasesOperations', 'ConfigurationsOperations', 'LogFilesOperations', + 'ServerAdministratorsOperations', 'LocationBasedPerformanceTierOperations', 'CheckNameAvailabilityOperations', 'ServerSecurityAlertPoliciesOperations', diff --git a/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_administrators_operations.py b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_administrators_operations.py new file mode 100644 index 000000000000..8b2e0f11813b --- /dev/null +++ b/sdk/rdbms/azure-mgmt-rdbms/azure/mgmt/rdbms/mysql/operations/_server_administrators_operations.py @@ -0,0 +1,364 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +import uuid +from msrest.pipeline import ClientRawResponse +from msrestazure.azure_exceptions import CloudError +from msrest.polling import LROPoller, NoPolling +from msrestazure.polling.arm_polling import ARMPolling + +from .. import models + + +class ServerAdministratorsOperations(object): + """ServerAdministratorsOperations operations. + + You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. + + :param client: Client for service requests. + :param config: Configuration of service client. + :param serializer: An object model serializer. + :param deserializer: An object model deserializer. + :ivar api_version: The API version to use for this operation. Constant value: "2017-12-01". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2017-12-01" + + self.config = config + + def get( + self, resource_group_name, server_name, custom_headers=None, raw=False, **operation_config): + """Gets information about a AAD server administrator. + + :param resource_group_name: The name of the resource group. The name + is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_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 + :param operation_config: :ref:`Operation configuration + overrides`. + :return: ServerAdministratorResource or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource or + ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + 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: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + 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, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('ServerAdministratorResource', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/Administrators/activeDirectory'} + + + def _create_or_update_initial( + self, resource_group_name, server_name, properties, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.create_or_update.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # 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()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + body_content = self._serialize.body(properties, 'ServerAdministratorResource') + + # Construct and send request + 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, 202]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('ServerAdministratorResource', response) + if response.status_code == 202: + deserialized = self._deserialize('ServerAdministratorResource', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def create_or_update( + self, resource_group_name, server_name, properties, custom_headers=None, raw=False, polling=True, **operation_config): + """Creates or update active directory administrator on an existing server. + The update action will overwrite the existing administrator. + + :param resource_group_name: The name of the resource group. The name + is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param properties: The required parameters for creating or updating an + AAD server administrator. + :type properties: + ~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource + :param dict custom_headers: headers that will be added to the request + :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 + ServerAdministratorResource or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource]] + :raises: :class:`CloudError` + """ + raw_result = self._create_or_update_initial( + resource_group_name=resource_group_name, + server_name=server_name, + properties=properties, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('ServerAdministratorResource', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.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.DBforMySQL/servers/{serverName}/Administrators/activeDirectory'} + + + def _delete_initial( + self, resource_group_name, server_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.delete.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + # Construct headers + header_parameters = {} + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + 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, header_parameters) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202, 204]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def delete( + self, resource_group_name, server_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Deletes server active directory administrator. + + :param resource_group_name: The name of the resource group. The name + is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_name: str + :param dict custom_headers: headers that will be added to the request + :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 + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + server_name=server_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.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.DBforMySQL/servers/{serverName}/Administrators/activeDirectory'} + + def list( + self, resource_group_name, server_name, custom_headers=None, raw=False, **operation_config): + """Returns a list of server Administrators. + + :param resource_group_name: The name of the resource group. The name + is case insensitive. + :type resource_group_name: str + :param server_name: The name of the server. + :type server_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 + :param operation_config: :ref:`Operation configuration + overrides`. + :return: An iterator like instance of ServerAdministratorResource + :rtype: + ~azure.mgmt.rdbms.mysql.models.ServerAdministratorResourcePaged[~azure.mgmt.rdbms.mysql.models.ServerAdministratorResource] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str', min_length=1), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'serverName': self._serialize.url("server_name", server_name, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str', min_length=1) + + else: + url = next_link + query_parameters = {} + + # Construct headers + header_parameters = {} + 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: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + 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, header_parameters) + return request + + def internal_paging(next_link=None): + request = prepare_request(next_link) + + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + return response + + # Deserialize response + header_dict = None + if raw: + header_dict = {} + deserialized = models.ServerAdministratorResourcePaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}/administrators'}