Skip to content

Commit 6a79bf9

Browse files
kshitij-microsoftJayesh Tanna
andauthored
Model integration with DT and online-deployment message (#44261)
* Restclient changes * Partial commit of DT with models * commit of DT with models * online deployment message * fix PR * resolving types * resolving build * fixing mypy, pylint and black * resolving comments * adding a sample * adding test cases * black and pylint fixes --------- Co-authored-by: Jayesh Tanna <jatanna@microsoft.com>
1 parent 4896496 commit 6a79bf9

File tree

52 files changed

+6948
-5325
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+6948
-5325
lines changed

sdk/ml/azure-ai-ml/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
### Features Added
66

7+
- Added support for `default_deployment_template` property in Model entity, allowing models to specify a default deployment template for online deployments.
8+
- Online deployments now display informational messages when deploying models with configured default deployment templates.
9+
710
### Bugs Fixed
811

912
### Other Changes

sdk/ml/azure-ai-ml/azure/ai/ml/_restclient/v2021_10_01_dataplanepreview/_azure_machine_learning_workspaces.py

Lines changed: 14 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,22 @@
99
from copy import deepcopy
1010
from typing import TYPE_CHECKING
1111

12-
from azure.mgmt.core import ARMPipelineClient
1312
from msrest import Deserializer, Serializer
1413

14+
from azure.mgmt.core import ARMPipelineClient
15+
1516
from . import models
1617
from ._configuration import AzureMachineLearningWorkspacesConfiguration
17-
from .operations import (
18-
CodeContainersOperations,
19-
CodeVersionsOperations,
20-
ComponentContainersOperations,
21-
ComponentVersionsOperations,
22-
DataContainersOperations,
23-
DataReferencesOperations,
24-
DataVersionsOperations,
25-
EnvironmentContainersOperations,
26-
EnvironmentVersionsOperations,
27-
ModelContainersOperations,
28-
ModelVersionsOperations,
29-
ResourceManagementAssetReferenceOperations,
30-
TemporaryDataReferencesOperations,
31-
)
18+
from .operations import CodeContainersOperations, CodeVersionsOperations, ComponentContainersOperations, ComponentVersionsOperations, DataContainersOperations, DataReferencesOperations, DataVersionsOperations, EnvironmentContainersOperations, EnvironmentVersionsOperations, ModelContainersOperations, ModelVersionsOperations, ResourceManagementAssetReferenceOperations, TemporaryDataReferencesOperations
3219

3320
if TYPE_CHECKING:
3421
# pylint: disable=unused-import,ungrouped-imports
35-
from typing import Any, Optional
22+
from typing import Any
3623

3724
from azure.core.credentials import TokenCredential
3825
from azure.core.rest import HttpRequest, HttpResponse
3926

40-
41-
class AzureMachineLearningWorkspaces(object):
27+
class AzureMachineLearningWorkspaces(object): # pylint: disable=too-many-instance-attributes
4228
"""AzureMachineLearningWorkspaces.
4329
4430
:ivar code_containers: CodeContainersOperations operations
@@ -99,9 +85,7 @@ def __init__(
9985
**kwargs # type: Any
10086
):
10187
# type: (...) -> None
102-
self._config = AzureMachineLearningWorkspacesConfiguration(
103-
credential=credential, subscription_id=subscription_id, **kwargs
104-
)
88+
self._config = AzureMachineLearningWorkspacesConfiguration(credential=credential, subscription_id=subscription_id, **kwargs)
10589
self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs)
10690

10791
client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)}
@@ -110,31 +94,18 @@ def __init__(
11094
self._serialize.client_side_validation = False
11195
self.code_containers = CodeContainersOperations(self._client, self._config, self._serialize, self._deserialize)
11296
self.code_versions = CodeVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
113-
self.component_containers = ComponentContainersOperations(
114-
self._client, self._config, self._serialize, self._deserialize
115-
)
116-
self.component_versions = ComponentVersionsOperations(
117-
self._client, self._config, self._serialize, self._deserialize
118-
)
97+
self.component_containers = ComponentContainersOperations(self._client, self._config, self._serialize, self._deserialize)
98+
self.component_versions = ComponentVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
11999
self.data_containers = DataContainersOperations(self._client, self._config, self._serialize, self._deserialize)
120100
self.data_versions = DataVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
121101
self.data_references = DataReferencesOperations(self._client, self._config, self._serialize, self._deserialize)
122-
self.environment_containers = EnvironmentContainersOperations(
123-
self._client, self._config, self._serialize, self._deserialize
124-
)
125-
self.environment_versions = EnvironmentVersionsOperations(
126-
self._client, self._config, self._serialize, self._deserialize
127-
)
128-
self.resource_management_asset_reference = ResourceManagementAssetReferenceOperations(
129-
self._client, self._config, self._serialize, self._deserialize
130-
)
131-
self.model_containers = ModelContainersOperations(
132-
self._client, self._config, self._serialize, self._deserialize
133-
)
102+
self.environment_containers = EnvironmentContainersOperations(self._client, self._config, self._serialize, self._deserialize)
103+
self.environment_versions = EnvironmentVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
104+
self.resource_management_asset_reference = ResourceManagementAssetReferenceOperations(self._client, self._config, self._serialize, self._deserialize)
105+
self.model_containers = ModelContainersOperations(self._client, self._config, self._serialize, self._deserialize)
134106
self.model_versions = ModelVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
135-
self.temporary_data_references = TemporaryDataReferencesOperations(
136-
self._client, self._config, self._serialize, self._deserialize
137-
)
107+
self.temporary_data_references = TemporaryDataReferencesOperations(self._client, self._config, self._serialize, self._deserialize)
108+
138109

139110
def _send_request(
140111
self,

sdk/ml/azure-ai-ml/azure/ai/ml/_restclient/v2021_10_01_dataplanepreview/_configuration.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from azure.core.credentials import TokenCredential
2222

2323

24-
class AzureMachineLearningWorkspacesConfiguration(Configuration):
24+
class AzureMachineLearningWorkspacesConfiguration(Configuration): # pylint: disable=too-many-instance-attributes
2525
"""Configuration for AzureMachineLearningWorkspaces.
2626
2727
Note that all parameters used to create this instance are saved as instance
@@ -31,7 +31,8 @@ class AzureMachineLearningWorkspacesConfiguration(Configuration):
3131
:type credential: ~azure.core.credentials.TokenCredential
3232
:param subscription_id: The ID of the target subscription.
3333
:type subscription_id: str
34-
:keyword api_version: Api Version. The default value is "2021-10-01-dataplanepreview". Note that overriding this default value may result in unsupported behavior.
34+
:keyword api_version: Api Version. The default value is "2021-10-01-dataplanepreview". Note
35+
that overriding this default value may result in unsupported behavior.
3536
:paramtype api_version: str
3637
"""
3738

@@ -43,7 +44,7 @@ def __init__(
4344
):
4445
# type: (...) -> None
4546
super(AzureMachineLearningWorkspacesConfiguration, self).__init__(**kwargs)
46-
api_version = kwargs.pop("api_version", "2021-10-01-dataplanepreview") # type: str
47+
api_version = kwargs.pop('api_version', "2021-10-01-dataplanepreview") # type: str
4748

4849
if credential is None:
4950
raise ValueError("Parameter 'credential' must not be None.")
@@ -53,24 +54,23 @@ def __init__(
5354
self.credential = credential
5455
self.subscription_id = subscription_id
5556
self.api_version = api_version
56-
self.credential_scopes = kwargs.pop("credential_scopes", ["https://management.azure.com/.default"])
57-
kwargs.setdefault("sdk_moniker", "mgmt-machinelearningservices/{}".format(VERSION))
57+
self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default'])
58+
kwargs.setdefault('sdk_moniker', 'mgmt-machinelearningservices/{}'.format(VERSION))
5859
self._configure(**kwargs)
5960

6061
def _configure(
61-
self, **kwargs # type: Any
62+
self,
63+
**kwargs # type: Any
6264
):
6365
# type: (...) -> None
64-
self.user_agent_policy = kwargs.get("user_agent_policy") or policies.UserAgentPolicy(**kwargs)
65-
self.headers_policy = kwargs.get("headers_policy") or policies.HeadersPolicy(**kwargs)
66-
self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs)
67-
self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs)
68-
self.http_logging_policy = kwargs.get("http_logging_policy") or ARMHttpLoggingPolicy(**kwargs)
69-
self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs)
70-
self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs)
71-
self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy(**kwargs)
72-
self.authentication_policy = kwargs.get("authentication_policy")
66+
self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs)
67+
self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs)
68+
self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs)
69+
self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs)
70+
self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs)
71+
self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs)
72+
self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs)
73+
self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs)
74+
self.authentication_policy = kwargs.get('authentication_policy')
7375
if self.credential and not self.authentication_policy:
74-
self.authentication_policy = ARMChallengeAuthenticationPolicy(
75-
self.credential, *self.credential_scopes, **kwargs
76-
)
76+
self.authentication_policy = ARMChallengeAuthenticationPolicy(self.credential, *self.credential_scopes, **kwargs)

sdk/ml/azure-ai-ml/azure/ai/ml/_restclient/v2021_10_01_dataplanepreview/aio/_azure_machine_learning_workspaces.py

Lines changed: 19 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,22 @@
77
# --------------------------------------------------------------------------
88

99
from copy import deepcopy
10-
from typing import Any, Awaitable, Optional, TYPE_CHECKING
10+
from typing import Any, Awaitable, TYPE_CHECKING
11+
12+
from msrest import Deserializer, Serializer
1113

1214
from azure.core.rest import AsyncHttpResponse, HttpRequest
1315
from azure.mgmt.core import AsyncARMPipelineClient
14-
from msrest import Deserializer, Serializer
1516

1617
from .. import models
1718
from ._configuration import AzureMachineLearningWorkspacesConfiguration
18-
from .operations import (
19-
CodeContainersOperations,
20-
CodeVersionsOperations,
21-
ComponentContainersOperations,
22-
ComponentVersionsOperations,
23-
DataContainersOperations,
24-
DataReferencesOperations,
25-
DataVersionsOperations,
26-
EnvironmentContainersOperations,
27-
EnvironmentVersionsOperations,
28-
ModelContainersOperations,
29-
ModelVersionsOperations,
30-
ResourceManagementAssetReferenceOperations,
31-
TemporaryDataReferencesOperations,
32-
)
19+
from .operations import CodeContainersOperations, CodeVersionsOperations, ComponentContainersOperations, ComponentVersionsOperations, DataContainersOperations, DataReferencesOperations, DataVersionsOperations, EnvironmentContainersOperations, EnvironmentVersionsOperations, ModelContainersOperations, ModelVersionsOperations, ResourceManagementAssetReferenceOperations, TemporaryDataReferencesOperations
3320

3421
if TYPE_CHECKING:
3522
# pylint: disable=unused-import,ungrouped-imports
3623
from azure.core.credentials_async import AsyncTokenCredential
3724

38-
39-
class AzureMachineLearningWorkspaces:
25+
class AzureMachineLearningWorkspaces: # pylint: disable=too-many-instance-attributes
4026
"""AzureMachineLearningWorkspaces.
4127
4228
:ivar code_containers: CodeContainersOperations operations
@@ -99,9 +85,7 @@ def __init__(
9985
base_url: str = "https://management.azure.com",
10086
**kwargs: Any
10187
) -> None:
102-
self._config = AzureMachineLearningWorkspacesConfiguration(
103-
credential=credential, subscription_id=subscription_id, **kwargs
104-
)
88+
self._config = AzureMachineLearningWorkspacesConfiguration(credential=credential, subscription_id=subscription_id, **kwargs)
10589
self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs)
10690

