diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/__init__.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/__init__.py index 038cf4ebc8f2..cb813899061c 100644 --- a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/__init__.py +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/__init__.py @@ -9,10 +9,11 @@ # regenerated. # -------------------------------------------------------------------------- -from .machine_learning_compute_management_client import MachineLearningComputeManagementClient -from .version import VERSION +from ._configuration import MachineLearningComputeManagementClientConfiguration +from ._machine_learning_compute_management_client import MachineLearningComputeManagementClient +__all__ = ['MachineLearningComputeManagementClient', 'MachineLearningComputeManagementClientConfiguration'] -__all__ = ['MachineLearningComputeManagementClient'] +from .version import VERSION __version__ = VERSION diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/_configuration.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/_configuration.py new file mode 100644 index 000000000000..914ced353bc5 --- /dev/null +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/_configuration.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 msrestazure import AzureConfiguration + +from .version import VERSION + + +class MachineLearningComputeManagementClientConfiguration(AzureConfiguration): + """Configuration for MachineLearningComputeManagementClient + Note that all parameters used to create this instance are saved as instance + attributes. + + :param credentials: Credentials needed for the client to connect to Azure. + :type credentials: :mod:`A msrestazure Credentials + object` + :param subscription_id: The Azure subscription ID. + :type subscription_id: str + :param str base_url: Service URL + """ + + def __init__( + self, credentials, subscription_id, base_url=None): + + if credentials is None: + raise ValueError("Parameter 'credentials' must not be None.") + if subscription_id is None: + raise ValueError("Parameter 'subscription_id' must not be None.") + if not base_url: + base_url = 'https://management.azure.com' + + super(MachineLearningComputeManagementClientConfiguration, self).__init__(base_url) + + # Starting Autorest.Python 4.0.64, make connection pool activated by default + self.keep_alive = True + + self.add_user_agent('azure-mgmt-machinelearningcompute/{}'.format(VERSION)) + self.add_user_agent('Azure-SDK-For-Python') + + self.credentials = credentials + self.subscription_id = subscription_id diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/_machine_learning_compute_management_client.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/_machine_learning_compute_management_client.py new file mode 100644 index 000000000000..133149e0b98f --- /dev/null +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/_machine_learning_compute_management_client.py @@ -0,0 +1,54 @@ +# 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.service_client import SDKClient +from msrest import Serializer, Deserializer + +from ._configuration import MachineLearningComputeManagementClientConfiguration +from .operations import OperationalizationClustersOperations +from .operations import MachineLearningComputeOperations +from . import models + + +class MachineLearningComputeManagementClient(SDKClient): + """These APIs allow end users to operate on Azure Machine Learning Compute resources. They support the following operations:<ul><li>Create or update a cluster</li><li>Get a cluster</li><li>Patch a cluster</li><li>Delete a cluster</li><li>Get keys for a cluster</li><li>Check if updates are available for system services in a cluster</li><li>Update system services in a cluster</li><li>Get all clusters in a resource group</li><li>Get all clusters in a subscription</li></ul> + + :ivar config: Configuration for client. + :vartype config: MachineLearningComputeManagementClientConfiguration + + :ivar operationalization_clusters: OperationalizationClusters operations + :vartype operationalization_clusters: azure.mgmt.machinelearningcompute.operations.OperationalizationClustersOperations + :ivar machine_learning_compute: MachineLearningCompute operations + :vartype machine_learning_compute: azure.mgmt.machinelearningcompute.operations.MachineLearningComputeOperations + + :param credentials: Credentials needed for the client to connect to Azure. + :type credentials: :mod:`A msrestazure Credentials + object` + :param subscription_id: The Azure subscription ID. + :type subscription_id: str + :param str base_url: Service URL + """ + + def __init__( + self, credentials, subscription_id, base_url=None): + + self.config = MachineLearningComputeManagementClientConfiguration(credentials, subscription_id, base_url) + super(MachineLearningComputeManagementClient, 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-08-01-preview' + self._serialize = Serializer(client_models) + self._deserialize = Deserializer(client_models) + + self.operationalization_clusters = OperationalizationClustersOperations( + self._client, self.config, self._serialize, self._deserialize) + self.machine_learning_compute = MachineLearningComputeOperations( + self._client, self.config, self._serialize, self._deserialize) diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/__init__.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/__init__.py index 96c25076530d..1aac558e7169 100644 --- a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/__init__.py +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/__init__.py @@ -9,35 +9,64 @@ # regenerated. # -------------------------------------------------------------------------- -from .resource import Resource -from .error_detail import ErrorDetail -from .error_response import ErrorResponse -from .error_response_wrapper import ErrorResponseWrapper, ErrorResponseWrapperException -from .storage_account_properties import StorageAccountProperties -from .container_registry_properties import ContainerRegistryProperties -from .service_principal_properties import ServicePrincipalProperties -from .kubernetes_cluster_properties import KubernetesClusterProperties -from .system_service import SystemService -from .acs_cluster_properties import AcsClusterProperties -from .app_insights_properties import AppInsightsProperties -from .ssl_configuration import SslConfiguration -from .service_auth_configuration import ServiceAuthConfiguration -from .auto_scale_configuration import AutoScaleConfiguration -from .global_service_configuration import GlobalServiceConfiguration -from .operationalization_cluster import OperationalizationCluster -from .operationalization_cluster_update_parameters import OperationalizationClusterUpdateParameters -from .storage_account_credentials import StorageAccountCredentials -from .container_registry_credentials import ContainerRegistryCredentials -from .container_service_credentials import ContainerServiceCredentials -from .app_insights_credentials import AppInsightsCredentials -from .operationalization_cluster_credentials import OperationalizationClusterCredentials -from .check_system_services_updates_available_response import CheckSystemServicesUpdatesAvailableResponse -from .update_system_services_response import UpdateSystemServicesResponse -from .resource_operation_display import ResourceOperationDisplay -from .resource_operation import ResourceOperation -from .available_operations import AvailableOperations -from .operationalization_cluster_paged import OperationalizationClusterPaged -from .machine_learning_compute_management_client_enums import ( +try: + from ._models_py3 import AcsClusterProperties + from ._models_py3 import AppInsightsCredentials + from ._models_py3 import AppInsightsProperties + from ._models_py3 import AutoScaleConfiguration + from ._models_py3 import AvailableOperations + from ._models_py3 import CheckSystemServicesUpdatesAvailableResponse + from ._models_py3 import ContainerRegistryCredentials + from ._models_py3 import ContainerRegistryProperties + from ._models_py3 import ContainerServiceCredentials + from ._models_py3 import ErrorDetail + from ._models_py3 import ErrorResponse + from ._models_py3 import ErrorResponseWrapper, ErrorResponseWrapperException + from ._models_py3 import GlobalServiceConfiguration + from ._models_py3 import KubernetesClusterProperties + from ._models_py3 import OperationalizationCluster + from ._models_py3 import OperationalizationClusterCredentials + from ._models_py3 import OperationalizationClusterUpdateParameters + from ._models_py3 import Resource + from ._models_py3 import ResourceOperation + from ._models_py3 import ResourceOperationDisplay + from ._models_py3 import ServiceAuthConfiguration + from ._models_py3 import ServicePrincipalProperties + from ._models_py3 import SslConfiguration + from ._models_py3 import StorageAccountCredentials + from ._models_py3 import StorageAccountProperties + from ._models_py3 import SystemService + from ._models_py3 import UpdateSystemServicesResponse +except (SyntaxError, ImportError): + from ._models import AcsClusterProperties + from ._models import AppInsightsCredentials + from ._models import AppInsightsProperties + from ._models import AutoScaleConfiguration + from ._models import AvailableOperations + from ._models import CheckSystemServicesUpdatesAvailableResponse + from ._models import ContainerRegistryCredentials + from ._models import ContainerRegistryProperties + from ._models import ContainerServiceCredentials + from ._models import ErrorDetail + from ._models import ErrorResponse + from ._models import ErrorResponseWrapper, ErrorResponseWrapperException + from ._models import GlobalServiceConfiguration + from ._models import KubernetesClusterProperties + from ._models import OperationalizationCluster + from ._models import OperationalizationClusterCredentials + from ._models import OperationalizationClusterUpdateParameters + from ._models import Resource + from ._models import ResourceOperation + from ._models import ResourceOperationDisplay + from ._models import ServiceAuthConfiguration + from ._models import ServicePrincipalProperties + from ._models import SslConfiguration + from ._models import StorageAccountCredentials + from ._models import StorageAccountProperties + from ._models import SystemService + from ._models import UpdateSystemServicesResponse +from ._paged_models import OperationalizationClusterPaged +from ._machine_learning_compute_management_client_enums import ( OperationStatus, ClusterType, OrchestratorType, @@ -48,33 +77,33 @@ ) __all__ = [ - 'Resource', - 'ErrorDetail', - 'ErrorResponse', - 'ErrorResponseWrapper', 'ErrorResponseWrapperException', - 'StorageAccountProperties', - 'ContainerRegistryProperties', - 'ServicePrincipalProperties', - 'KubernetesClusterProperties', - 'SystemService', 'AcsClusterProperties', + 'AppInsightsCredentials', 'AppInsightsProperties', - 'SslConfiguration', - 'ServiceAuthConfiguration', 'AutoScaleConfiguration', + 'AvailableOperations', + 'CheckSystemServicesUpdatesAvailableResponse', + 'ContainerRegistryCredentials', + 'ContainerRegistryProperties', + 'ContainerServiceCredentials', + 'ErrorDetail', + 'ErrorResponse', + 'ErrorResponseWrapper', 'ErrorResponseWrapperException', 'GlobalServiceConfiguration', + 'KubernetesClusterProperties', 'OperationalizationCluster', + 'OperationalizationClusterCredentials', 'OperationalizationClusterUpdateParameters', + 'Resource', + 'ResourceOperation', + 'ResourceOperationDisplay', + 'ServiceAuthConfiguration', + 'ServicePrincipalProperties', + 'SslConfiguration', 'StorageAccountCredentials', - 'ContainerRegistryCredentials', - 'ContainerServiceCredentials', - 'AppInsightsCredentials', - 'OperationalizationClusterCredentials', - 'CheckSystemServicesUpdatesAvailableResponse', + 'StorageAccountProperties', + 'SystemService', 'UpdateSystemServicesResponse', - 'ResourceOperationDisplay', - 'ResourceOperation', - 'AvailableOperations', 'OperationalizationClusterPaged', 'OperationStatus', 'ClusterType', diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_machine_learning_compute_management_client_enums.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_machine_learning_compute_management_client_enums.py new file mode 100644 index 000000000000..2ee098036d97 --- /dev/null +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_machine_learning_compute_management_client_enums.py @@ -0,0 +1,105 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum + + +class OperationStatus(str, Enum): + + unknown = "Unknown" + updating = "Updating" + creating = "Creating" + deleting = "Deleting" + succeeded = "Succeeded" + failed = "Failed" + canceled = "Canceled" + + +class ClusterType(str, Enum): + + acs = "ACS" + local = "Local" + + +class OrchestratorType(str, Enum): + + kubernetes = "Kubernetes" + none = "None" + + +class SystemServiceType(str, Enum): + + none = "None" + scoring_front_end = "ScoringFrontEnd" + batch_front_end = "BatchFrontEnd" + + +class AgentVMSizeTypes(str, Enum): + + standard_a0 = "Standard_A0" + standard_a1 = "Standard_A1" + standard_a2 = "Standard_A2" + standard_a3 = "Standard_A3" + standard_a4 = "Standard_A4" + standard_a5 = "Standard_A5" + standard_a6 = "Standard_A6" + standard_a7 = "Standard_A7" + standard_a8 = "Standard_A8" + standard_a9 = "Standard_A9" + standard_a10 = "Standard_A10" + standard_a11 = "Standard_A11" + standard_d1 = "Standard_D1" + standard_d2 = "Standard_D2" + standard_d3 = "Standard_D3" + standard_d4 = "Standard_D4" + standard_d11 = "Standard_D11" + standard_d12 = "Standard_D12" + standard_d13 = "Standard_D13" + standard_d14 = "Standard_D14" + standard_d1_v2 = "Standard_D1_v2" + standard_d2_v2 = "Standard_D2_v2" + standard_d3_v2 = "Standard_D3_v2" + standard_d4_v2 = "Standard_D4_v2" + standard_d5_v2 = "Standard_D5_v2" + standard_d11_v2 = "Standard_D11_v2" + standard_d12_v2 = "Standard_D12_v2" + standard_d13_v2 = "Standard_D13_v2" + standard_d14_v2 = "Standard_D14_v2" + standard_g1 = "Standard_G1" + standard_g2 = "Standard_G2" + standard_g3 = "Standard_G3" + standard_g4 = "Standard_G4" + standard_g5 = "Standard_G5" + standard_ds1 = "Standard_DS1" + standard_ds2 = "Standard_DS2" + standard_ds3 = "Standard_DS3" + standard_ds4 = "Standard_DS4" + standard_ds11 = "Standard_DS11" + standard_ds12 = "Standard_DS12" + standard_ds13 = "Standard_DS13" + standard_ds14 = "Standard_DS14" + standard_gs1 = "Standard_GS1" + standard_gs2 = "Standard_GS2" + standard_gs3 = "Standard_GS3" + standard_gs4 = "Standard_GS4" + standard_gs5 = "Standard_GS5" + + +class Status(str, Enum): + + enabled = "Enabled" + disabled = "Disabled" + + +class UpdatesAvailable(str, Enum): + + yes = "Yes" + no = "No" diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_models.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_models.py new file mode 100644 index 000000000000..ead696c7b26a --- /dev/null +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_models.py @@ -0,0 +1,934 @@ +# 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 AcsClusterProperties(Model): + """Information about the container service backing the cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar cluster_fqdn: The FQDN of the cluster. + :vartype cluster_fqdn: str + :param orchestrator_type: Required. Type of orchestrator. It cannot be + changed once the cluster is created. Possible values include: + 'Kubernetes', 'None' + :type orchestrator_type: str or + ~azure.mgmt.machinelearningcompute.models.OrchestratorType + :param orchestrator_properties: Orchestrator specific properties + :type orchestrator_properties: + ~azure.mgmt.machinelearningcompute.models.KubernetesClusterProperties + :param system_services: The system services deployed to the cluster + :type system_services: + list[~azure.mgmt.machinelearningcompute.models.SystemService] + :param master_count: The number of master nodes in the container service. + Default value: 1 . + :type master_count: int + :param agent_count: The number of agent nodes in the Container Service. + This can be changed to scale the cluster. Default value: 2 . + :type agent_count: int + :param agent_vm_size: The Azure VM size of the agent VM nodes. This cannot + be changed once the cluster is created. This list is non exhaustive; refer + to https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes + for the possible VM sizes. Possible values include: 'Standard_A0', + 'Standard_A1', 'Standard_A2', 'Standard_A3', 'Standard_A4', 'Standard_A5', + 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A9', + 'Standard_A10', 'Standard_A11', 'Standard_D1', 'Standard_D2', + 'Standard_D3', 'Standard_D4', 'Standard_D11', 'Standard_D12', + 'Standard_D13', 'Standard_D14', 'Standard_D1_v2', 'Standard_D2_v2', + 'Standard_D3_v2', 'Standard_D4_v2', 'Standard_D5_v2', 'Standard_D11_v2', + 'Standard_D12_v2', 'Standard_D13_v2', 'Standard_D14_v2', 'Standard_G1', + 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', + 'Standard_DS1', 'Standard_DS2', 'Standard_DS3', 'Standard_DS4', + 'Standard_DS11', 'Standard_DS12', 'Standard_DS13', 'Standard_DS14', + 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', + 'Standard_GS5'. Default value: "Standard_D3_v2" . + :type agent_vm_size: str or + ~azure.mgmt.machinelearningcompute.models.AgentVMSizeTypes + """ + + _validation = { + 'cluster_fqdn': {'readonly': True}, + 'orchestrator_type': {'required': True}, + 'master_count': {'maximum': 5, 'minimum': 1}, + 'agent_count': {'maximum': 100, 'minimum': 1}, + } + + _attribute_map = { + 'cluster_fqdn': {'key': 'clusterFqdn', 'type': 'str'}, + 'orchestrator_type': {'key': 'orchestratorType', 'type': 'str'}, + 'orchestrator_properties': {'key': 'orchestratorProperties', 'type': 'KubernetesClusterProperties'}, + 'system_services': {'key': 'systemServices', 'type': '[SystemService]'}, + 'master_count': {'key': 'masterCount', 'type': 'int'}, + 'agent_count': {'key': 'agentCount', 'type': 'int'}, + 'agent_vm_size': {'key': 'agentVmSize', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AcsClusterProperties, self).__init__(**kwargs) + self.cluster_fqdn = None + self.orchestrator_type = kwargs.get('orchestrator_type', None) + self.orchestrator_properties = kwargs.get('orchestrator_properties', None) + self.system_services = kwargs.get('system_services', None) + self.master_count = kwargs.get('master_count', 1) + self.agent_count = kwargs.get('agent_count', 2) + self.agent_vm_size = kwargs.get('agent_vm_size', "Standard_D3_v2") + + +class AppInsightsCredentials(Model): + """AppInsights credentials. + + :param app_id: The AppInsights application ID. + :type app_id: str + :param instrumentation_key: The AppInsights instrumentation key. This is + not returned in response of GET/PUT on the resource. To see this please + call listKeys API. + :type instrumentation_key: str + """ + + _attribute_map = { + 'app_id': {'key': 'appId', 'type': 'str'}, + 'instrumentation_key': {'key': 'instrumentationKey', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AppInsightsCredentials, self).__init__(**kwargs) + self.app_id = kwargs.get('app_id', None) + self.instrumentation_key = kwargs.get('instrumentation_key', None) + + +class AppInsightsProperties(Model): + """Properties of App Insights. + + :param resource_id: ARM resource ID of the App Insights. + :type resource_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(AppInsightsProperties, self).__init__(**kwargs) + self.resource_id = kwargs.get('resource_id', None) + + +class AutoScaleConfiguration(Model): + """AutoScale configuration properties. + + :param status: If auto-scale is enabled for all services. Each service can + turn it off individually. Possible values include: 'Enabled', 'Disabled'. + Default value: "Disabled" . + :type status: str or ~azure.mgmt.machinelearningcompute.models.Status + :param min_replicas: The minimum number of replicas for each service. + Default value: 1 . + :type min_replicas: int + :param max_replicas: The maximum number of replicas for each service. + Default value: 100 . + :type max_replicas: int + :param target_utilization: The target utilization. + :type target_utilization: float + :param refresh_period_in_seconds: Refresh period in seconds. + :type refresh_period_in_seconds: int + """ + + _validation = { + 'min_replicas': {'minimum': 1}, + 'max_replicas': {'minimum': 1}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'min_replicas': {'key': 'minReplicas', 'type': 'int'}, + 'max_replicas': {'key': 'maxReplicas', 'type': 'int'}, + 'target_utilization': {'key': 'targetUtilization', 'type': 'float'}, + 'refresh_period_in_seconds': {'key': 'refreshPeriodInSeconds', 'type': 'int'}, + } + + def __init__(self, **kwargs): + super(AutoScaleConfiguration, self).__init__(**kwargs) + self.status = kwargs.get('status', "Disabled") + self.min_replicas = kwargs.get('min_replicas', 1) + self.max_replicas = kwargs.get('max_replicas', 100) + self.target_utilization = kwargs.get('target_utilization', None) + self.refresh_period_in_seconds = kwargs.get('refresh_period_in_seconds', None) + + +class AvailableOperations(Model): + """Available operation list. + + :param value: An array of available operations. + :type value: + list[~azure.mgmt.machinelearningcompute.models.ResourceOperation] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ResourceOperation]'}, + } + + def __init__(self, **kwargs): + super(AvailableOperations, self).__init__(**kwargs) + self.value = kwargs.get('value', None) + + +class CheckSystemServicesUpdatesAvailableResponse(Model): + """Information about updates available for system services in a cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar updates_available: Yes if updates are available for the system + services, No if not. Possible values include: 'Yes', 'No' + :vartype updates_available: str or + ~azure.mgmt.machinelearningcompute.models.UpdatesAvailable + """ + + _validation = { + 'updates_available': {'readonly': True}, + } + + _attribute_map = { + 'updates_available': {'key': 'updatesAvailable', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(CheckSystemServicesUpdatesAvailableResponse, self).__init__(**kwargs) + self.updates_available = None + + +class CloudError(Model): + """CloudError. + """ + + _attribute_map = { + } + + +class ContainerRegistryCredentials(Model): + """Information about the Azure Container Registry which contains the images + deployed to the cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar login_server: The ACR login server name. User name is the first part + of the FQDN. + :vartype login_server: str + :ivar password: The ACR primary password. + :vartype password: str + :ivar password2: The ACR secondary password. + :vartype password2: str + :ivar username: The ACR login username. + :vartype username: str + """ + + _validation = { + 'login_server': {'readonly': True}, + 'password': {'readonly': True}, + 'password2': {'readonly': True}, + 'username': {'readonly': True}, + } + + _attribute_map = { + 'login_server': {'key': 'loginServer', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + 'password2': {'key': 'password2', 'type': 'str'}, + 'username': {'key': 'username', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ContainerRegistryCredentials, self).__init__(**kwargs) + self.login_server = None + self.password = None + self.password2 = None + self.username = None + + +class ContainerRegistryProperties(Model): + """Properties of Azure Container Registry. + + :param resource_id: ARM resource ID of the Azure Container Registry used + to store Docker images for web services in the cluster. If not provided + one will be created. This cannot be changed once the cluster is created. + :type resource_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ContainerRegistryProperties, self).__init__(**kwargs) + self.resource_id = kwargs.get('resource_id', None) + + +class ContainerServiceCredentials(Model): + """Information about the Azure Container Registry which contains the images + deployed to the cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar acs_kube_config: The ACS kube config file. + :vartype acs_kube_config: str + :ivar service_principal_configuration: Service principal configuration + used by Kubernetes. + :vartype service_principal_configuration: + ~azure.mgmt.machinelearningcompute.models.ServicePrincipalProperties + :ivar image_pull_secret_name: The ACR image pull secret name which was + created in Kubernetes. + :vartype image_pull_secret_name: str + """ + + _validation = { + 'acs_kube_config': {'readonly': True}, + 'service_principal_configuration': {'readonly': True}, + 'image_pull_secret_name': {'readonly': True}, + } + + _attribute_map = { + 'acs_kube_config': {'key': 'acsKubeConfig', 'type': 'str'}, + 'service_principal_configuration': {'key': 'servicePrincipalConfiguration', 'type': 'ServicePrincipalProperties'}, + 'image_pull_secret_name': {'key': 'imagePullSecretName', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ContainerServiceCredentials, self).__init__(**kwargs) + self.acs_kube_config = None + self.service_principal_configuration = None + self.image_pull_secret_name = None + + +class ErrorDetail(Model): + """Error detail information. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. Error code. + :type code: str + :param message: Required. Error message. + :type message: str + """ + + _validation = { + 'code': {'required': True}, + 'message': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ErrorDetail, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + + +class ErrorResponse(Model): + """Error response information. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. Error code. + :type code: str + :param message: Required. Error message. + :type message: str + :param details: An array of error detail objects. + :type details: list[~azure.mgmt.machinelearningcompute.models.ErrorDetail] + """ + + _validation = { + 'code': {'required': True}, + 'message': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ErrorDetail]'}, + } + + def __init__(self, **kwargs): + super(ErrorResponse, self).__init__(**kwargs) + self.code = kwargs.get('code', None) + self.message = kwargs.get('message', None) + self.details = kwargs.get('details', None) + + +class ErrorResponseWrapper(Model): + """Wrapper for error response to follow ARM guidelines. + + :param error: The error response. + :type error: ~azure.mgmt.machinelearningcompute.models.ErrorResponse + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorResponse'}, + } + + def __init__(self, **kwargs): + super(ErrorResponseWrapper, self).__init__(**kwargs) + self.error = kwargs.get('error', None) + + +class ErrorResponseWrapperException(HttpOperationError): + """Server responsed with exception of type: 'ErrorResponseWrapper'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(ErrorResponseWrapperException, self).__init__(deserialize, response, 'ErrorResponseWrapper', *args) + + +class GlobalServiceConfiguration(Model): + """Global configuration for services in the cluster. + + :param additional_properties: Unmatched properties from the message are + deserialized this collection + :type additional_properties: dict[str, object] + :param etag: The configuration ETag for updates. + :type etag: str + :param ssl: The SSL configuration properties + :type ssl: ~azure.mgmt.machinelearningcompute.models.SslConfiguration + :param service_auth: Optional global authorization keys for all user + services deployed in cluster. These are used if the service does not have + auth keys. + :type service_auth: + ~azure.mgmt.machinelearningcompute.models.ServiceAuthConfiguration + :param auto_scale: The auto-scale configuration + :type auto_scale: + ~azure.mgmt.machinelearningcompute.models.AutoScaleConfiguration + """ + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'ssl': {'key': 'ssl', 'type': 'SslConfiguration'}, + 'service_auth': {'key': 'serviceAuth', 'type': 'ServiceAuthConfiguration'}, + 'auto_scale': {'key': 'autoScale', 'type': 'AutoScaleConfiguration'}, + } + + def __init__(self, **kwargs): + super(GlobalServiceConfiguration, self).__init__(**kwargs) + self.additional_properties = kwargs.get('additional_properties', None) + self.etag = kwargs.get('etag', None) + self.ssl = kwargs.get('ssl', None) + self.service_auth = kwargs.get('service_auth', None) + self.auto_scale = kwargs.get('auto_scale', None) + + +class KubernetesClusterProperties(Model): + """Kubernetes cluster specific properties. + + :param service_principal: The Azure Service Principal used by Kubernetes + :type service_principal: + ~azure.mgmt.machinelearningcompute.models.ServicePrincipalProperties + """ + + _attribute_map = { + 'service_principal': {'key': 'servicePrincipal', 'type': 'ServicePrincipalProperties'}, + } + + def __init__(self, **kwargs): + super(KubernetesClusterProperties, self).__init__(**kwargs) + self.service_principal = kwargs.get('service_principal', None) + + +class Resource(Model): + """Azure 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: Specifies the resource ID. + :vartype id: str + :ivar name: Specifies the name of the resource. + :vartype name: str + :param location: Required. Specifies the location of the resource. + :type location: str + :ivar type: Specifies the type of the resource. + :vartype type: str + :param tags: Contains resource tags defined as key/value pairs. + :type tags: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__(self, **kwargs): + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.location = kwargs.get('location', None) + self.type = None + self.tags = kwargs.get('tags', None) + + +class OperationalizationCluster(Resource): + """Instance of an Azure ML Operationalization Cluster 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: Specifies the resource ID. + :vartype id: str + :ivar name: Specifies the name of the resource. + :vartype name: str + :param location: Required. Specifies the location of the resource. + :type location: str + :ivar type: Specifies the type of the resource. + :vartype type: str + :param tags: Contains resource tags defined as key/value pairs. + :type tags: dict[str, str] + :param description: The description of the cluster. + :type description: str + :ivar created_on: The date and time when the cluster was created. + :vartype created_on: datetime + :ivar modified_on: The date and time when the cluster was last modified. + :vartype modified_on: datetime + :ivar provisioning_state: The provision state of the cluster. Valid values + are Unknown, Updating, Provisioning, Succeeded, and Failed. Possible + values include: 'Unknown', 'Updating', 'Creating', 'Deleting', + 'Succeeded', 'Failed', 'Canceled' + :vartype provisioning_state: str or + ~azure.mgmt.machinelearningcompute.models.OperationStatus + :ivar provisioning_errors: List of provisioning errors reported by the + resource provider. + :vartype provisioning_errors: + list[~azure.mgmt.machinelearningcompute.models.ErrorResponseWrapper] + :param cluster_type: Required. The cluster type. Possible values include: + 'ACS', 'Local' + :type cluster_type: str or + ~azure.mgmt.machinelearningcompute.models.ClusterType + :param storage_account: Storage Account properties. + :type storage_account: + ~azure.mgmt.machinelearningcompute.models.StorageAccountProperties + :param container_registry: Container Registry properties. + :type container_registry: + ~azure.mgmt.machinelearningcompute.models.ContainerRegistryProperties + :param container_service: Parameters for the Azure Container Service + cluster. + :type container_service: + ~azure.mgmt.machinelearningcompute.models.AcsClusterProperties + :param app_insights: AppInsights configuration. + :type app_insights: + ~azure.mgmt.machinelearningcompute.models.AppInsightsProperties + :param global_service_configuration: Contains global configuration for the + web services in the cluster. + :type global_service_configuration: + ~azure.mgmt.machinelearningcompute.models.GlobalServiceConfiguration + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'created_on': {'readonly': True}, + 'modified_on': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'provisioning_errors': {'readonly': True}, + 'cluster_type': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'}, + 'modified_on': {'key': 'properties.modifiedOn', 'type': 'iso-8601'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'provisioning_errors': {'key': 'properties.provisioningErrors', 'type': '[ErrorResponseWrapper]'}, + 'cluster_type': {'key': 'properties.clusterType', 'type': 'str'}, + 'storage_account': {'key': 'properties.storageAccount', 'type': 'StorageAccountProperties'}, + 'container_registry': {'key': 'properties.containerRegistry', 'type': 'ContainerRegistryProperties'}, + 'container_service': {'key': 'properties.containerService', 'type': 'AcsClusterProperties'}, + 'app_insights': {'key': 'properties.appInsights', 'type': 'AppInsightsProperties'}, + 'global_service_configuration': {'key': 'properties.globalServiceConfiguration', 'type': 'GlobalServiceConfiguration'}, + } + + def __init__(self, **kwargs): + super(OperationalizationCluster, self).__init__(**kwargs) + self.description = kwargs.get('description', None) + self.created_on = None + self.modified_on = None + self.provisioning_state = None + self.provisioning_errors = None + self.cluster_type = kwargs.get('cluster_type', None) + self.storage_account = kwargs.get('storage_account', None) + self.container_registry = kwargs.get('container_registry', None) + self.container_service = kwargs.get('container_service', None) + self.app_insights = kwargs.get('app_insights', None) + self.global_service_configuration = kwargs.get('global_service_configuration', None) + + +class OperationalizationClusterCredentials(Model): + """Credentials to resources in the cluster. + + :param storage_account: Credentials for the Storage Account. + :type storage_account: + ~azure.mgmt.machinelearningcompute.models.StorageAccountCredentials + :param container_registry: Credentials for Azure Container Registry. + :type container_registry: + ~azure.mgmt.machinelearningcompute.models.ContainerRegistryCredentials + :param container_service: Credentials for Azure Container Service. + :type container_service: + ~azure.mgmt.machinelearningcompute.models.ContainerServiceCredentials + :param app_insights: Credentials for Azure AppInsights. + :type app_insights: + ~azure.mgmt.machinelearningcompute.models.AppInsightsCredentials + :param service_auth_configuration: Global authorization keys for all user + services deployed in cluster. These are used if the service does not have + auth keys. + :type service_auth_configuration: + ~azure.mgmt.machinelearningcompute.models.ServiceAuthConfiguration + :param ssl_configuration: The SSL configuration for the services. + :type ssl_configuration: + ~azure.mgmt.machinelearningcompute.models.SslConfiguration + """ + + _attribute_map = { + 'storage_account': {'key': 'storageAccount', 'type': 'StorageAccountCredentials'}, + 'container_registry': {'key': 'containerRegistry', 'type': 'ContainerRegistryCredentials'}, + 'container_service': {'key': 'containerService', 'type': 'ContainerServiceCredentials'}, + 'app_insights': {'key': 'appInsights', 'type': 'AppInsightsCredentials'}, + 'service_auth_configuration': {'key': 'serviceAuthConfiguration', 'type': 'ServiceAuthConfiguration'}, + 'ssl_configuration': {'key': 'sslConfiguration', 'type': 'SslConfiguration'}, + } + + def __init__(self, **kwargs): + super(OperationalizationClusterCredentials, self).__init__(**kwargs) + self.storage_account = kwargs.get('storage_account', None) + self.container_registry = kwargs.get('container_registry', None) + self.container_service = kwargs.get('container_service', None) + self.app_insights = kwargs.get('app_insights', None) + self.service_auth_configuration = kwargs.get('service_auth_configuration', None) + self.ssl_configuration = kwargs.get('ssl_configuration', None) + + +class OperationalizationClusterUpdateParameters(Model): + """Parameters for PATCH operation on an operationalization cluster. + + :param tags: Gets or sets a list of key value pairs that describe the + resource. These tags can be used in viewing and grouping this resource + (across resource groups). A maximum of 15 tags can be provided for a + resource. Each tag must have a key no greater in length than 128 + characters and a value no greater in length than 256 characters. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__(self, **kwargs): + super(OperationalizationClusterUpdateParameters, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) + + +class ResourceOperation(Model): + """Resource operation. + + :param name: Name of this operation. + :type name: str + :param display: Display of the operation. + :type display: + ~azure.mgmt.machinelearningcompute.models.ResourceOperationDisplay + :param origin: The operation origin. + :type origin: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'ResourceOperationDisplay'}, + 'origin': {'key': 'origin', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ResourceOperation, self).__init__(**kwargs) + self.name = kwargs.get('name', None) + self.display = kwargs.get('display', None) + self.origin = kwargs.get('origin', None) + + +class ResourceOperationDisplay(Model): + """Display of the operation. + + :param provider: The resource provider name. + :type provider: str + :param resource: The resource name. + :type resource: str + :param operation: The operation. + :type operation: str + :param description: The description of the operation. + :type description: str + """ + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ResourceOperationDisplay, self).__init__(**kwargs) + self.provider = kwargs.get('provider', None) + self.resource = kwargs.get('resource', None) + self.operation = kwargs.get('operation', None) + self.description = kwargs.get('description', None) + + +class ServiceAuthConfiguration(Model): + """Global service auth configuration properties. These are the data-plane + authorization keys and are used if a service doesn't define it's own. + + All required parameters must be populated in order to send to Azure. + + :param primary_auth_key_hash: Required. The primary auth key hash. This is + not returned in response of GET/PUT on the resource.. To see this please + call listKeys API. + :type primary_auth_key_hash: str + :param secondary_auth_key_hash: Required. The secondary auth key hash. + This is not returned in response of GET/PUT on the resource.. To see this + please call listKeys API. + :type secondary_auth_key_hash: str + """ + + _validation = { + 'primary_auth_key_hash': {'required': True}, + 'secondary_auth_key_hash': {'required': True}, + } + + _attribute_map = { + 'primary_auth_key_hash': {'key': 'primaryAuthKeyHash', 'type': 'str'}, + 'secondary_auth_key_hash': {'key': 'secondaryAuthKeyHash', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ServiceAuthConfiguration, self).__init__(**kwargs) + self.primary_auth_key_hash = kwargs.get('primary_auth_key_hash', None) + self.secondary_auth_key_hash = kwargs.get('secondary_auth_key_hash', None) + + +class ServicePrincipalProperties(Model): + """The Azure service principal used by Kubernetes for configuring load + balancers. + + All required parameters must be populated in order to send to Azure. + + :param client_id: Required. The service principal client ID + :type client_id: str + :param secret: Required. The service principal secret. This is not + returned in response of GET/PUT on the resource. To see this please call + listKeys. + :type secret: str + """ + + _validation = { + 'client_id': {'required': True}, + 'secret': {'required': True}, + } + + _attribute_map = { + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'secret': {'key': 'secret', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(ServicePrincipalProperties, self).__init__(**kwargs) + self.client_id = kwargs.get('client_id', None) + self.secret = kwargs.get('secret', None) + + +class SslConfiguration(Model): + """SSL configuration. If configured data-plane calls to user services will be + exposed over SSL only. + + :param status: SSL status. Allowed values are Enabled and Disabled. + Possible values include: 'Enabled', 'Disabled'. Default value: "Enabled" . + :type status: str or ~azure.mgmt.machinelearningcompute.models.Status + :param cert: The SSL cert data in PEM format. + :type cert: str + :param key: The SSL key data in PEM format. This is not returned in + response of GET/PUT on the resource. To see this please call listKeys API. + :type key: str + :param cname: The CName of the certificate. + :type cname: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'cert': {'key': 'cert', 'type': 'str'}, + 'key': {'key': 'key', 'type': 'str'}, + 'cname': {'key': 'cname', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(SslConfiguration, self).__init__(**kwargs) + self.status = kwargs.get('status', "Enabled") + self.cert = kwargs.get('cert', None) + self.key = kwargs.get('key', None) + self.cname = kwargs.get('cname', None) + + +class StorageAccountCredentials(Model): + """Access information for the storage account. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar resource_id: The ARM resource ID of the storage account. + :vartype resource_id: str + :ivar primary_key: The primary key of the storage account. + :vartype primary_key: str + :ivar secondary_key: The secondary key of the storage account. + :vartype secondary_key: str + """ + + _validation = { + 'resource_id': {'readonly': True}, + 'primary_key': {'readonly': True}, + 'secondary_key': {'readonly': True}, + } + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'primary_key': {'key': 'primaryKey', 'type': 'str'}, + 'secondary_key': {'key': 'secondaryKey', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(StorageAccountCredentials, self).__init__(**kwargs) + self.resource_id = None + self.primary_key = None + self.secondary_key = None + + +class StorageAccountProperties(Model): + """Properties of Storage Account. + + :param resource_id: ARM resource ID of the Azure Storage Account to store + CLI specific files. If not provided one will be created. This cannot be + changed once the cluster is created. + :type resource_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(StorageAccountProperties, self).__init__(**kwargs) + self.resource_id = kwargs.get('resource_id', None) + + +class SystemService(Model): + """Information about a system service deployed in the cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param system_service_type: Required. The system service type. Possible + values include: 'None', 'ScoringFrontEnd', 'BatchFrontEnd' + :type system_service_type: str or + ~azure.mgmt.machinelearningcompute.models.SystemServiceType + :ivar public_ip_address: The public IP address of the system service + :vartype public_ip_address: str + :ivar version: The state of the system service + :vartype version: str + """ + + _validation = { + 'system_service_type': {'required': True}, + 'public_ip_address': {'readonly': True}, + 'version': {'readonly': True}, + } + + _attribute_map = { + 'system_service_type': {'key': 'systemServiceType', 'type': 'str'}, + 'public_ip_address': {'key': 'publicIpAddress', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, **kwargs): + super(SystemService, self).__init__(**kwargs) + self.system_service_type = kwargs.get('system_service_type', None) + self.public_ip_address = None + self.version = None + + +class UpdateSystemServicesResponse(Model): + """Response of the update system services API. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar update_status: Update status. Possible values include: 'Unknown', + 'Updating', 'Creating', 'Deleting', 'Succeeded', 'Failed', 'Canceled' + :vartype update_status: str or + ~azure.mgmt.machinelearningcompute.models.OperationStatus + :ivar update_started_on: The date and time when the last system services + update was started. + :vartype update_started_on: datetime + :ivar update_completed_on: The date and time when the last system services + update completed. + :vartype update_completed_on: datetime + """ + + _validation = { + 'update_status': {'readonly': True}, + 'update_started_on': {'readonly': True}, + 'update_completed_on': {'readonly': True}, + } + + _attribute_map = { + 'update_status': {'key': 'updateStatus', 'type': 'str'}, + 'update_started_on': {'key': 'updateStartedOn', 'type': 'iso-8601'}, + 'update_completed_on': {'key': 'updateCompletedOn', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs): + super(UpdateSystemServicesResponse, self).__init__(**kwargs) + self.update_status = None + self.update_started_on = None + self.update_completed_on = None diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_models_py3.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_models_py3.py new file mode 100644 index 000000000000..06e9e2fbc0e0 --- /dev/null +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_models_py3.py @@ -0,0 +1,934 @@ +# 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 AcsClusterProperties(Model): + """Information about the container service backing the cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :ivar cluster_fqdn: The FQDN of the cluster. + :vartype cluster_fqdn: str + :param orchestrator_type: Required. Type of orchestrator. It cannot be + changed once the cluster is created. Possible values include: + 'Kubernetes', 'None' + :type orchestrator_type: str or + ~azure.mgmt.machinelearningcompute.models.OrchestratorType + :param orchestrator_properties: Orchestrator specific properties + :type orchestrator_properties: + ~azure.mgmt.machinelearningcompute.models.KubernetesClusterProperties + :param system_services: The system services deployed to the cluster + :type system_services: + list[~azure.mgmt.machinelearningcompute.models.SystemService] + :param master_count: The number of master nodes in the container service. + Default value: 1 . + :type master_count: int + :param agent_count: The number of agent nodes in the Container Service. + This can be changed to scale the cluster. Default value: 2 . + :type agent_count: int + :param agent_vm_size: The Azure VM size of the agent VM nodes. This cannot + be changed once the cluster is created. This list is non exhaustive; refer + to https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes + for the possible VM sizes. Possible values include: 'Standard_A0', + 'Standard_A1', 'Standard_A2', 'Standard_A3', 'Standard_A4', 'Standard_A5', + 'Standard_A6', 'Standard_A7', 'Standard_A8', 'Standard_A9', + 'Standard_A10', 'Standard_A11', 'Standard_D1', 'Standard_D2', + 'Standard_D3', 'Standard_D4', 'Standard_D11', 'Standard_D12', + 'Standard_D13', 'Standard_D14', 'Standard_D1_v2', 'Standard_D2_v2', + 'Standard_D3_v2', 'Standard_D4_v2', 'Standard_D5_v2', 'Standard_D11_v2', + 'Standard_D12_v2', 'Standard_D13_v2', 'Standard_D14_v2', 'Standard_G1', + 'Standard_G2', 'Standard_G3', 'Standard_G4', 'Standard_G5', + 'Standard_DS1', 'Standard_DS2', 'Standard_DS3', 'Standard_DS4', + 'Standard_DS11', 'Standard_DS12', 'Standard_DS13', 'Standard_DS14', + 'Standard_GS1', 'Standard_GS2', 'Standard_GS3', 'Standard_GS4', + 'Standard_GS5'. Default value: "Standard_D3_v2" . + :type agent_vm_size: str or + ~azure.mgmt.machinelearningcompute.models.AgentVMSizeTypes + """ + + _validation = { + 'cluster_fqdn': {'readonly': True}, + 'orchestrator_type': {'required': True}, + 'master_count': {'maximum': 5, 'minimum': 1}, + 'agent_count': {'maximum': 100, 'minimum': 1}, + } + + _attribute_map = { + 'cluster_fqdn': {'key': 'clusterFqdn', 'type': 'str'}, + 'orchestrator_type': {'key': 'orchestratorType', 'type': 'str'}, + 'orchestrator_properties': {'key': 'orchestratorProperties', 'type': 'KubernetesClusterProperties'}, + 'system_services': {'key': 'systemServices', 'type': '[SystemService]'}, + 'master_count': {'key': 'masterCount', 'type': 'int'}, + 'agent_count': {'key': 'agentCount', 'type': 'int'}, + 'agent_vm_size': {'key': 'agentVmSize', 'type': 'str'}, + } + + def __init__(self, *, orchestrator_type, orchestrator_properties=None, system_services=None, master_count: int=1, agent_count: int=2, agent_vm_size="Standard_D3_v2", **kwargs) -> None: + super(AcsClusterProperties, self).__init__(**kwargs) + self.cluster_fqdn = None + self.orchestrator_type = orchestrator_type + self.orchestrator_properties = orchestrator_properties + self.system_services = system_services + self.master_count = master_count + self.agent_count = agent_count + self.agent_vm_size = agent_vm_size + + +class AppInsightsCredentials(Model): + """AppInsights credentials. + + :param app_id: The AppInsights application ID. + :type app_id: str + :param instrumentation_key: The AppInsights instrumentation key. This is + not returned in response of GET/PUT on the resource. To see this please + call listKeys API. + :type instrumentation_key: str + """ + + _attribute_map = { + 'app_id': {'key': 'appId', 'type': 'str'}, + 'instrumentation_key': {'key': 'instrumentationKey', 'type': 'str'}, + } + + def __init__(self, *, app_id: str=None, instrumentation_key: str=None, **kwargs) -> None: + super(AppInsightsCredentials, self).__init__(**kwargs) + self.app_id = app_id + self.instrumentation_key = instrumentation_key + + +class AppInsightsProperties(Model): + """Properties of App Insights. + + :param resource_id: ARM resource ID of the App Insights. + :type resource_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + } + + def __init__(self, *, resource_id: str=None, **kwargs) -> None: + super(AppInsightsProperties, self).__init__(**kwargs) + self.resource_id = resource_id + + +class AutoScaleConfiguration(Model): + """AutoScale configuration properties. + + :param status: If auto-scale is enabled for all services. Each service can + turn it off individually. Possible values include: 'Enabled', 'Disabled'. + Default value: "Disabled" . + :type status: str or ~azure.mgmt.machinelearningcompute.models.Status + :param min_replicas: The minimum number of replicas for each service. + Default value: 1 . + :type min_replicas: int + :param max_replicas: The maximum number of replicas for each service. + Default value: 100 . + :type max_replicas: int + :param target_utilization: The target utilization. + :type target_utilization: float + :param refresh_period_in_seconds: Refresh period in seconds. + :type refresh_period_in_seconds: int + """ + + _validation = { + 'min_replicas': {'minimum': 1}, + 'max_replicas': {'minimum': 1}, + } + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'min_replicas': {'key': 'minReplicas', 'type': 'int'}, + 'max_replicas': {'key': 'maxReplicas', 'type': 'int'}, + 'target_utilization': {'key': 'targetUtilization', 'type': 'float'}, + 'refresh_period_in_seconds': {'key': 'refreshPeriodInSeconds', 'type': 'int'}, + } + + def __init__(self, *, status="Disabled", min_replicas: int=1, max_replicas: int=100, target_utilization: float=None, refresh_period_in_seconds: int=None, **kwargs) -> None: + super(AutoScaleConfiguration, self).__init__(**kwargs) + self.status = status + self.min_replicas = min_replicas + self.max_replicas = max_replicas + self.target_utilization = target_utilization + self.refresh_period_in_seconds = refresh_period_in_seconds + + +class AvailableOperations(Model): + """Available operation list. + + :param value: An array of available operations. + :type value: + list[~azure.mgmt.machinelearningcompute.models.ResourceOperation] + """ + + _attribute_map = { + 'value': {'key': 'value', 'type': '[ResourceOperation]'}, + } + + def __init__(self, *, value=None, **kwargs) -> None: + super(AvailableOperations, self).__init__(**kwargs) + self.value = value + + +class CheckSystemServicesUpdatesAvailableResponse(Model): + """Information about updates available for system services in a cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar updates_available: Yes if updates are available for the system + services, No if not. Possible values include: 'Yes', 'No' + :vartype updates_available: str or + ~azure.mgmt.machinelearningcompute.models.UpdatesAvailable + """ + + _validation = { + 'updates_available': {'readonly': True}, + } + + _attribute_map = { + 'updates_available': {'key': 'updatesAvailable', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(CheckSystemServicesUpdatesAvailableResponse, self).__init__(**kwargs) + self.updates_available = None + + +class CloudError(Model): + """CloudError. + """ + + _attribute_map = { + } + + +class ContainerRegistryCredentials(Model): + """Information about the Azure Container Registry which contains the images + deployed to the cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar login_server: The ACR login server name. User name is the first part + of the FQDN. + :vartype login_server: str + :ivar password: The ACR primary password. + :vartype password: str + :ivar password2: The ACR secondary password. + :vartype password2: str + :ivar username: The ACR login username. + :vartype username: str + """ + + _validation = { + 'login_server': {'readonly': True}, + 'password': {'readonly': True}, + 'password2': {'readonly': True}, + 'username': {'readonly': True}, + } + + _attribute_map = { + 'login_server': {'key': 'loginServer', 'type': 'str'}, + 'password': {'key': 'password', 'type': 'str'}, + 'password2': {'key': 'password2', 'type': 'str'}, + 'username': {'key': 'username', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(ContainerRegistryCredentials, self).__init__(**kwargs) + self.login_server = None + self.password = None + self.password2 = None + self.username = None + + +class ContainerRegistryProperties(Model): + """Properties of Azure Container Registry. + + :param resource_id: ARM resource ID of the Azure Container Registry used + to store Docker images for web services in the cluster. If not provided + one will be created. This cannot be changed once the cluster is created. + :type resource_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + } + + def __init__(self, *, resource_id: str=None, **kwargs) -> None: + super(ContainerRegistryProperties, self).__init__(**kwargs) + self.resource_id = resource_id + + +class ContainerServiceCredentials(Model): + """Information about the Azure Container Registry which contains the images + deployed to the cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar acs_kube_config: The ACS kube config file. + :vartype acs_kube_config: str + :ivar service_principal_configuration: Service principal configuration + used by Kubernetes. + :vartype service_principal_configuration: + ~azure.mgmt.machinelearningcompute.models.ServicePrincipalProperties + :ivar image_pull_secret_name: The ACR image pull secret name which was + created in Kubernetes. + :vartype image_pull_secret_name: str + """ + + _validation = { + 'acs_kube_config': {'readonly': True}, + 'service_principal_configuration': {'readonly': True}, + 'image_pull_secret_name': {'readonly': True}, + } + + _attribute_map = { + 'acs_kube_config': {'key': 'acsKubeConfig', 'type': 'str'}, + 'service_principal_configuration': {'key': 'servicePrincipalConfiguration', 'type': 'ServicePrincipalProperties'}, + 'image_pull_secret_name': {'key': 'imagePullSecretName', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(ContainerServiceCredentials, self).__init__(**kwargs) + self.acs_kube_config = None + self.service_principal_configuration = None + self.image_pull_secret_name = None + + +class ErrorDetail(Model): + """Error detail information. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. Error code. + :type code: str + :param message: Required. Error message. + :type message: str + """ + + _validation = { + 'code': {'required': True}, + 'message': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + } + + def __init__(self, *, code: str, message: str, **kwargs) -> None: + super(ErrorDetail, self).__init__(**kwargs) + self.code = code + self.message = message + + +class ErrorResponse(Model): + """Error response information. + + All required parameters must be populated in order to send to Azure. + + :param code: Required. Error code. + :type code: str + :param message: Required. Error message. + :type message: str + :param details: An array of error detail objects. + :type details: list[~azure.mgmt.machinelearningcompute.models.ErrorDetail] + """ + + _validation = { + 'code': {'required': True}, + 'message': {'required': True}, + } + + _attribute_map = { + 'code': {'key': 'code', 'type': 'str'}, + 'message': {'key': 'message', 'type': 'str'}, + 'details': {'key': 'details', 'type': '[ErrorDetail]'}, + } + + def __init__(self, *, code: str, message: str, details=None, **kwargs) -> None: + super(ErrorResponse, self).__init__(**kwargs) + self.code = code + self.message = message + self.details = details + + +class ErrorResponseWrapper(Model): + """Wrapper for error response to follow ARM guidelines. + + :param error: The error response. + :type error: ~azure.mgmt.machinelearningcompute.models.ErrorResponse + """ + + _attribute_map = { + 'error': {'key': 'error', 'type': 'ErrorResponse'}, + } + + def __init__(self, *, error=None, **kwargs) -> None: + super(ErrorResponseWrapper, self).__init__(**kwargs) + self.error = error + + +class ErrorResponseWrapperException(HttpOperationError): + """Server responsed with exception of type: 'ErrorResponseWrapper'. + + :param deserialize: A deserializer + :param response: Server response to be deserialized. + """ + + def __init__(self, deserialize, response, *args): + + super(ErrorResponseWrapperException, self).__init__(deserialize, response, 'ErrorResponseWrapper', *args) + + +class GlobalServiceConfiguration(Model): + """Global configuration for services in the cluster. + + :param additional_properties: Unmatched properties from the message are + deserialized this collection + :type additional_properties: dict[str, object] + :param etag: The configuration ETag for updates. + :type etag: str + :param ssl: The SSL configuration properties + :type ssl: ~azure.mgmt.machinelearningcompute.models.SslConfiguration + :param service_auth: Optional global authorization keys for all user + services deployed in cluster. These are used if the service does not have + auth keys. + :type service_auth: + ~azure.mgmt.machinelearningcompute.models.ServiceAuthConfiguration + :param auto_scale: The auto-scale configuration + :type auto_scale: + ~azure.mgmt.machinelearningcompute.models.AutoScaleConfiguration + """ + + _attribute_map = { + 'additional_properties': {'key': '', 'type': '{object}'}, + 'etag': {'key': 'etag', 'type': 'str'}, + 'ssl': {'key': 'ssl', 'type': 'SslConfiguration'}, + 'service_auth': {'key': 'serviceAuth', 'type': 'ServiceAuthConfiguration'}, + 'auto_scale': {'key': 'autoScale', 'type': 'AutoScaleConfiguration'}, + } + + def __init__(self, *, additional_properties=None, etag: str=None, ssl=None, service_auth=None, auto_scale=None, **kwargs) -> None: + super(GlobalServiceConfiguration, self).__init__(**kwargs) + self.additional_properties = additional_properties + self.etag = etag + self.ssl = ssl + self.service_auth = service_auth + self.auto_scale = auto_scale + + +class KubernetesClusterProperties(Model): + """Kubernetes cluster specific properties. + + :param service_principal: The Azure Service Principal used by Kubernetes + :type service_principal: + ~azure.mgmt.machinelearningcompute.models.ServicePrincipalProperties + """ + + _attribute_map = { + 'service_principal': {'key': 'servicePrincipal', 'type': 'ServicePrincipalProperties'}, + } + + def __init__(self, *, service_principal=None, **kwargs) -> None: + super(KubernetesClusterProperties, self).__init__(**kwargs) + self.service_principal = service_principal + + +class Resource(Model): + """Azure 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: Specifies the resource ID. + :vartype id: str + :ivar name: Specifies the name of the resource. + :vartype name: str + :param location: Required. Specifies the location of the resource. + :type location: str + :ivar type: Specifies the type of the resource. + :vartype type: str + :param tags: Contains resource tags defined as key/value pairs. + :type tags: dict[str, str] + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__(self, *, location: str, tags=None, **kwargs) -> None: + super(Resource, self).__init__(**kwargs) + self.id = None + self.name = None + self.location = location + self.type = None + self.tags = tags + + +class OperationalizationCluster(Resource): + """Instance of an Azure ML Operationalization Cluster 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: Specifies the resource ID. + :vartype id: str + :ivar name: Specifies the name of the resource. + :vartype name: str + :param location: Required. Specifies the location of the resource. + :type location: str + :ivar type: Specifies the type of the resource. + :vartype type: str + :param tags: Contains resource tags defined as key/value pairs. + :type tags: dict[str, str] + :param description: The description of the cluster. + :type description: str + :ivar created_on: The date and time when the cluster was created. + :vartype created_on: datetime + :ivar modified_on: The date and time when the cluster was last modified. + :vartype modified_on: datetime + :ivar provisioning_state: The provision state of the cluster. Valid values + are Unknown, Updating, Provisioning, Succeeded, and Failed. Possible + values include: 'Unknown', 'Updating', 'Creating', 'Deleting', + 'Succeeded', 'Failed', 'Canceled' + :vartype provisioning_state: str or + ~azure.mgmt.machinelearningcompute.models.OperationStatus + :ivar provisioning_errors: List of provisioning errors reported by the + resource provider. + :vartype provisioning_errors: + list[~azure.mgmt.machinelearningcompute.models.ErrorResponseWrapper] + :param cluster_type: Required. The cluster type. Possible values include: + 'ACS', 'Local' + :type cluster_type: str or + ~azure.mgmt.machinelearningcompute.models.ClusterType + :param storage_account: Storage Account properties. + :type storage_account: + ~azure.mgmt.machinelearningcompute.models.StorageAccountProperties + :param container_registry: Container Registry properties. + :type container_registry: + ~azure.mgmt.machinelearningcompute.models.ContainerRegistryProperties + :param container_service: Parameters for the Azure Container Service + cluster. + :type container_service: + ~azure.mgmt.machinelearningcompute.models.AcsClusterProperties + :param app_insights: AppInsights configuration. + :type app_insights: + ~azure.mgmt.machinelearningcompute.models.AppInsightsProperties + :param global_service_configuration: Contains global configuration for the + web services in the cluster. + :type global_service_configuration: + ~azure.mgmt.machinelearningcompute.models.GlobalServiceConfiguration + """ + + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'location': {'required': True}, + 'type': {'readonly': True}, + 'created_on': {'readonly': True}, + 'modified_on': {'readonly': True}, + 'provisioning_state': {'readonly': True}, + 'provisioning_errors': {'readonly': True}, + 'cluster_type': {'required': True}, + } + + _attribute_map = { + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'location': {'key': 'location', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'tags': {'key': 'tags', 'type': '{str}'}, + 'description': {'key': 'properties.description', 'type': 'str'}, + 'created_on': {'key': 'properties.createdOn', 'type': 'iso-8601'}, + 'modified_on': {'key': 'properties.modifiedOn', 'type': 'iso-8601'}, + 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, + 'provisioning_errors': {'key': 'properties.provisioningErrors', 'type': '[ErrorResponseWrapper]'}, + 'cluster_type': {'key': 'properties.clusterType', 'type': 'str'}, + 'storage_account': {'key': 'properties.storageAccount', 'type': 'StorageAccountProperties'}, + 'container_registry': {'key': 'properties.containerRegistry', 'type': 'ContainerRegistryProperties'}, + 'container_service': {'key': 'properties.containerService', 'type': 'AcsClusterProperties'}, + 'app_insights': {'key': 'properties.appInsights', 'type': 'AppInsightsProperties'}, + 'global_service_configuration': {'key': 'properties.globalServiceConfiguration', 'type': 'GlobalServiceConfiguration'}, + } + + def __init__(self, *, location: str, cluster_type, tags=None, description: str=None, storage_account=None, container_registry=None, container_service=None, app_insights=None, global_service_configuration=None, **kwargs) -> None: + super(OperationalizationCluster, self).__init__(location=location, tags=tags, **kwargs) + self.description = description + self.created_on = None + self.modified_on = None + self.provisioning_state = None + self.provisioning_errors = None + self.cluster_type = cluster_type + self.storage_account = storage_account + self.container_registry = container_registry + self.container_service = container_service + self.app_insights = app_insights + self.global_service_configuration = global_service_configuration + + +class OperationalizationClusterCredentials(Model): + """Credentials to resources in the cluster. + + :param storage_account: Credentials for the Storage Account. + :type storage_account: + ~azure.mgmt.machinelearningcompute.models.StorageAccountCredentials + :param container_registry: Credentials for Azure Container Registry. + :type container_registry: + ~azure.mgmt.machinelearningcompute.models.ContainerRegistryCredentials + :param container_service: Credentials for Azure Container Service. + :type container_service: + ~azure.mgmt.machinelearningcompute.models.ContainerServiceCredentials + :param app_insights: Credentials for Azure AppInsights. + :type app_insights: + ~azure.mgmt.machinelearningcompute.models.AppInsightsCredentials + :param service_auth_configuration: Global authorization keys for all user + services deployed in cluster. These are used if the service does not have + auth keys. + :type service_auth_configuration: + ~azure.mgmt.machinelearningcompute.models.ServiceAuthConfiguration + :param ssl_configuration: The SSL configuration for the services. + :type ssl_configuration: + ~azure.mgmt.machinelearningcompute.models.SslConfiguration + """ + + _attribute_map = { + 'storage_account': {'key': 'storageAccount', 'type': 'StorageAccountCredentials'}, + 'container_registry': {'key': 'containerRegistry', 'type': 'ContainerRegistryCredentials'}, + 'container_service': {'key': 'containerService', 'type': 'ContainerServiceCredentials'}, + 'app_insights': {'key': 'appInsights', 'type': 'AppInsightsCredentials'}, + 'service_auth_configuration': {'key': 'serviceAuthConfiguration', 'type': 'ServiceAuthConfiguration'}, + 'ssl_configuration': {'key': 'sslConfiguration', 'type': 'SslConfiguration'}, + } + + def __init__(self, *, storage_account=None, container_registry=None, container_service=None, app_insights=None, service_auth_configuration=None, ssl_configuration=None, **kwargs) -> None: + super(OperationalizationClusterCredentials, self).__init__(**kwargs) + self.storage_account = storage_account + self.container_registry = container_registry + self.container_service = container_service + self.app_insights = app_insights + self.service_auth_configuration = service_auth_configuration + self.ssl_configuration = ssl_configuration + + +class OperationalizationClusterUpdateParameters(Model): + """Parameters for PATCH operation on an operationalization cluster. + + :param tags: Gets or sets a list of key value pairs that describe the + resource. These tags can be used in viewing and grouping this resource + (across resource groups). A maximum of 15 tags can be provided for a + resource. Each tag must have a key no greater in length than 128 + characters and a value no greater in length than 256 characters. + :type tags: dict[str, str] + """ + + _attribute_map = { + 'tags': {'key': 'tags', 'type': '{str}'}, + } + + def __init__(self, *, tags=None, **kwargs) -> None: + super(OperationalizationClusterUpdateParameters, self).__init__(**kwargs) + self.tags = tags + + +class ResourceOperation(Model): + """Resource operation. + + :param name: Name of this operation. + :type name: str + :param display: Display of the operation. + :type display: + ~azure.mgmt.machinelearningcompute.models.ResourceOperationDisplay + :param origin: The operation origin. + :type origin: str + """ + + _attribute_map = { + 'name': {'key': 'name', 'type': 'str'}, + 'display': {'key': 'display', 'type': 'ResourceOperationDisplay'}, + 'origin': {'key': 'origin', 'type': 'str'}, + } + + def __init__(self, *, name: str=None, display=None, origin: str=None, **kwargs) -> None: + super(ResourceOperation, self).__init__(**kwargs) + self.name = name + self.display = display + self.origin = origin + + +class ResourceOperationDisplay(Model): + """Display of the operation. + + :param provider: The resource provider name. + :type provider: str + :param resource: The resource name. + :type resource: str + :param operation: The operation. + :type operation: str + :param description: The description of the operation. + :type description: str + """ + + _attribute_map = { + 'provider': {'key': 'provider', 'type': 'str'}, + 'resource': {'key': 'resource', 'type': 'str'}, + 'operation': {'key': 'operation', 'type': 'str'}, + 'description': {'key': 'description', 'type': 'str'}, + } + + def __init__(self, *, provider: str=None, resource: str=None, operation: str=None, description: str=None, **kwargs) -> None: + super(ResourceOperationDisplay, self).__init__(**kwargs) + self.provider = provider + self.resource = resource + self.operation = operation + self.description = description + + +class ServiceAuthConfiguration(Model): + """Global service auth configuration properties. These are the data-plane + authorization keys and are used if a service doesn't define it's own. + + All required parameters must be populated in order to send to Azure. + + :param primary_auth_key_hash: Required. The primary auth key hash. This is + not returned in response of GET/PUT on the resource.. To see this please + call listKeys API. + :type primary_auth_key_hash: str + :param secondary_auth_key_hash: Required. The secondary auth key hash. + This is not returned in response of GET/PUT on the resource.. To see this + please call listKeys API. + :type secondary_auth_key_hash: str + """ + + _validation = { + 'primary_auth_key_hash': {'required': True}, + 'secondary_auth_key_hash': {'required': True}, + } + + _attribute_map = { + 'primary_auth_key_hash': {'key': 'primaryAuthKeyHash', 'type': 'str'}, + 'secondary_auth_key_hash': {'key': 'secondaryAuthKeyHash', 'type': 'str'}, + } + + def __init__(self, *, primary_auth_key_hash: str, secondary_auth_key_hash: str, **kwargs) -> None: + super(ServiceAuthConfiguration, self).__init__(**kwargs) + self.primary_auth_key_hash = primary_auth_key_hash + self.secondary_auth_key_hash = secondary_auth_key_hash + + +class ServicePrincipalProperties(Model): + """The Azure service principal used by Kubernetes for configuring load + balancers. + + All required parameters must be populated in order to send to Azure. + + :param client_id: Required. The service principal client ID + :type client_id: str + :param secret: Required. The service principal secret. This is not + returned in response of GET/PUT on the resource. To see this please call + listKeys. + :type secret: str + """ + + _validation = { + 'client_id': {'required': True}, + 'secret': {'required': True}, + } + + _attribute_map = { + 'client_id': {'key': 'clientId', 'type': 'str'}, + 'secret': {'key': 'secret', 'type': 'str'}, + } + + def __init__(self, *, client_id: str, secret: str, **kwargs) -> None: + super(ServicePrincipalProperties, self).__init__(**kwargs) + self.client_id = client_id + self.secret = secret + + +class SslConfiguration(Model): + """SSL configuration. If configured data-plane calls to user services will be + exposed over SSL only. + + :param status: SSL status. Allowed values are Enabled and Disabled. + Possible values include: 'Enabled', 'Disabled'. Default value: "Enabled" . + :type status: str or ~azure.mgmt.machinelearningcompute.models.Status + :param cert: The SSL cert data in PEM format. + :type cert: str + :param key: The SSL key data in PEM format. This is not returned in + response of GET/PUT on the resource. To see this please call listKeys API. + :type key: str + :param cname: The CName of the certificate. + :type cname: str + """ + + _attribute_map = { + 'status': {'key': 'status', 'type': 'str'}, + 'cert': {'key': 'cert', 'type': 'str'}, + 'key': {'key': 'key', 'type': 'str'}, + 'cname': {'key': 'cname', 'type': 'str'}, + } + + def __init__(self, *, status="Enabled", cert: str=None, key: str=None, cname: str=None, **kwargs) -> None: + super(SslConfiguration, self).__init__(**kwargs) + self.status = status + self.cert = cert + self.key = key + self.cname = cname + + +class StorageAccountCredentials(Model): + """Access information for the storage account. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar resource_id: The ARM resource ID of the storage account. + :vartype resource_id: str + :ivar primary_key: The primary key of the storage account. + :vartype primary_key: str + :ivar secondary_key: The secondary key of the storage account. + :vartype secondary_key: str + """ + + _validation = { + 'resource_id': {'readonly': True}, + 'primary_key': {'readonly': True}, + 'secondary_key': {'readonly': True}, + } + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + 'primary_key': {'key': 'primaryKey', 'type': 'str'}, + 'secondary_key': {'key': 'secondaryKey', 'type': 'str'}, + } + + def __init__(self, **kwargs) -> None: + super(StorageAccountCredentials, self).__init__(**kwargs) + self.resource_id = None + self.primary_key = None + self.secondary_key = None + + +class StorageAccountProperties(Model): + """Properties of Storage Account. + + :param resource_id: ARM resource ID of the Azure Storage Account to store + CLI specific files. If not provided one will be created. This cannot be + changed once the cluster is created. + :type resource_id: str + """ + + _attribute_map = { + 'resource_id': {'key': 'resourceId', 'type': 'str'}, + } + + def __init__(self, *, resource_id: str=None, **kwargs) -> None: + super(StorageAccountProperties, self).__init__(**kwargs) + self.resource_id = resource_id + + +class SystemService(Model): + """Information about a system service deployed in the cluster. + + Variables are only populated by the server, and will be ignored when + sending a request. + + All required parameters must be populated in order to send to Azure. + + :param system_service_type: Required. The system service type. Possible + values include: 'None', 'ScoringFrontEnd', 'BatchFrontEnd' + :type system_service_type: str or + ~azure.mgmt.machinelearningcompute.models.SystemServiceType + :ivar public_ip_address: The public IP address of the system service + :vartype public_ip_address: str + :ivar version: The state of the system service + :vartype version: str + """ + + _validation = { + 'system_service_type': {'required': True}, + 'public_ip_address': {'readonly': True}, + 'version': {'readonly': True}, + } + + _attribute_map = { + 'system_service_type': {'key': 'systemServiceType', 'type': 'str'}, + 'public_ip_address': {'key': 'publicIpAddress', 'type': 'str'}, + 'version': {'key': 'version', 'type': 'str'}, + } + + def __init__(self, *, system_service_type, **kwargs) -> None: + super(SystemService, self).__init__(**kwargs) + self.system_service_type = system_service_type + self.public_ip_address = None + self.version = None + + +class UpdateSystemServicesResponse(Model): + """Response of the update system services API. + + Variables are only populated by the server, and will be ignored when + sending a request. + + :ivar update_status: Update status. Possible values include: 'Unknown', + 'Updating', 'Creating', 'Deleting', 'Succeeded', 'Failed', 'Canceled' + :vartype update_status: str or + ~azure.mgmt.machinelearningcompute.models.OperationStatus + :ivar update_started_on: The date and time when the last system services + update was started. + :vartype update_started_on: datetime + :ivar update_completed_on: The date and time when the last system services + update completed. + :vartype update_completed_on: datetime + """ + + _validation = { + 'update_status': {'readonly': True}, + 'update_started_on': {'readonly': True}, + 'update_completed_on': {'readonly': True}, + } + + _attribute_map = { + 'update_status': {'key': 'updateStatus', 'type': 'str'}, + 'update_started_on': {'key': 'updateStartedOn', 'type': 'iso-8601'}, + 'update_completed_on': {'key': 'updateCompletedOn', 'type': 'iso-8601'}, + } + + def __init__(self, **kwargs) -> None: + super(UpdateSystemServicesResponse, self).__init__(**kwargs) + self.update_status = None + self.update_started_on = None + self.update_completed_on = None diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_paged_models.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_paged_models.py new file mode 100644 index 000000000000..2942b41bc5f0 --- /dev/null +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/models/_paged_models.py @@ -0,0 +1,27 @@ +# 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.paging import Paged + + +class OperationalizationClusterPaged(Paged): + """ + A paging container for iterating over a list of :class:`OperationalizationCluster ` object + """ + + _attribute_map = { + 'next_link': {'key': 'nextLink', 'type': 'str'}, + 'current_page': {'key': 'value', 'type': '[OperationalizationCluster]'} + } + + def __init__(self, *args, **kwargs): + + super(OperationalizationClusterPaged, self).__init__(*args, **kwargs) diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/operations/__init__.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/operations/__init__.py index 385cb9b79e8e..01505aef42a8 100644 --- a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/operations/__init__.py +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/operations/__init__.py @@ -9,8 +9,8 @@ # regenerated. # -------------------------------------------------------------------------- -from .operationalization_clusters_operations import OperationalizationClustersOperations -from .machine_learning_compute_operations import MachineLearningComputeOperations +from ._operationalization_clusters_operations import OperationalizationClustersOperations +from ._machine_learning_compute_operations import MachineLearningComputeOperations __all__ = [ 'OperationalizationClustersOperations', diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/operations/_machine_learning_compute_operations.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/operations/_machine_learning_compute_operations.py new file mode 100644 index 000000000000..1b877ab5b2fa --- /dev/null +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/operations/_machine_learning_compute_operations.py @@ -0,0 +1,91 @@ +# 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 .. import models + + +class MachineLearningComputeOperations(object): + """MachineLearningComputeOperations 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 version of the Microsoft.MachineLearningCompute resource provider API to use. Constant value: "2017-08-01-preview". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2017-08-01-preview" + + self.config = config + + def list_available_operations( + self, custom_headers=None, raw=False, **operation_config): + """Gets all available operations. + + :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: AvailableOperations or ClientRawResponse if raw=true + :rtype: ~azure.mgmt.machinelearningcompute.models.AvailableOperations + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list_available_operations.metadata['url'] + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # 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('AvailableOperations', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list_available_operations.metadata = {'url': '/providers/Microsoft.MachineLearningCompute/operations'} diff --git a/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/operations/_operationalization_clusters_operations.py b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/operations/_operationalization_clusters_operations.py new file mode 100644 index 000000000000..5a58f45a1c31 --- /dev/null +++ b/sdk/machinelearning/azure-mgmt-machinelearningcompute/azure/mgmt/machinelearningcompute/operations/_operationalization_clusters_operations.py @@ -0,0 +1,755 @@ +# 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 OperationalizationClustersOperations(object): + """OperationalizationClustersOperations 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 version of the Microsoft.MachineLearningCompute resource provider API to use. Constant value: "2017-08-01-preview". + """ + + models = models + + def __init__(self, client, config, serializer, deserializer): + + self._client = client + self._serialize = serializer + self._deserialize = deserializer + self.api_version = "2017-08-01-preview" + + self.config = config + + + def _create_or_update_initial( + self, resource_group_name, cluster_name, parameters, 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=90, min_length=1, pattern=r'^[a-zA-Z][-\w\._\(\)]+[a-zA-Z0-9]$') + } + 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') + + # 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(parameters, 'OperationalizationCluster') + + # 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, 201]: + raise models.ErrorResponseWrapperException(self._deserialize, response) + + deserialized = None + + if response.status_code == 200: + deserialized = self._deserialize('OperationalizationCluster', response) + if response.status_code == 201: + deserialized = self._deserialize('OperationalizationCluster', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + + def create_or_update( + self, resource_group_name, cluster_name, parameters, custom_headers=None, raw=False, polling=True, **operation_config): + """Create or update an operationalization cluster. + + :param resource_group_name: Name of the resource group in which the + cluster is located. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :param parameters: Parameters supplied to create or update an + Operationalization cluster. + :type parameters: + ~azure.mgmt.machinelearningcompute.models.OperationalizationCluster + :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 + OperationalizationCluster or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.machinelearningcompute.models.OperationalizationCluster] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.machinelearningcompute.models.OperationalizationCluster]] + :raises: + :class:`ErrorResponseWrapperException` + """ + raw_result = self._create_or_update_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + parameters=parameters, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + deserialized = self._deserialize('OperationalizationCluster', 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.MachineLearningCompute/operationalizationClusters/{clusterName}'} + + def get( + self, resource_group_name, cluster_name, custom_headers=None, raw=False, **operation_config): + """Gets the operationalization cluster resource view. Note that the + credentials are not returned by this call. Call ListKeys to get them. + + :param resource_group_name: Name of the resource group in which the + cluster is located. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_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: OperationalizationCluster or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.machinelearningcompute.models.OperationalizationCluster or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseWrapperException` + """ + # Construct URL + url = self.get.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=90, min_length=1, pattern=r'^[a-zA-Z][-\w\._\(\)]+[a-zA-Z0-9]$') + } + 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') + + # 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]: + raise models.ErrorResponseWrapperException(self._deserialize, response) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('OperationalizationCluster', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningCompute/operationalizationClusters/{clusterName}'} + + def update( + self, resource_group_name, cluster_name, tags=None, custom_headers=None, raw=False, **operation_config): + """The PATCH operation can be used to update only the tags for a cluster. + Use PUT operation to update other properties. + + :param resource_group_name: Name of the resource group in which the + cluster is located. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :param tags: Gets or sets a list of key value pairs that describe the + resource. These tags can be used in viewing and grouping this resource + (across resource groups). A maximum of 15 tags can be provided for a + resource. Each tag must have a key no greater in length than 128 + characters and a value no greater in length than 256 characters. + :type tags: dict[str, 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: OperationalizationCluster or ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.machinelearningcompute.models.OperationalizationCluster or + ~msrest.pipeline.ClientRawResponse + :raises: + :class:`ErrorResponseWrapperException` + """ + parameters = models.OperationalizationClusterUpdateParameters(tags=tags) + + # Construct URL + url = self.update.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=90, min_length=1, pattern=r'^[a-zA-Z][-\w\._\(\)]+[a-zA-Z0-9]$') + } + 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') + + # 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(parameters, 'OperationalizationClusterUpdateParameters') + + # Construct and send request + 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]: + raise models.ErrorResponseWrapperException(self._deserialize, response) + + deserialized = None + if response.status_code == 200: + deserialized = self._deserialize('OperationalizationCluster', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningCompute/operationalizationClusters/{clusterName}'} + + + def _delete_initial( + self, resource_group_name, cluster_name, delete_all=None, 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'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=90, min_length=1, pattern=r'^[a-zA-Z][-\w\._\(\)]+[a-zA-Z0-9]$') + } + 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') + if delete_all is not None: + query_parameters['deleteAll'] = self._serialize.query("delete_all", delete_all, 'bool') + + # 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 [202, 204]: + raise models.ErrorResponseWrapperException(self._deserialize, response) + + if raw: + client_raw_response = ClientRawResponse(None, response) + header_dict = { + 'Location': 'str', + } + client_raw_response.add_headers(header_dict) + return client_raw_response + + def delete( + self, resource_group_name, cluster_name, delete_all=None, custom_headers=None, raw=False, polling=True, **operation_config): + """Deletes the specified cluster. + + :param resource_group_name: Name of the resource group in which the + cluster is located. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_name: str + :param delete_all: If true, deletes all resources associated with this + cluster. + :type delete_all: bool + :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:`ErrorResponseWrapperException` + """ + raw_result = self._delete_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + delete_all=delete_all, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + client_raw_response.add_headers({ + 'Location': 'str', + }) + 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.MachineLearningCompute/operationalizationClusters/{clusterName}'} + + def list_keys( + self, resource_group_name, cluster_name, custom_headers=None, raw=False, **operation_config): + """Gets the credentials for the specified cluster such as Storage, ACR and + ACS credentials. This is a long running operation because it fetches + keys from dependencies. + + :param resource_group_name: Name of the resource group in which the + cluster is located. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_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: OperationalizationClusterCredentials or ClientRawResponse if + raw=true + :rtype: + ~azure.mgmt.machinelearningcompute.models.OperationalizationClusterCredentials + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.list_keys.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=90, min_length=1, pattern=r'^[a-zA-Z][-\w\._\(\)]+[a-zA-Z0-9]$') + } + 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') + + # 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.post(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('OperationalizationClusterCredentials', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + list_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningCompute/operationalizationClusters/{clusterName}/listKeys'} + + def check_system_services_updates_available( + self, resource_group_name, cluster_name, custom_headers=None, raw=False, **operation_config): + """Checks if updates are available for system services in the cluster. + + :param resource_group_name: Name of the resource group in which the + cluster is located. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_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: CheckSystemServicesUpdatesAvailableResponse or + ClientRawResponse if raw=true + :rtype: + ~azure.mgmt.machinelearningcompute.models.CheckSystemServicesUpdatesAvailableResponse + or ~msrest.pipeline.ClientRawResponse + :raises: :class:`CloudError` + """ + # Construct URL + url = self.check_system_services_updates_available.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=90, min_length=1, pattern=r'^[a-zA-Z][-\w\._\(\)]+[a-zA-Z0-9]$') + } + 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') + + # 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.post(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('CheckSystemServicesUpdatesAvailableResponse', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + return client_raw_response + + return deserialized + check_system_services_updates_available.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningCompute/operationalizationClusters/{clusterName}/checkSystemServicesUpdatesAvailable'} + + + def _update_system_services_initial( + self, resource_group_name, cluster_name, custom_headers=None, raw=False, **operation_config): + # Construct URL + url = self.update_system_services.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), + 'clusterName': self._serialize.url("cluster_name", cluster_name, 'str', max_length=90, min_length=1, pattern=r'^[a-zA-Z][-\w\._\(\)]+[a-zA-Z0-9]$') + } + 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') + + # 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.post(url, query_parameters, header_parameters) + 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 + header_dict = {} + + if response.status_code == 200: + deserialized = self._deserialize('UpdateSystemServicesResponse', response) + header_dict = { + 'Location': 'str', + } + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + client_raw_response.add_headers(header_dict) + return client_raw_response + + return deserialized + + def update_system_services( + self, resource_group_name, cluster_name, custom_headers=None, raw=False, polling=True, **operation_config): + """Updates system services in a cluster. + + :param resource_group_name: Name of the resource group in which the + cluster is located. + :type resource_group_name: str + :param cluster_name: The name of the cluster. + :type cluster_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 + UpdateSystemServicesResponse or + ClientRawResponse if raw==True + :rtype: + ~msrestazure.azure_operation.AzureOperationPoller[~azure.mgmt.machinelearningcompute.models.UpdateSystemServicesResponse] + or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[~azure.mgmt.machinelearningcompute.models.UpdateSystemServicesResponse]] + :raises: :class:`CloudError` + """ + raw_result = self._update_system_services_initial( + resource_group_name=resource_group_name, + cluster_name=cluster_name, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + header_dict = { + 'Location': 'str', + } + deserialized = self._deserialize('UpdateSystemServicesResponse', response) + + if raw: + client_raw_response = ClientRawResponse(deserialized, response) + client_raw_response.add_headers(header_dict) + 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) + update_system_services.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningCompute/operationalizationClusters/{clusterName}/updateSystemServices'} + + def list_by_resource_group( + self, resource_group_name, skiptoken=None, custom_headers=None, raw=False, **operation_config): + """Gets the clusters in the specified resource group. + + :param resource_group_name: Name of the resource group in which the + cluster is located. + :type resource_group_name: str + :param skiptoken: Continuation token for pagination. + :type skiptoken: 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 OperationalizationCluster + :rtype: + ~azure.mgmt.machinelearningcompute.models.OperationalizationClusterPaged[~azure.mgmt.machinelearningcompute.models.OperationalizationCluster] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_by_resource_group.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$') + } + 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') + if skiptoken is not None: + query_parameters['$skiptoken'] = self._serialize.query("skiptoken", skiptoken, 'str') + + 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.OperationalizationClusterPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningCompute/operationalizationClusters'} + + def list_by_subscription_id( + self, skiptoken=None, custom_headers=None, raw=False, **operation_config): + """Gets the operationalization clusters in the specified subscription. + + :param skiptoken: Continuation token for pagination. + :type skiptoken: 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 OperationalizationCluster + :rtype: + ~azure.mgmt.machinelearningcompute.models.OperationalizationClusterPaged[~azure.mgmt.machinelearningcompute.models.OperationalizationCluster] + :raises: :class:`CloudError` + """ + def prepare_request(next_link=None): + if not next_link: + # Construct URL + url = self.list_by_subscription_id.metadata['url'] + path_format_arguments = { + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + if skiptoken is not None: + query_parameters['$skiptoken'] = self._serialize.query("skiptoken", skiptoken, 'str') + + 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.OperationalizationClusterPaged(internal_paging, self._deserialize.dependencies, header_dict) + + return deserialized + list_by_subscription_id.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.MachineLearningCompute/operationalizationClusters'}