1# coding=utf-8
2# --------------------------------------------------------------------------
3# Copyright (c) Microsoft Corporation. All rights reserved.
4# Licensed under the MIT License. See License.txt in the project root for
5# license information.
6#
7# Code generated by Microsoft (R) AutoRest Code Generator.
8# Changes may cause incorrect behavior and will be lost if the code is
9# regenerated.
10# --------------------------------------------------------------------------
11
12from typing import Any, Optional, TYPE_CHECKING
13
14from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest
15from azure.mgmt.core import AsyncARMPipelineClient
16from azure.profiles import KnownProfiles, ProfileDefinition
17from azure.profiles.multiapiclient import MultiApiClientMixin
18from msrest import Deserializer, Serializer
19
20from ._configuration import ContainerServiceClientConfiguration
21
22if TYPE_CHECKING:
23    # pylint: disable=unused-import,ungrouped-imports
24    from azure.core.credentials_async import AsyncTokenCredential
25
26class _SDKClient(object):
27    def __init__(self, *args, **kwargs):
28        """This is a fake class to support current implemetation of MultiApiClientMixin."
29        Will be removed in final version of multiapi azure-core based client
30        """
31        pass
32
33class ContainerServiceClient(MultiApiClientMixin, _SDKClient):
34    """The Container Service Client.
35
36    This ready contains multiple API versions, to help you deal with all of the Azure clouds
37    (Azure Stack, Azure Government, Azure China, etc.).
38    By default, it uses the latest API version available on public Azure.
39    For production, you should stick to a particular api-version and/or profile.
40    The profile sets a mapping between an operation group and its API version.
41    The api-version parameter sets the default API version if the operation
42    group is not described in the profile.
43
44    :param credential: Credential needed for the client to connect to Azure.
45    :type credential: ~azure.core.credentials_async.AsyncTokenCredential
46    :param subscription_id: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
47    :type subscription_id: str
48    :param api_version: API version to use if no profile is provided, or if missing in profile.
49    :type api_version: str
50    :param base_url: Service URL
51    :type base_url: str
52    :param profile: A profile definition, from KnownProfiles to dict.
53    :type profile: azure.profiles.KnownProfiles
54    :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present.
55    """
56
57    DEFAULT_API_VERSION = '2021-07-01'
58    _PROFILE_TAG = "azure.mgmt.containerservice.ContainerServiceClient"
59    LATEST_PROFILE = ProfileDefinition({
60        _PROFILE_TAG: {
61            None: DEFAULT_API_VERSION,
62            'container_services': '2017-07-01',
63            'open_shift_managed_clusters': '2019-04-30',
64        }},
65        _PROFILE_TAG + " latest"
66    )
67
68    def __init__(
69        self,
70        credential: "AsyncTokenCredential",
71        subscription_id: str,
72        api_version: Optional[str] = None,
73        base_url: Optional[str] = None,
74        profile: KnownProfiles = KnownProfiles.default,
75        **kwargs  # type: Any
76    ) -> None:
77        if not base_url:
78            base_url = 'https://management.azure.com'
79        self._config = ContainerServiceClientConfiguration(credential, subscription_id, **kwargs)
80        self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs)
81        super(ContainerServiceClient, self).__init__(
82            api_version=api_version,
83            profile=profile
84        )
85
86    @classmethod
87    def _models_dict(cls, api_version):
88        return {k: v for k, v in cls.models(api_version).__dict__.items() if isinstance(v, type)}
89
90    @classmethod
91    def models(cls, api_version=DEFAULT_API_VERSION):
92        """Module depends on the API version:
93
94           * 2017-07-01: :mod:`v2017_07_01.models<azure.mgmt.containerservice.v2017_07_01.models>`
95           * 2018-03-31: :mod:`v2018_03_31.models<azure.mgmt.containerservice.v2018_03_31.models>`
96           * 2018-08-01-preview: :mod:`v2018_08_01_preview.models<azure.mgmt.containerservice.v2018_08_01_preview.models>`
97           * 2018-09-30-preview: :mod:`v2018_09_30_preview.models<azure.mgmt.containerservice.v2018_09_30_preview.models>`
98           * 2019-02-01: :mod:`v2019_02_01.models<azure.mgmt.containerservice.v2019_02_01.models>`
99           * 2019-04-01: :mod:`v2019_04_01.models<azure.mgmt.containerservice.v2019_04_01.models>`
100           * 2019-04-30: :mod:`v2019_04_30.models<azure.mgmt.containerservice.v2019_04_30.models>`
101           * 2019-06-01: :mod:`v2019_06_01.models<azure.mgmt.containerservice.v2019_06_01.models>`
102           * 2019-08-01: :mod:`v2019_08_01.models<azure.mgmt.containerservice.v2019_08_01.models>`
103           * 2019-09-30-preview: :mod:`v2019_09_30_preview.models<azure.mgmt.containerservice.v2019_09_30_preview.models>`
104           * 2019-10-01: :mod:`v2019_10_01.models<azure.mgmt.containerservice.v2019_10_01.models>`
105           * 2019-10-27-preview: :mod:`v2019_10_27_preview.models<azure.mgmt.containerservice.v2019_10_27_preview.models>`
106           * 2019-11-01: :mod:`v2019_11_01.models<azure.mgmt.containerservice.v2019_11_01.models>`
107           * 2020-01-01: :mod:`v2020_01_01.models<azure.mgmt.containerservice.v2020_01_01.models>`
108           * 2020-02-01: :mod:`v2020_02_01.models<azure.mgmt.containerservice.v2020_02_01.models>`
109           * 2020-03-01: :mod:`v2020_03_01.models<azure.mgmt.containerservice.v2020_03_01.models>`
110           * 2020-04-01: :mod:`v2020_04_01.models<azure.mgmt.containerservice.v2020_04_01.models>`
111           * 2020-06-01: :mod:`v2020_06_01.models<azure.mgmt.containerservice.v2020_06_01.models>`
112           * 2020-07-01: :mod:`v2020_07_01.models<azure.mgmt.containerservice.v2020_07_01.models>`
113           * 2020-09-01: :mod:`v2020_09_01.models<azure.mgmt.containerservice.v2020_09_01.models>`
114           * 2020-11-01: :mod:`v2020_11_01.models<azure.mgmt.containerservice.v2020_11_01.models>`
115           * 2020-12-01: :mod:`v2020_12_01.models<azure.mgmt.containerservice.v2020_12_01.models>`
116           * 2021-02-01: :mod:`v2021_02_01.models<azure.mgmt.containerservice.v2021_02_01.models>`
117           * 2021-03-01: :mod:`v2021_03_01.models<azure.mgmt.containerservice.v2021_03_01.models>`
118           * 2021-05-01: :mod:`v2021_05_01.models<azure.mgmt.containerservice.v2021_05_01.models>`
119           * 2021-07-01: :mod:`v2021_07_01.models<azure.mgmt.containerservice.v2021_07_01.models>`
120        """
121        if api_version == '2017-07-01':
122            from ..v2017_07_01 import models
123            return models
124        elif api_version == '2018-03-31':
125            from ..v2018_03_31 import models
126            return models
127        elif api_version == '2018-08-01-preview':
128            from ..v2018_08_01_preview import models
129            return models
130        elif api_version == '2018-09-30-preview':
131            from ..v2018_09_30_preview import models
132            return models
133        elif api_version == '2019-02-01':
134            from ..v2019_02_01 import models
135            return models
136        elif api_version == '2019-04-01':
137            from ..v2019_04_01 import models
138            return models
139        elif api_version == '2019-04-30':
140            from ..v2019_04_30 import models
141            return models
142        elif api_version == '2019-06-01':
143            from ..v2019_06_01 import models
144            return models
145        elif api_version == '2019-08-01':
146            from ..v2019_08_01 import models
147            return models
148        elif api_version == '2019-09-30-preview':
149            from ..v2019_09_30_preview import models
150            return models
151        elif api_version == '2019-10-01':
152            from ..v2019_10_01 import models
153            return models
154        elif api_version == '2019-10-27-preview':
155            from ..v2019_10_27_preview import models
156            return models
157        elif api_version == '2019-11-01':
158            from ..v2019_11_01 import models
159            return models
160        elif api_version == '2020-01-01':
161            from ..v2020_01_01 import models
162            return models
163        elif api_version == '2020-02-01':
164            from ..v2020_02_01 import models
165            return models
166        elif api_version == '2020-03-01':
167            from ..v2020_03_01 import models
168            return models
169        elif api_version == '2020-04-01':
170            from ..v2020_04_01 import models
171            return models
172        elif api_version == '2020-06-01':
173            from ..v2020_06_01 import models
174            return models
175        elif api_version == '2020-07-01':
176            from ..v2020_07_01 import models
177            return models
178        elif api_version == '2020-09-01':
179            from ..v2020_09_01 import models
180            return models
181        elif api_version == '2020-11-01':
182            from ..v2020_11_01 import models
183            return models
184        elif api_version == '2020-12-01':
185            from ..v2020_12_01 import models
186            return models
187        elif api_version == '2021-02-01':
188            from ..v2021_02_01 import models
189            return models
190        elif api_version == '2021-03-01':
191            from ..v2021_03_01 import models
192            return models
193        elif api_version == '2021-05-01':
194            from ..v2021_05_01 import models
195            return models
196        elif api_version == '2021-07-01':
197            from ..v2021_07_01 import models
198            return models
199        raise ValueError("API version {} is not available".format(api_version))
200
201    @property
202    def agent_pools(self):
203        """Instance depends on the API version:
204
205           * 2019-02-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2019_02_01.aio.operations.AgentPoolsOperations>`
206           * 2019-04-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2019_04_01.aio.operations.AgentPoolsOperations>`
207           * 2019-06-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2019_06_01.aio.operations.AgentPoolsOperations>`
208           * 2019-08-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2019_08_01.aio.operations.AgentPoolsOperations>`
209           * 2019-10-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2019_10_01.aio.operations.AgentPoolsOperations>`
210           * 2019-11-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2019_11_01.aio.operations.AgentPoolsOperations>`
211           * 2020-01-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2020_01_01.aio.operations.AgentPoolsOperations>`
212           * 2020-02-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2020_02_01.aio.operations.AgentPoolsOperations>`
213           * 2020-03-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2020_03_01.aio.operations.AgentPoolsOperations>`
214           * 2020-04-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2020_04_01.aio.operations.AgentPoolsOperations>`
215           * 2020-06-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2020_06_01.aio.operations.AgentPoolsOperations>`
216           * 2020-07-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2020_07_01.aio.operations.AgentPoolsOperations>`
217           * 2020-09-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2020_09_01.aio.operations.AgentPoolsOperations>`
218           * 2020-11-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2020_11_01.aio.operations.AgentPoolsOperations>`
219           * 2020-12-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2020_12_01.aio.operations.AgentPoolsOperations>`
220           * 2021-02-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2021_02_01.aio.operations.AgentPoolsOperations>`
221           * 2021-03-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2021_03_01.aio.operations.AgentPoolsOperations>`
222           * 2021-05-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2021_05_01.aio.operations.AgentPoolsOperations>`
223           * 2021-07-01: :class:`AgentPoolsOperations<azure.mgmt.containerservice.v2021_07_01.aio.operations.AgentPoolsOperations>`
224        """
225        api_version = self._get_api_version('agent_pools')
226        if api_version == '2019-02-01':
227            from ..v2019_02_01.aio.operations import AgentPoolsOperations as OperationClass
228        elif api_version == '2019-04-01':
229            from ..v2019_04_01.aio.operations import AgentPoolsOperations as OperationClass
230        elif api_version == '2019-06-01':
231            from ..v2019_06_01.aio.operations import AgentPoolsOperations as OperationClass
232        elif api_version == '2019-08-01':
233            from ..v2019_08_01.aio.operations import AgentPoolsOperations as OperationClass
234        elif api_version == '2019-10-01':
235            from ..v2019_10_01.aio.operations import AgentPoolsOperations as OperationClass
236        elif api_version == '2019-11-01':
237            from ..v2019_11_01.aio.operations import AgentPoolsOperations as OperationClass
238        elif api_version == '2020-01-01':
239            from ..v2020_01_01.aio.operations import AgentPoolsOperations as OperationClass
240        elif api_version == '2020-02-01':
241            from ..v2020_02_01.aio.operations import AgentPoolsOperations as OperationClass
242        elif api_version == '2020-03-01':
243            from ..v2020_03_01.aio.operations import AgentPoolsOperations as OperationClass
244        elif api_version == '2020-04-01':
245            from ..v2020_04_01.aio.operations import AgentPoolsOperations as OperationClass
246        elif api_version == '2020-06-01':
247            from ..v2020_06_01.aio.operations import AgentPoolsOperations as OperationClass
248        elif api_version == '2020-07-01':
249            from ..v2020_07_01.aio.operations import AgentPoolsOperations as OperationClass
250        elif api_version == '2020-09-01':
251            from ..v2020_09_01.aio.operations import AgentPoolsOperations as OperationClass
252        elif api_version == '2020-11-01':
253            from ..v2020_11_01.aio.operations import AgentPoolsOperations as OperationClass
254        elif api_version == '2020-12-01':
255            from ..v2020_12_01.aio.operations import AgentPoolsOperations as OperationClass
256        elif api_version == '2021-02-01':
257            from ..v2021_02_01.aio.operations import AgentPoolsOperations as OperationClass
258        elif api_version == '2021-03-01':
259            from ..v2021_03_01.aio.operations import AgentPoolsOperations as OperationClass
260        elif api_version == '2021-05-01':
261            from ..v2021_05_01.aio.operations import AgentPoolsOperations as OperationClass
262        elif api_version == '2021-07-01':
263            from ..v2021_07_01.aio.operations import AgentPoolsOperations as OperationClass
264        else:
265            raise ValueError("API version {} does not have operation group 'agent_pools'".format(api_version))
266        return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)))
267
268    @property
269    def container_services(self):
270        """Instance depends on the API version:
271
272           * 2017-07-01: :class:`ContainerServicesOperations<azure.mgmt.containerservice.v2017_07_01.aio.operations.ContainerServicesOperations>`
273        """
274        api_version = self._get_api_version('container_services')
275        if api_version == '2017-07-01':
276            from ..v2017_07_01.aio.operations import ContainerServicesOperations as OperationClass
277        else:
278            raise ValueError("API version {} does not have operation group 'container_services'".format(api_version))
279        return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)))
280
281    @property
282    def maintenance_configurations(self):
283        """Instance depends on the API version:
284
285           * 2020-12-01: :class:`MaintenanceConfigurationsOperations<azure.mgmt.containerservice.v2020_12_01.aio.operations.MaintenanceConfigurationsOperations>`
286           * 2021-02-01: :class:`MaintenanceConfigurationsOperations<azure.mgmt.containerservice.v2021_02_01.aio.operations.MaintenanceConfigurationsOperations>`
287           * 2021-03-01: :class:`MaintenanceConfigurationsOperations<azure.mgmt.containerservice.v2021_03_01.aio.operations.MaintenanceConfigurationsOperations>`
288           * 2021-05-01: :class:`MaintenanceConfigurationsOperations<azure.mgmt.containerservice.v2021_05_01.aio.operations.MaintenanceConfigurationsOperations>`
289           * 2021-07-01: :class:`MaintenanceConfigurationsOperations<azure.mgmt.containerservice.v2021_07_01.aio.operations.MaintenanceConfigurationsOperations>`
290        """
291        api_version = self._get_api_version('maintenance_configurations')
292        if api_version == '2020-12-01':
293            from ..v2020_12_01.aio.operations import MaintenanceConfigurationsOperations as OperationClass
294        elif api_version == '2021-02-01':
295            from ..v2021_02_01.aio.operations import MaintenanceConfigurationsOperations as OperationClass
296        elif api_version == '2021-03-01':
297            from ..v2021_03_01.aio.operations import MaintenanceConfigurationsOperations as OperationClass
298        elif api_version == '2021-05-01':
299            from ..v2021_05_01.aio.operations import MaintenanceConfigurationsOperations as OperationClass
300        elif api_version == '2021-07-01':
301            from ..v2021_07_01.aio.operations import MaintenanceConfigurationsOperations as OperationClass
302        else:
303            raise ValueError("API version {} does not have operation group 'maintenance_configurations'".format(api_version))
304        return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)))
305
306    @property
307    def managed_clusters(self):
308        """Instance depends on the API version:
309
310           * 2018-03-31: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2018_03_31.aio.operations.ManagedClustersOperations>`
311           * 2018-08-01-preview: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2018_08_01_preview.aio.operations.ManagedClustersOperations>`
312           * 2019-02-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2019_02_01.aio.operations.ManagedClustersOperations>`
313           * 2019-04-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2019_04_01.aio.operations.ManagedClustersOperations>`
314           * 2019-06-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2019_06_01.aio.operations.ManagedClustersOperations>`
315           * 2019-08-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2019_08_01.aio.operations.ManagedClustersOperations>`
316           * 2019-10-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2019_10_01.aio.operations.ManagedClustersOperations>`
317           * 2019-11-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2019_11_01.aio.operations.ManagedClustersOperations>`
318           * 2020-01-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2020_01_01.aio.operations.ManagedClustersOperations>`
319           * 2020-02-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2020_02_01.aio.operations.ManagedClustersOperations>`
320           * 2020-03-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2020_03_01.aio.operations.ManagedClustersOperations>`
321           * 2020-04-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2020_04_01.aio.operations.ManagedClustersOperations>`
322           * 2020-06-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2020_06_01.aio.operations.ManagedClustersOperations>`
323           * 2020-07-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2020_07_01.aio.operations.ManagedClustersOperations>`
324           * 2020-09-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2020_09_01.aio.operations.ManagedClustersOperations>`
325           * 2020-11-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2020_11_01.aio.operations.ManagedClustersOperations>`
326           * 2020-12-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2020_12_01.aio.operations.ManagedClustersOperations>`
327           * 2021-02-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2021_02_01.aio.operations.ManagedClustersOperations>`
328           * 2021-03-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2021_03_01.aio.operations.ManagedClustersOperations>`
329           * 2021-05-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2021_05_01.aio.operations.ManagedClustersOperations>`
330           * 2021-07-01: :class:`ManagedClustersOperations<azure.mgmt.containerservice.v2021_07_01.aio.operations.ManagedClustersOperations>`
331        """
332        api_version = self._get_api_version('managed_clusters')
333        if api_version == '2018-03-31':
334            from ..v2018_03_31.aio.operations import ManagedClustersOperations as OperationClass
335        elif api_version == '2018-08-01-preview':
336            from ..v2018_08_01_preview.aio.operations import ManagedClustersOperations as OperationClass
337        elif api_version == '2019-02-01':
338            from ..v2019_02_01.aio.operations import ManagedClustersOperations as OperationClass
339        elif api_version == '2019-04-01':
340            from ..v2019_04_01.aio.operations import ManagedClustersOperations as OperationClass
341        elif api_version == '2019-06-01':
342            from ..v2019_06_01.aio.operations import ManagedClustersOperations as OperationClass
343        elif api_version == '2019-08-01':
344            from ..v2019_08_01.aio.operations import ManagedClustersOperations as OperationClass
345        elif api_version == '2019-10-01':
346            from ..v2019_10_01.aio.operations import ManagedClustersOperations as OperationClass
347        elif api_version == '2019-11-01':
348            from ..v2019_11_01.aio.operations import ManagedClustersOperations as OperationClass
349        elif api_version == '2020-01-01':
350            from ..v2020_01_01.aio.operations import ManagedClustersOperations as OperationClass
351        elif api_version == '2020-02-01':
352            from ..v2020_02_01.aio.operations import ManagedClustersOperations as OperationClass
353        elif api_version == '2020-03-01':
354            from ..v2020_03_01.aio.operations import ManagedClustersOperations as OperationClass
355        elif api_version == '2020-04-01':
356            from ..v2020_04_01.aio.operations import ManagedClustersOperations as OperationClass
357        elif api_version == '2020-06-01':
358            from ..v2020_06_01.aio.operations import ManagedClustersOperations as OperationClass
359        elif api_version == '2020-07-01':
360            from ..v2020_07_01.aio.operations import ManagedClustersOperations as OperationClass
361        elif api_version == '2020-09-01':
362            from ..v2020_09_01.aio.operations import ManagedClustersOperations as OperationClass
363        elif api_version == '2020-11-01':
364            from ..v2020_11_01.aio.operations import ManagedClustersOperations as OperationClass
365        elif api_version == '2020-12-01':
366            from ..v2020_12_01.aio.operations import ManagedClustersOperations as OperationClass
367        elif api_version == '2021-02-01':
368            from ..v2021_02_01.aio.operations import ManagedClustersOperations as OperationClass
369        elif api_version == '2021-03-01':
370            from ..v2021_03_01.aio.operations import ManagedClustersOperations as OperationClass
371        elif api_version == '2021-05-01':
372            from ..v2021_05_01.aio.operations import ManagedClustersOperations as OperationClass
373        elif api_version == '2021-07-01':
374            from ..v2021_07_01.aio.operations import ManagedClustersOperations as OperationClass
375        else:
376            raise ValueError("API version {} does not have operation group 'managed_clusters'".format(api_version))
377        return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)))
378
379    @property
380    def open_shift_managed_clusters(self):
381        """Instance depends on the API version:
382
383           * 2018-09-30-preview: :class:`OpenShiftManagedClustersOperations<azure.mgmt.containerservice.v2018_09_30_preview.aio.operations.OpenShiftManagedClustersOperations>`
384           * 2019-04-30: :class:`OpenShiftManagedClustersOperations<azure.mgmt.containerservice.v2019_04_30.aio.operations.OpenShiftManagedClustersOperations>`
385           * 2019-09-30-preview: :class:`OpenShiftManagedClustersOperations<azure.mgmt.containerservice.v2019_09_30_preview.aio.operations.OpenShiftManagedClustersOperations>`
386           * 2019-10-27-preview: :class:`OpenShiftManagedClustersOperations<azure.mgmt.containerservice.v2019_10_27_preview.aio.operations.OpenShiftManagedClustersOperations>`
387        """
388        api_version = self._get_api_version('open_shift_managed_clusters')
389        if api_version == '2018-09-30-preview':
390            from ..v2018_09_30_preview.aio.operations import OpenShiftManagedClustersOperations as OperationClass
391        elif api_version == '2019-04-30':
392            from ..v2019_04_30.aio.operations import OpenShiftManagedClustersOperations as OperationClass
393        elif api_version == '2019-09-30-preview':
394            from ..v2019_09_30_preview.aio.operations import OpenShiftManagedClustersOperations as OperationClass
395        elif api_version == '2019-10-27-preview':
396            from ..v2019_10_27_preview.aio.operations import OpenShiftManagedClustersOperations as OperationClass
397        else:
398            raise ValueError("API version {} does not have operation group 'open_shift_managed_clusters'".format(api_version))
399        return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)))
400
401    @property
402    def operations(self):
403        """Instance depends on the API version:
404
405           * 2018-03-31: :class:`Operations<azure.mgmt.containerservice.v2018_03_31.aio.operations.Operations>`
406           * 2018-08-01-preview: :class:`Operations<azure.mgmt.containerservice.v2018_08_01_preview.aio.operations.Operations>`
407           * 2019-02-01: :class:`Operations<azure.mgmt.containerservice.v2019_02_01.aio.operations.Operations>`
408           * 2019-04-01: :class:`Operations<azure.mgmt.containerservice.v2019_04_01.aio.operations.Operations>`
409           * 2019-06-01: :class:`Operations<azure.mgmt.containerservice.v2019_06_01.aio.operations.Operations>`
410           * 2019-08-01: :class:`Operations<azure.mgmt.containerservice.v2019_08_01.aio.operations.Operations>`
411           * 2019-10-01: :class:`Operations<azure.mgmt.containerservice.v2019_10_01.aio.operations.Operations>`
412           * 2019-11-01: :class:`Operations<azure.mgmt.containerservice.v2019_11_01.aio.operations.Operations>`
413           * 2020-01-01: :class:`Operations<azure.mgmt.containerservice.v2020_01_01.aio.operations.Operations>`
414           * 2020-02-01: :class:`Operations<azure.mgmt.containerservice.v2020_02_01.aio.operations.Operations>`
415           * 2020-03-01: :class:`Operations<azure.mgmt.containerservice.v2020_03_01.aio.operations.Operations>`
416           * 2020-04-01: :class:`Operations<azure.mgmt.containerservice.v2020_04_01.aio.operations.Operations>`
417           * 2020-06-01: :class:`Operations<azure.mgmt.containerservice.v2020_06_01.aio.operations.Operations>`
418           * 2020-07-01: :class:`Operations<azure.mgmt.containerservice.v2020_07_01.aio.operations.Operations>`
419           * 2020-09-01: :class:`Operations<azure.mgmt.containerservice.v2020_09_01.aio.operations.Operations>`
420           * 2020-11-01: :class:`Operations<azure.mgmt.containerservice.v2020_11_01.aio.operations.Operations>`
421           * 2020-12-01: :class:`Operations<azure.mgmt.containerservice.v2020_12_01.aio.operations.Operations>`
422           * 2021-02-01: :class:`Operations<azure.mgmt.containerservice.v2021_02_01.aio.operations.Operations>`
423           * 2021-03-01: :class:`Operations<azure.mgmt.containerservice.v2021_03_01.aio.operations.Operations>`
424           * 2021-05-01: :class:`Operations<azure.mgmt.containerservice.v2021_05_01.aio.operations.Operations>`
425           * 2021-07-01: :class:`Operations<azure.mgmt.containerservice.v2021_07_01.aio.operations.Operations>`
426        """
427        api_version = self._get_api_version('operations')
428        if api_version == '2018-03-31':
429            from ..v2018_03_31.aio.operations import Operations as OperationClass
430        elif api_version == '2018-08-01-preview':
431            from ..v2018_08_01_preview.aio.operations import Operations as OperationClass
432        elif api_version == '2019-02-01':
433            from ..v2019_02_01.aio.operations import Operations as OperationClass
434        elif api_version == '2019-04-01':
435            from ..v2019_04_01.aio.operations import Operations as OperationClass
436        elif api_version == '2019-06-01':
437            from ..v2019_06_01.aio.operations import Operations as OperationClass
438        elif api_version == '2019-08-01':
439            from ..v2019_08_01.aio.operations import Operations as OperationClass
440        elif api_version == '2019-10-01':
441            from ..v2019_10_01.aio.operations import Operations as OperationClass
442        elif api_version == '2019-11-01':
443            from ..v2019_11_01.aio.operations import Operations as OperationClass
444        elif api_version == '2020-01-01':
445            from ..v2020_01_01.aio.operations import Operations as OperationClass
446        elif api_version == '2020-02-01':
447            from ..v2020_02_01.aio.operations import Operations as OperationClass
448        elif api_version == '2020-03-01':
449            from ..v2020_03_01.aio.operations import Operations as OperationClass
450        elif api_version == '2020-04-01':
451            from ..v2020_04_01.aio.operations import Operations as OperationClass
452        elif api_version == '2020-06-01':
453            from ..v2020_06_01.aio.operations import Operations as OperationClass
454        elif api_version == '2020-07-01':
455            from ..v2020_07_01.aio.operations import Operations as OperationClass
456        elif api_version == '2020-09-01':
457            from ..v2020_09_01.aio.operations import Operations as OperationClass
458        elif api_version == '2020-11-01':
459            from ..v2020_11_01.aio.operations import Operations as OperationClass
460        elif api_version == '2020-12-01':
461            from ..v2020_12_01.aio.operations import Operations as OperationClass
462        elif api_version == '2021-02-01':
463            from ..v2021_02_01.aio.operations import Operations as OperationClass
464        elif api_version == '2021-03-01':
465            from ..v2021_03_01.aio.operations import Operations as OperationClass
466        elif api_version == '2021-05-01':
467            from ..v2021_05_01.aio.operations import Operations as OperationClass
468        elif api_version == '2021-07-01':
469            from ..v2021_07_01.aio.operations import Operations as OperationClass
470        else:
471            raise ValueError("API version {} does not have operation group 'operations'".format(api_version))
472        return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)))
473
474    @property
475    def private_endpoint_connections(self):
476        """Instance depends on the API version:
477
478           * 2020-06-01: :class:`PrivateEndpointConnectionsOperations<azure.mgmt.containerservice.v2020_06_01.aio.operations.PrivateEndpointConnectionsOperations>`
479           * 2020-07-01: :class:`PrivateEndpointConnectionsOperations<azure.mgmt.containerservice.v2020_07_01.aio.operations.PrivateEndpointConnectionsOperations>`
480           * 2020-09-01: :class:`PrivateEndpointConnectionsOperations<azure.mgmt.containerservice.v2020_09_01.aio.operations.PrivateEndpointConnectionsOperations>`
481           * 2020-11-01: :class:`PrivateEndpointConnectionsOperations<azure.mgmt.containerservice.v2020_11_01.aio.operations.PrivateEndpointConnectionsOperations>`
482           * 2020-12-01: :class:`PrivateEndpointConnectionsOperations<azure.mgmt.containerservice.v2020_12_01.aio.operations.PrivateEndpointConnectionsOperations>`
483           * 2021-02-01: :class:`PrivateEndpointConnectionsOperations<azure.mgmt.containerservice.v2021_02_01.aio.operations.PrivateEndpointConnectionsOperations>`
484           * 2021-03-01: :class:`PrivateEndpointConnectionsOperations<azure.mgmt.containerservice.v2021_03_01.aio.operations.PrivateEndpointConnectionsOperations>`
485           * 2021-05-01: :class:`PrivateEndpointConnectionsOperations<azure.mgmt.containerservice.v2021_05_01.aio.operations.PrivateEndpointConnectionsOperations>`
486           * 2021-07-01: :class:`PrivateEndpointConnectionsOperations<azure.mgmt.containerservice.v2021_07_01.aio.operations.PrivateEndpointConnectionsOperations>`
487        """
488        api_version = self._get_api_version('private_endpoint_connections')
489        if api_version == '2020-06-01':
490            from ..v2020_06_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass
491        elif api_version == '2020-07-01':
492            from ..v2020_07_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass
493        elif api_version == '2020-09-01':
494            from ..v2020_09_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass
495        elif api_version == '2020-11-01':
496            from ..v2020_11_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass
497        elif api_version == '2020-12-01':
498            from ..v2020_12_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass
499        elif api_version == '2021-02-01':
500            from ..v2021_02_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass
501        elif api_version == '2021-03-01':
502            from ..v2021_03_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass
503        elif api_version == '2021-05-01':
504            from ..v2021_05_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass
505        elif api_version == '2021-07-01':
506            from ..v2021_07_01.aio.operations import PrivateEndpointConnectionsOperations as OperationClass
507        else:
508            raise ValueError("API version {} does not have operation group 'private_endpoint_connections'".format(api_version))
509        return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)))
510
511    @property
512    def private_link_resources(self):
513        """Instance depends on the API version:
514
515           * 2020-09-01: :class:`PrivateLinkResourcesOperations<azure.mgmt.containerservice.v2020_09_01.aio.operations.PrivateLinkResourcesOperations>`
516           * 2020-11-01: :class:`PrivateLinkResourcesOperations<azure.mgmt.containerservice.v2020_11_01.aio.operations.PrivateLinkResourcesOperations>`
517           * 2020-12-01: :class:`PrivateLinkResourcesOperations<azure.mgmt.containerservice.v2020_12_01.aio.operations.PrivateLinkResourcesOperations>`
518           * 2021-02-01: :class:`PrivateLinkResourcesOperations<azure.mgmt.containerservice.v2021_02_01.aio.operations.PrivateLinkResourcesOperations>`
519           * 2021-03-01: :class:`PrivateLinkResourcesOperations<azure.mgmt.containerservice.v2021_03_01.aio.operations.PrivateLinkResourcesOperations>`
520           * 2021-05-01: :class:`PrivateLinkResourcesOperations<azure.mgmt.containerservice.v2021_05_01.aio.operations.PrivateLinkResourcesOperations>`
521           * 2021-07-01: :class:`PrivateLinkResourcesOperations<azure.mgmt.containerservice.v2021_07_01.aio.operations.PrivateLinkResourcesOperations>`
522        """
523        api_version = self._get_api_version('private_link_resources')
524        if api_version == '2020-09-01':
525            from ..v2020_09_01.aio.operations import PrivateLinkResourcesOperations as OperationClass
526        elif api_version == '2020-11-01':
527            from ..v2020_11_01.aio.operations import PrivateLinkResourcesOperations as OperationClass
528        elif api_version == '2020-12-01':
529            from ..v2020_12_01.aio.operations import PrivateLinkResourcesOperations as OperationClass
530        elif api_version == '2021-02-01':
531            from ..v2021_02_01.aio.operations import PrivateLinkResourcesOperations as OperationClass
532        elif api_version == '2021-03-01':
533            from ..v2021_03_01.aio.operations import PrivateLinkResourcesOperations as OperationClass
534        elif api_version == '2021-05-01':
535            from ..v2021_05_01.aio.operations import PrivateLinkResourcesOperations as OperationClass
536        elif api_version == '2021-07-01':
537            from ..v2021_07_01.aio.operations import PrivateLinkResourcesOperations as OperationClass
538        else:
539            raise ValueError("API version {} does not have operation group 'private_link_resources'".format(api_version))
540        return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)))
541
542    @property
543    def resolve_private_link_service_id(self):
544        """Instance depends on the API version:
545
546           * 2020-09-01: :class:`ResolvePrivateLinkServiceIdOperations<azure.mgmt.containerservice.v2020_09_01.aio.operations.ResolvePrivateLinkServiceIdOperations>`
547           * 2020-11-01: :class:`ResolvePrivateLinkServiceIdOperations<azure.mgmt.containerservice.v2020_11_01.aio.operations.ResolvePrivateLinkServiceIdOperations>`
548           * 2020-12-01: :class:`ResolvePrivateLinkServiceIdOperations<azure.mgmt.containerservice.v2020_12_01.aio.operations.ResolvePrivateLinkServiceIdOperations>`
549           * 2021-02-01: :class:`ResolvePrivateLinkServiceIdOperations<azure.mgmt.containerservice.v2021_02_01.aio.operations.ResolvePrivateLinkServiceIdOperations>`
550           * 2021-03-01: :class:`ResolvePrivateLinkServiceIdOperations<azure.mgmt.containerservice.v2021_03_01.aio.operations.ResolvePrivateLinkServiceIdOperations>`
551           * 2021-05-01: :class:`ResolvePrivateLinkServiceIdOperations<azure.mgmt.containerservice.v2021_05_01.aio.operations.ResolvePrivateLinkServiceIdOperations>`
552           * 2021-07-01: :class:`ResolvePrivateLinkServiceIdOperations<azure.mgmt.containerservice.v2021_07_01.aio.operations.ResolvePrivateLinkServiceIdOperations>`
553        """
554        api_version = self._get_api_version('resolve_private_link_service_id')
555        if api_version == '2020-09-01':
556            from ..v2020_09_01.aio.operations import ResolvePrivateLinkServiceIdOperations as OperationClass
557        elif api_version == '2020-11-01':
558            from ..v2020_11_01.aio.operations import ResolvePrivateLinkServiceIdOperations as OperationClass
559        elif api_version == '2020-12-01':
560            from ..v2020_12_01.aio.operations import ResolvePrivateLinkServiceIdOperations as OperationClass
561        elif api_version == '2021-02-01':
562            from ..v2021_02_01.aio.operations import ResolvePrivateLinkServiceIdOperations as OperationClass
563        elif api_version == '2021-03-01':
564            from ..v2021_03_01.aio.operations import ResolvePrivateLinkServiceIdOperations as OperationClass
565        elif api_version == '2021-05-01':
566            from ..v2021_05_01.aio.operations import ResolvePrivateLinkServiceIdOperations as OperationClass
567        elif api_version == '2021-07-01':
568            from ..v2021_07_01.aio.operations import ResolvePrivateLinkServiceIdOperations as OperationClass
569        else:
570            raise ValueError("API version {} does not have operation group 'resolve_private_link_service_id'".format(api_version))
571        return OperationClass(self._client, self._config, Serializer(self._models_dict(api_version)), Deserializer(self._models_dict(api_version)))
572
573    async def close(self):
574        await self._client.close()
575    async def __aenter__(self):
576        await self._client.__aenter__()
577        return self
578    async def __aexit__(self, *exc_details):
579        await self._client.__aexit__(*exc_details)
580