10791
client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)}
@@ -110,33 +94,24 @@ def __init__(
11094
self._serialize.client_side_validation = False
11195
self.code_containers = CodeContainersOperations(self._client, self._config, self._serialize, self._deserialize)
11296
self.code_versions = CodeVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
113-
self.component_containers = ComponentContainersOperations(
114-
self._client, self._config, self._serialize, self._deserialize
115-
)
116-
self.component_versions = ComponentVersionsOperations(
117-
self._client, self._config, self._serialize, self._deserialize
118-
)
97+
self.component_containers = ComponentContainersOperations(self._client, self._config, self._serialize, self._deserialize)
98+
self.component_versions = ComponentVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
11999
self.data_containers = DataContainersOperations(self._client, self._config, self._serialize, self._deserialize)
120100
self.data_versions = DataVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
121101
self.data_references = DataReferencesOperations(self._client, self._config, self._serialize, self._deserialize)
122-
self.environment_containers = EnvironmentContainersOperations(
123-
self._client, self._config, self._serialize, self._deserialize
124-
)
125-
self.environment_versions = EnvironmentVersionsOperations(
126-
self._client, self._config, self._serialize, self._deserialize
127-
)
128-
self.resource_management_asset_reference = ResourceManagementAssetReferenceOperations(
129-
self._client, self._config, self._serialize, self._deserialize
130-
)
131-
self.model_containers = ModelContainersOperations(
132-
self._client, self._config, self._serialize, self._deserialize
133-
)
102+
self.environment_containers = EnvironmentContainersOperations(self._client, self._config, self._serialize, self._deserialize)
103+
self.environment_versions = EnvironmentVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
104+
self.resource_management_asset_reference = ResourceManagementAssetReferenceOperations(self._client, self._config, self._serialize, self._deserialize)
105+
self.model_containers = ModelContainersOperations(self._client, self._config, self._serialize, self._deserialize)
134106
self.model_versions = ModelVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
135-
self.temporary_data_references = TemporaryDataReferencesOperations(
136-
self._client, self._config, self._serialize, self._deserialize
137-
)
107+
self.temporary_data_references = TemporaryDataReferencesOperations(self._client, self._config, self._serialize, self._deserialize)
138108

139-
def _send_request(self, request: HttpRequest, **kwargs: Any) -> Awaitable[AsyncHttpResponse]:
109+
110+
def _send_request(
111+
self,
112+
request: HttpRequest,
113+
**kwargs: Any
114+
) -> Awaitable[AsyncHttpResponse]:
140115
"""Runs the network request through the client's chained policies.
141116
142117
>>> from azure.core.rest import HttpRequest

sdk/ml/azure-ai-ml/azure/ai/ml/_restclient/v2021_10_01_dataplanepreview/aio/_configuration.py

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from azure.core.credentials_async import AsyncTokenCredential
2020

2121

22-
class AzureMachineLearningWorkspacesConfiguration(Configuration):
22+
class AzureMachineLearningWorkspacesConfiguration(Configuration): # pylint: disable=too-many-instance-attributes
2323
"""Configuration for AzureMachineLearningWorkspaces.
2424
2525
Note that all parameters used to create this instance are saved as instance
@@ -29,13 +29,19 @@ class AzureMachineLearningWorkspacesConfiguration(Configuration):
2929
:type credential: ~azure.core.credentials_async.AsyncTokenCredential
3030
:param subscription_id: The ID of the target subscription.
3131
:type subscription_id: str
32-
:keyword api_version: Api Version. The default value is "2021-10-01-dataplanepreview". Note that overriding this default value may result in unsupported behavior.
32+
:keyword api_version: Api Version. The default value is "2021-10-01-dataplanepreview". Note
33+
that overriding this default value may result in unsupported behavior.
3334
:paramtype api_version: str
3435
"""
3536

36-
def __init__(self, credential: "AsyncTokenCredential", subscription_id: str, **kwargs: Any) -> None:
37+
def __init__(
38+
self,
39+
credential: "AsyncTokenCredential",
40+
subscription_id: str,
41+
**kwargs: Any
42+
) -> None:
3743
super(AzureMachineLearningWorkspacesConfiguration, self).__init__(**kwargs)
38-
api_version = kwargs.pop("api_version", "2021-10-01-dataplanepreview") # type: str
44+
api_version = kwargs.pop('api_version', "2021-10-01-dataplanepreview") # type: str
3945

4046
if credential is None:
4147
raise ValueError("Parameter 'credential' must not be None.")
@@ -45,21 +51,22 @@ def __init__(self, credential: "AsyncTokenCredential", subscription_id: str, **k
4551
self.credential = credential
4652
self.subscription_id = subscription_id
4753
self.api_version = api_version
48-
self.credential_scopes = kwargs.pop("credential_scopes", ["https://management.azure.com/.default"])
49-
kwargs.setdefault("sdk_moniker", "mgmt-machinelearningservices/{}".format(VERSION))
54+
self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default'])
55+
kwargs.setdefault('sdk_moniker', 'mgmt-machinelearningservices/{}'.format(VERSION))
5056
self._configure(**kwargs)
5157

52-
def _configure(self, **kwargs: Any) -> None:
53-
self.user_agent_policy = kwargs.get("user_agent_policy") or policies.UserAgentPolicy(**kwargs)
54-
self.headers_policy = kwargs.get("headers_policy") or policies.HeadersPolicy(**kwargs)
55-
self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs)
56-
self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs)
57-
self.http_logging_policy = kwargs.get("http_logging_policy") or ARMHttpLoggingPolicy(**kwargs)
58-
self.retry_policy = kwargs.get("retry_policy") or policies.AsyncRetryPolicy(**kwargs)
59-
self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs)
60-
self.redirect_policy = kwargs.get("redirect_policy") or policies.AsyncRedirectPolicy(**kwargs)
61-
self.authentication_policy = kwargs.get("authentication_policy")
58+
def _configure(
59+
self,
60+
**kwargs: Any
61+
) -> None:
62+
self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs)
63+
self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs)
64+
self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs)
65+
self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs)
66+
self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs)
67+
self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs)
68+
self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs)
69+
self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs)
70+
self.authentication_policy = kwargs.get('authentication_policy')
6271
if self.credential and not self.authentication_policy:
63-
self.authentication_policy = AsyncARMChallengeAuthenticationPolicy(
64-
self.credential, *self.credential_scopes, **kwargs
65-
)
72+
self.authentication_policy = AsyncARMChallengeAuthenticationPolicy(self.credential, *self.credential_scopes, **kwargs)

0 commit comments

Comments
 (0)