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 license information. 5# Code generated by Microsoft (R) AutoRest Code Generator. 6# Changes may cause incorrect behavior and will be lost if the code is regenerated. 7# -------------------------------------------------------------------------- 8 9from typing import Dict, List, Optional, Union 10 11import msrest.serialization 12 13from ._container_service_client_enums import * 14 15 16class SubResource(msrest.serialization.Model): 17 """Reference to another subresource. 18 19 Variables are only populated by the server, and will be ignored when sending a request. 20 21 :ivar id: Resource ID. 22 :vartype id: str 23 :ivar name: The name of the resource that is unique within a resource group. This name can be 24 used to access the resource. 25 :vartype name: str 26 :ivar type: Resource type. 27 :vartype type: str 28 """ 29 30 _validation = { 31 'id': {'readonly': True}, 32 'name': {'readonly': True}, 33 'type': {'readonly': True}, 34 } 35 36 _attribute_map = { 37 'id': {'key': 'id', 'type': 'str'}, 38 'name': {'key': 'name', 'type': 'str'}, 39 'type': {'key': 'type', 'type': 'str'}, 40 } 41 42 def __init__( 43 self, 44 **kwargs 45 ): 46 super(SubResource, self).__init__(**kwargs) 47 self.id = None 48 self.name = None 49 self.type = None 50 51 52class AgentPool(SubResource): 53 """Agent Pool. 54 55 Variables are only populated by the server, and will be ignored when sending a request. 56 57 :ivar id: Resource ID. 58 :vartype id: str 59 :ivar name: The name of the resource that is unique within a resource group. This name can be 60 used to access the resource. 61 :vartype name: str 62 :ivar type: Resource type. 63 :vartype type: str 64 :param count: Number of agents (VMs) to host docker containers. Allowed values must be in the 65 range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for 66 system pools. The default value is 1. 67 :type count: int 68 :param vm_size: Size of agent VMs. Possible values include: "Standard_A1", "Standard_A10", 69 "Standard_A11", "Standard_A1_v2", "Standard_A2", "Standard_A2_v2", "Standard_A2m_v2", 70 "Standard_A3", "Standard_A4", "Standard_A4_v2", "Standard_A4m_v2", "Standard_A5", 71 "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A8_v2", "Standard_A8m_v2", 72 "Standard_A9", "Standard_B2ms", "Standard_B2s", "Standard_B4ms", "Standard_B8ms", 73 "Standard_D1", "Standard_D11", "Standard_D11_v2", "Standard_D11_v2_Promo", "Standard_D12", 74 "Standard_D12_v2", "Standard_D12_v2_Promo", "Standard_D13", "Standard_D13_v2", 75 "Standard_D13_v2_Promo", "Standard_D14", "Standard_D14_v2", "Standard_D14_v2_Promo", 76 "Standard_D15_v2", "Standard_D16_v3", "Standard_D16s_v3", "Standard_D1_v2", "Standard_D2", 77 "Standard_D2_v2", "Standard_D2_v2_Promo", "Standard_D2_v3", "Standard_D2s_v3", "Standard_D3", 78 "Standard_D32_v3", "Standard_D32s_v3", "Standard_D3_v2", "Standard_D3_v2_Promo", "Standard_D4", 79 "Standard_D4_v2", "Standard_D4_v2_Promo", "Standard_D4_v3", "Standard_D4s_v3", 80 "Standard_D5_v2", "Standard_D5_v2_Promo", "Standard_D64_v3", "Standard_D64s_v3", 81 "Standard_D8_v3", "Standard_D8s_v3", "Standard_DS1", "Standard_DS11", "Standard_DS11_v2", 82 "Standard_DS11_v2_Promo", "Standard_DS12", "Standard_DS12_v2", "Standard_DS12_v2_Promo", 83 "Standard_DS13", "Standard_DS13-2_v2", "Standard_DS13-4_v2", "Standard_DS13_v2", 84 "Standard_DS13_v2_Promo", "Standard_DS14", "Standard_DS14-4_v2", "Standard_DS14-8_v2", 85 "Standard_DS14_v2", "Standard_DS14_v2_Promo", "Standard_DS15_v2", "Standard_DS1_v2", 86 "Standard_DS2", "Standard_DS2_v2", "Standard_DS2_v2_Promo", "Standard_DS3", "Standard_DS3_v2", 87 "Standard_DS3_v2_Promo", "Standard_DS4", "Standard_DS4_v2", "Standard_DS4_v2_Promo", 88 "Standard_DS5_v2", "Standard_DS5_v2_Promo", "Standard_E16_v3", "Standard_E16s_v3", 89 "Standard_E2_v3", "Standard_E2s_v3", "Standard_E32-16s_v3", "Standard_E32-8s_v3", 90 "Standard_E32_v3", "Standard_E32s_v3", "Standard_E4_v3", "Standard_E4s_v3", 91 "Standard_E64-16s_v3", "Standard_E64-32s_v3", "Standard_E64_v3", "Standard_E64s_v3", 92 "Standard_E8_v3", "Standard_E8s_v3", "Standard_F1", "Standard_F16", "Standard_F16s", 93 "Standard_F16s_v2", "Standard_F1s", "Standard_F2", "Standard_F2s", "Standard_F2s_v2", 94 "Standard_F32s_v2", "Standard_F4", "Standard_F4s", "Standard_F4s_v2", "Standard_F64s_v2", 95 "Standard_F72s_v2", "Standard_F8", "Standard_F8s", "Standard_F8s_v2", "Standard_G1", 96 "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", 97 "Standard_GS3", "Standard_GS4", "Standard_GS4-4", "Standard_GS4-8", "Standard_GS5", 98 "Standard_GS5-16", "Standard_GS5-8", "Standard_H16", "Standard_H16m", "Standard_H16mr", 99 "Standard_H16r", "Standard_H8", "Standard_H8m", "Standard_L16s", "Standard_L32s", 100 "Standard_L4s", "Standard_L8s", "Standard_M128-32ms", "Standard_M128-64ms", "Standard_M128ms", 101 "Standard_M128s", "Standard_M64-16ms", "Standard_M64-32ms", "Standard_M64ms", "Standard_M64s", 102 "Standard_NC12", "Standard_NC12s_v2", "Standard_NC12s_v3", "Standard_NC24", "Standard_NC24r", 103 "Standard_NC24rs_v2", "Standard_NC24rs_v3", "Standard_NC24s_v2", "Standard_NC24s_v3", 104 "Standard_NC6", "Standard_NC6s_v2", "Standard_NC6s_v3", "Standard_ND12s", "Standard_ND24rs", 105 "Standard_ND24s", "Standard_ND6s", "Standard_NV12", "Standard_NV24", "Standard_NV6". 106 :type vm_size: str or 107 ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes 108 :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every 109 machine in this master/agent pool. If you specify 0, it will apply the default osDisk size 110 according to the vmSize specified. 111 :type os_disk_size_gb: int 112 :param os_disk_type: OS disk type to be used for machines in a given agent pool. Allowed values 113 are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. May not be changed after creation. 114 Possible values include: "Managed", "Ephemeral". 115 :type os_disk_type: str or ~azure.mgmt.containerservice.v2020_09_01.models.OSDiskType 116 :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier. 117 :type vnet_subnet_id: str 118 :param max_pods: Maximum number of pods that can run on a node. 119 :type max_pods: int 120 :param os_type: OsType to be used to specify os type. Choose from Linux and Windows. Default to 121 Linux. Possible values include: "Linux", "Windows". Default value: "Linux". 122 :type os_type: str or ~azure.mgmt.containerservice.v2020_09_01.models.OSType 123 :param max_count: Maximum number of nodes for auto-scaling. 124 :type max_count: int 125 :param min_count: Minimum number of nodes for auto-scaling. 126 :type min_count: int 127 :param enable_auto_scaling: Whether to enable auto-scaler. 128 :type enable_auto_scaling: bool 129 :param type_properties_type: AgentPoolType represents types of an agent pool. Possible values 130 include: "VirtualMachineScaleSets", "AvailabilitySet". 131 :type type_properties_type: str or 132 ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolType 133 :param mode: AgentPoolMode represents mode of an agent pool. Possible values include: "System", 134 "User". 135 :type mode: str or ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolMode 136 :param orchestrator_version: Version of orchestrator specified when creating the managed 137 cluster. 138 :type orchestrator_version: str 139 :ivar node_image_version: Version of node image. 140 :vartype node_image_version: str 141 :param upgrade_settings: Settings for upgrading the agentpool. 142 :type upgrade_settings: 143 ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeSettings 144 :ivar provisioning_state: The current deployment or provisioning state, which only appears in 145 the response. 146 :vartype provisioning_state: str 147 :ivar power_state: Describes whether the Agent Pool is Running or Stopped. 148 :vartype power_state: ~azure.mgmt.containerservice.v2020_09_01.models.PowerState 149 :param availability_zones: Availability zones for nodes. Must use VirtualMachineScaleSets 150 AgentPoolType. 151 :type availability_zones: list[str] 152 :param enable_node_public_ip: Enable public IP for nodes. 153 :type enable_node_public_ip: bool 154 :param scale_set_priority: ScaleSetPriority to be used to specify virtual machine scale set 155 priority. Default to regular. Possible values include: "Spot", "Regular". Default value: 156 "Regular". 157 :type scale_set_priority: str or 158 ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetPriority 159 :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to specify eviction policy 160 for Spot virtual machine scale set. Default to Delete. Possible values include: "Delete", 161 "Deallocate". Default value: "Delete". 162 :type scale_set_eviction_policy: str or 163 ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetEvictionPolicy 164 :param spot_max_price: SpotMaxPrice to be used to specify the maximum price you are willing to 165 pay in US Dollars. Possible values are any decimal value greater than zero or -1 which 166 indicates default price to be up-to on-demand. 167 :type spot_max_price: float 168 :param tags: A set of tags. Agent pool tags to be persisted on the agent pool virtual machine 169 scale set. 170 :type tags: dict[str, str] 171 :param node_labels: Agent pool node labels to be persisted across all nodes in agent pool. 172 :type node_labels: dict[str, str] 173 :param node_taints: Taints added to new nodes during node pool create and scale. For example, 174 key=value:NoSchedule. 175 :type node_taints: list[str] 176 :param proximity_placement_group_id: The ID for Proximity Placement Group. 177 :type proximity_placement_group_id: str 178 """ 179 180 _validation = { 181 'id': {'readonly': True}, 182 'name': {'readonly': True}, 183 'type': {'readonly': True}, 184 'os_disk_size_gb': {'maximum': 1023, 'minimum': 0}, 185 'node_image_version': {'readonly': True}, 186 'provisioning_state': {'readonly': True}, 187 'power_state': {'readonly': True}, 188 } 189 190 _attribute_map = { 191 'id': {'key': 'id', 'type': 'str'}, 192 'name': {'key': 'name', 'type': 'str'}, 193 'type': {'key': 'type', 'type': 'str'}, 194 'count': {'key': 'properties.count', 'type': 'int'}, 195 'vm_size': {'key': 'properties.vmSize', 'type': 'str'}, 196 'os_disk_size_gb': {'key': 'properties.osDiskSizeGB', 'type': 'int'}, 197 'os_disk_type': {'key': 'properties.osDiskType', 'type': 'str'}, 198 'vnet_subnet_id': {'key': 'properties.vnetSubnetID', 'type': 'str'}, 199 'max_pods': {'key': 'properties.maxPods', 'type': 'int'}, 200 'os_type': {'key': 'properties.osType', 'type': 'str'}, 201 'max_count': {'key': 'properties.maxCount', 'type': 'int'}, 202 'min_count': {'key': 'properties.minCount', 'type': 'int'}, 203 'enable_auto_scaling': {'key': 'properties.enableAutoScaling', 'type': 'bool'}, 204 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, 205 'mode': {'key': 'properties.mode', 'type': 'str'}, 206 'orchestrator_version': {'key': 'properties.orchestratorVersion', 'type': 'str'}, 207 'node_image_version': {'key': 'properties.nodeImageVersion', 'type': 'str'}, 208 'upgrade_settings': {'key': 'properties.upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, 209 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 210 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, 211 'availability_zones': {'key': 'properties.availabilityZones', 'type': '[str]'}, 212 'enable_node_public_ip': {'key': 'properties.enableNodePublicIP', 'type': 'bool'}, 213 'scale_set_priority': {'key': 'properties.scaleSetPriority', 'type': 'str'}, 214 'scale_set_eviction_policy': {'key': 'properties.scaleSetEvictionPolicy', 'type': 'str'}, 215 'spot_max_price': {'key': 'properties.spotMaxPrice', 'type': 'float'}, 216 'tags': {'key': 'properties.tags', 'type': '{str}'}, 217 'node_labels': {'key': 'properties.nodeLabels', 'type': '{str}'}, 218 'node_taints': {'key': 'properties.nodeTaints', 'type': '[str]'}, 219 'proximity_placement_group_id': {'key': 'properties.proximityPlacementGroupID', 'type': 'str'}, 220 } 221 222 def __init__( 223 self, 224 *, 225 count: Optional[int] = None, 226 vm_size: Optional[Union[str, "ContainerServiceVMSizeTypes"]] = None, 227 os_disk_size_gb: Optional[int] = None, 228 os_disk_type: Optional[Union[str, "OSDiskType"]] = None, 229 vnet_subnet_id: Optional[str] = None, 230 max_pods: Optional[int] = None, 231 os_type: Optional[Union[str, "OSType"]] = "Linux", 232 max_count: Optional[int] = None, 233 min_count: Optional[int] = None, 234 enable_auto_scaling: Optional[bool] = None, 235 type_properties_type: Optional[Union[str, "AgentPoolType"]] = None, 236 mode: Optional[Union[str, "AgentPoolMode"]] = None, 237 orchestrator_version: Optional[str] = None, 238 upgrade_settings: Optional["AgentPoolUpgradeSettings"] = None, 239 availability_zones: Optional[List[str]] = None, 240 enable_node_public_ip: Optional[bool] = None, 241 scale_set_priority: Optional[Union[str, "ScaleSetPriority"]] = "Regular", 242 scale_set_eviction_policy: Optional[Union[str, "ScaleSetEvictionPolicy"]] = "Delete", 243 spot_max_price: Optional[float] = -1, 244 tags: Optional[Dict[str, str]] = None, 245 node_labels: Optional[Dict[str, str]] = None, 246 node_taints: Optional[List[str]] = None, 247 proximity_placement_group_id: Optional[str] = None, 248 **kwargs 249 ): 250 super(AgentPool, self).__init__(**kwargs) 251 self.count = count 252 self.vm_size = vm_size 253 self.os_disk_size_gb = os_disk_size_gb 254 self.os_disk_type = os_disk_type 255 self.vnet_subnet_id = vnet_subnet_id 256 self.max_pods = max_pods 257 self.os_type = os_type 258 self.max_count = max_count 259 self.min_count = min_count 260 self.enable_auto_scaling = enable_auto_scaling 261 self.type_properties_type = type_properties_type 262 self.mode = mode 263 self.orchestrator_version = orchestrator_version 264 self.node_image_version = None 265 self.upgrade_settings = upgrade_settings 266 self.provisioning_state = None 267 self.power_state = None 268 self.availability_zones = availability_zones 269 self.enable_node_public_ip = enable_node_public_ip 270 self.scale_set_priority = scale_set_priority 271 self.scale_set_eviction_policy = scale_set_eviction_policy 272 self.spot_max_price = spot_max_price 273 self.tags = tags 274 self.node_labels = node_labels 275 self.node_taints = node_taints 276 self.proximity_placement_group_id = proximity_placement_group_id 277 278 279class AgentPoolAvailableVersions(msrest.serialization.Model): 280 """The list of available versions for an agent pool. 281 282 Variables are only populated by the server, and will be ignored when sending a request. 283 284 :ivar id: Id of the agent pool available versions. 285 :vartype id: str 286 :ivar name: Name of the agent pool available versions. 287 :vartype name: str 288 :ivar type: Type of the agent pool available versions. 289 :vartype type: str 290 :param agent_pool_versions: List of versions available for agent pool. 291 :type agent_pool_versions: 292 list[~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem] 293 """ 294 295 _validation = { 296 'id': {'readonly': True}, 297 'name': {'readonly': True}, 298 'type': {'readonly': True}, 299 } 300 301 _attribute_map = { 302 'id': {'key': 'id', 'type': 'str'}, 303 'name': {'key': 'name', 'type': 'str'}, 304 'type': {'key': 'type', 'type': 'str'}, 305 'agent_pool_versions': {'key': 'properties.agentPoolVersions', 'type': '[AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem]'}, 306 } 307 308 def __init__( 309 self, 310 *, 311 agent_pool_versions: Optional[List["AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem"]] = None, 312 **kwargs 313 ): 314 super(AgentPoolAvailableVersions, self).__init__(**kwargs) 315 self.id = None 316 self.name = None 317 self.type = None 318 self.agent_pool_versions = agent_pool_versions 319 320 321class AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem(msrest.serialization.Model): 322 """AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem. 323 324 :param default: Whether this version is the default agent pool version. 325 :type default: bool 326 :param kubernetes_version: Kubernetes version (major, minor, patch). 327 :type kubernetes_version: str 328 :param is_preview: Whether Kubernetes version is currently in preview. 329 :type is_preview: bool 330 """ 331 332 _attribute_map = { 333 'default': {'key': 'default', 'type': 'bool'}, 334 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, 335 'is_preview': {'key': 'isPreview', 'type': 'bool'}, 336 } 337 338 def __init__( 339 self, 340 *, 341 default: Optional[bool] = None, 342 kubernetes_version: Optional[str] = None, 343 is_preview: Optional[bool] = None, 344 **kwargs 345 ): 346 super(AgentPoolAvailableVersionsPropertiesAgentPoolVersionsItem, self).__init__(**kwargs) 347 self.default = default 348 self.kubernetes_version = kubernetes_version 349 self.is_preview = is_preview 350 351 352class AgentPoolListResult(msrest.serialization.Model): 353 """The response from the List Agent Pools operation. 354 355 Variables are only populated by the server, and will be ignored when sending a request. 356 357 :param value: The list of agent pools. 358 :type value: list[~azure.mgmt.containerservice.v2020_09_01.models.AgentPool] 359 :ivar next_link: The URL to get the next set of agent pool results. 360 :vartype next_link: str 361 """ 362 363 _validation = { 364 'next_link': {'readonly': True}, 365 } 366 367 _attribute_map = { 368 'value': {'key': 'value', 'type': '[AgentPool]'}, 369 'next_link': {'key': 'nextLink', 'type': 'str'}, 370 } 371 372 def __init__( 373 self, 374 *, 375 value: Optional[List["AgentPool"]] = None, 376 **kwargs 377 ): 378 super(AgentPoolListResult, self).__init__(**kwargs) 379 self.value = value 380 self.next_link = None 381 382 383class AgentPoolUpgradeProfile(msrest.serialization.Model): 384 """The list of available upgrades for an agent pool. 385 386 Variables are only populated by the server, and will be ignored when sending a request. 387 388 All required parameters must be populated in order to send to Azure. 389 390 :ivar id: Id of the agent pool upgrade profile. 391 :vartype id: str 392 :ivar name: Name of the agent pool upgrade profile. 393 :vartype name: str 394 :ivar type: Type of the agent pool upgrade profile. 395 :vartype type: str 396 :param kubernetes_version: Required. Kubernetes version (major, minor, patch). 397 :type kubernetes_version: str 398 :param os_type: Required. OsType to be used to specify os type. Choose from Linux and Windows. 399 Default to Linux. Possible values include: "Linux", "Windows". Default value: "Linux". 400 :type os_type: str or ~azure.mgmt.containerservice.v2020_09_01.models.OSType 401 :param upgrades: List of orchestrator types and versions available for upgrade. 402 :type upgrades: 403 list[~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeProfilePropertiesUpgradesItem] 404 :param latest_node_image_version: LatestNodeImageVersion is the latest AKS supported node image 405 version. 406 :type latest_node_image_version: str 407 """ 408 409 _validation = { 410 'id': {'readonly': True}, 411 'name': {'readonly': True}, 412 'type': {'readonly': True}, 413 'kubernetes_version': {'required': True}, 414 'os_type': {'required': True}, 415 } 416 417 _attribute_map = { 418 'id': {'key': 'id', 'type': 'str'}, 419 'name': {'key': 'name', 'type': 'str'}, 420 'type': {'key': 'type', 'type': 'str'}, 421 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, 422 'os_type': {'key': 'properties.osType', 'type': 'str'}, 423 'upgrades': {'key': 'properties.upgrades', 'type': '[AgentPoolUpgradeProfilePropertiesUpgradesItem]'}, 424 'latest_node_image_version': {'key': 'properties.latestNodeImageVersion', 'type': 'str'}, 425 } 426 427 def __init__( 428 self, 429 *, 430 kubernetes_version: str, 431 os_type: Union[str, "OSType"] = "Linux", 432 upgrades: Optional[List["AgentPoolUpgradeProfilePropertiesUpgradesItem"]] = None, 433 latest_node_image_version: Optional[str] = None, 434 **kwargs 435 ): 436 super(AgentPoolUpgradeProfile, self).__init__(**kwargs) 437 self.id = None 438 self.name = None 439 self.type = None 440 self.kubernetes_version = kubernetes_version 441 self.os_type = os_type 442 self.upgrades = upgrades 443 self.latest_node_image_version = latest_node_image_version 444 445 446class AgentPoolUpgradeProfilePropertiesUpgradesItem(msrest.serialization.Model): 447 """AgentPoolUpgradeProfilePropertiesUpgradesItem. 448 449 :param kubernetes_version: Kubernetes version (major, minor, patch). 450 :type kubernetes_version: str 451 :param is_preview: Whether Kubernetes version is currently in preview. 452 :type is_preview: bool 453 """ 454 455 _attribute_map = { 456 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, 457 'is_preview': {'key': 'isPreview', 'type': 'bool'}, 458 } 459 460 def __init__( 461 self, 462 *, 463 kubernetes_version: Optional[str] = None, 464 is_preview: Optional[bool] = None, 465 **kwargs 466 ): 467 super(AgentPoolUpgradeProfilePropertiesUpgradesItem, self).__init__(**kwargs) 468 self.kubernetes_version = kubernetes_version 469 self.is_preview = is_preview 470 471 472class AgentPoolUpgradeSettings(msrest.serialization.Model): 473 """Settings for upgrading an agentpool. 474 475 :param max_surge: Count or percentage of additional nodes to be added during upgrade. If empty 476 uses AKS default. 477 :type max_surge: str 478 """ 479 480 _attribute_map = { 481 'max_surge': {'key': 'maxSurge', 'type': 'str'}, 482 } 483 484 def __init__( 485 self, 486 *, 487 max_surge: Optional[str] = None, 488 **kwargs 489 ): 490 super(AgentPoolUpgradeSettings, self).__init__(**kwargs) 491 self.max_surge = max_surge 492 493 494class BaseManagedCluster(msrest.serialization.Model): 495 """BaseManagedCluster. 496 497 Variables are only populated by the server, and will be ignored when sending a request. 498 499 :param identity: The identity of the managed cluster, if configured. 500 :type identity: ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterIdentity 501 :ivar provisioning_state: The current deployment or provisioning state, which only appears in 502 the response. 503 :vartype provisioning_state: str 504 :ivar power_state: Represents the Power State of the cluster. 505 :vartype power_state: ~azure.mgmt.containerservice.v2020_09_01.models.PowerState 506 :ivar max_agent_pools: The max number of agent pools for the managed cluster. 507 :vartype max_agent_pools: int 508 :param kubernetes_version: Version of Kubernetes specified when creating the managed cluster. 509 :type kubernetes_version: str 510 :param dns_prefix: DNS prefix specified when creating the managed cluster. 511 :type dns_prefix: str 512 :ivar fqdn: FQDN for the master pool. 513 :vartype fqdn: str 514 :ivar private_fqdn: FQDN of private cluster. 515 :vartype private_fqdn: str 516 :param agent_pool_profiles: Properties of the agent pool. 517 :type agent_pool_profiles: 518 list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAgentPoolProfile] 519 :param linux_profile: Profile for Linux VMs in the container service cluster. 520 :type linux_profile: 521 ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceLinuxProfile 522 :param windows_profile: Profile for Windows VMs in the container service cluster. 523 :type windows_profile: 524 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterWindowsProfile 525 :param service_principal_profile: Information about a service principal identity for the 526 cluster to use for manipulating Azure APIs. 527 :type service_principal_profile: 528 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterServicePrincipalProfile 529 :param addon_profiles: Profile of managed cluster add-on. 530 :type addon_profiles: dict[str, 531 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAddonProfile] 532 :param node_resource_group: Name of the resource group containing agent pool nodes. 533 :type node_resource_group: str 534 :param enable_rbac: Whether to enable Kubernetes Role-Based Access Control. 535 :type enable_rbac: bool 536 :param enable_pod_security_policy: (DEPRECATING) Whether to enable Kubernetes pod security 537 policy (preview). This feature is set for removal on October 15th, 2020. Learn more at 538 aka.ms/aks/azpodpolicy. 539 :type enable_pod_security_policy: bool 540 :param network_profile: Profile of network configuration. 541 :type network_profile: 542 ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceNetworkProfile 543 :param aad_profile: Profile of Azure Active Directory configuration. 544 :type aad_profile: ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAADProfile 545 :param auto_scaler_profile: Parameters to be applied to the cluster-autoscaler when enabled. 546 :type auto_scaler_profile: 547 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPropertiesAutoScalerProfile 548 :param api_server_access_profile: Access profile for managed cluster API server. 549 :type api_server_access_profile: 550 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAPIServerAccessProfile 551 :param disk_encryption_set_id: ResourceId of the disk encryption set to use for enabling 552 encryption at rest. 553 :type disk_encryption_set_id: str 554 :param identity_profile: Identities associated with the cluster. 555 :type identity_profile: dict[str, 556 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPropertiesIdentityProfileValue] 557 """ 558 559 _validation = { 560 'provisioning_state': {'readonly': True}, 561 'power_state': {'readonly': True}, 562 'max_agent_pools': {'readonly': True}, 563 'fqdn': {'readonly': True}, 564 'private_fqdn': {'readonly': True}, 565 } 566 567 _attribute_map = { 568 'identity': {'key': 'identity', 'type': 'ManagedClusterIdentity'}, 569 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 570 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, 571 'max_agent_pools': {'key': 'properties.maxAgentPools', 'type': 'int'}, 572 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, 573 'dns_prefix': {'key': 'properties.dnsPrefix', 'type': 'str'}, 574 'fqdn': {'key': 'properties.fqdn', 'type': 'str'}, 575 'private_fqdn': {'key': 'properties.privateFQDN', 'type': 'str'}, 576 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterAgentPoolProfile]'}, 577 'linux_profile': {'key': 'properties.linuxProfile', 'type': 'ContainerServiceLinuxProfile'}, 578 'windows_profile': {'key': 'properties.windowsProfile', 'type': 'ManagedClusterWindowsProfile'}, 579 'service_principal_profile': {'key': 'properties.servicePrincipalProfile', 'type': 'ManagedClusterServicePrincipalProfile'}, 580 'addon_profiles': {'key': 'properties.addonProfiles', 'type': '{ManagedClusterAddonProfile}'}, 581 'node_resource_group': {'key': 'properties.nodeResourceGroup', 'type': 'str'}, 582 'enable_rbac': {'key': 'properties.enableRBAC', 'type': 'bool'}, 583 'enable_pod_security_policy': {'key': 'properties.enablePodSecurityPolicy', 'type': 'bool'}, 584 'network_profile': {'key': 'properties.networkProfile', 'type': 'ContainerServiceNetworkProfile'}, 585 'aad_profile': {'key': 'properties.aadProfile', 'type': 'ManagedClusterAADProfile'}, 586 'auto_scaler_profile': {'key': 'properties.autoScalerProfile', 'type': 'ManagedClusterPropertiesAutoScalerProfile'}, 587 'api_server_access_profile': {'key': 'properties.apiServerAccessProfile', 'type': 'ManagedClusterAPIServerAccessProfile'}, 588 'disk_encryption_set_id': {'key': 'properties.diskEncryptionSetID', 'type': 'str'}, 589 'identity_profile': {'key': 'properties.identityProfile', 'type': '{ManagedClusterPropertiesIdentityProfileValue}'}, 590 } 591 592 def __init__( 593 self, 594 *, 595 identity: Optional["ManagedClusterIdentity"] = None, 596 kubernetes_version: Optional[str] = None, 597 dns_prefix: Optional[str] = None, 598 agent_pool_profiles: Optional[List["ManagedClusterAgentPoolProfile"]] = None, 599 linux_profile: Optional["ContainerServiceLinuxProfile"] = None, 600 windows_profile: Optional["ManagedClusterWindowsProfile"] = None, 601 service_principal_profile: Optional["ManagedClusterServicePrincipalProfile"] = None, 602 addon_profiles: Optional[Dict[str, "ManagedClusterAddonProfile"]] = None, 603 node_resource_group: Optional[str] = None, 604 enable_rbac: Optional[bool] = None, 605 enable_pod_security_policy: Optional[bool] = None, 606 network_profile: Optional["ContainerServiceNetworkProfile"] = None, 607 aad_profile: Optional["ManagedClusterAADProfile"] = None, 608 auto_scaler_profile: Optional["ManagedClusterPropertiesAutoScalerProfile"] = None, 609 api_server_access_profile: Optional["ManagedClusterAPIServerAccessProfile"] = None, 610 disk_encryption_set_id: Optional[str] = None, 611 identity_profile: Optional[Dict[str, "ManagedClusterPropertiesIdentityProfileValue"]] = None, 612 **kwargs 613 ): 614 super(BaseManagedCluster, self).__init__(**kwargs) 615 self.identity = identity 616 self.provisioning_state = None 617 self.power_state = None 618 self.max_agent_pools = None 619 self.kubernetes_version = kubernetes_version 620 self.dns_prefix = dns_prefix 621 self.fqdn = None 622 self.private_fqdn = None 623 self.agent_pool_profiles = agent_pool_profiles 624 self.linux_profile = linux_profile 625 self.windows_profile = windows_profile 626 self.service_principal_profile = service_principal_profile 627 self.addon_profiles = addon_profiles 628 self.node_resource_group = node_resource_group 629 self.enable_rbac = enable_rbac 630 self.enable_pod_security_policy = enable_pod_security_policy 631 self.network_profile = network_profile 632 self.aad_profile = aad_profile 633 self.auto_scaler_profile = auto_scaler_profile 634 self.api_server_access_profile = api_server_access_profile 635 self.disk_encryption_set_id = disk_encryption_set_id 636 self.identity_profile = identity_profile 637 638 639class CloudErrorBody(msrest.serialization.Model): 640 """An error response from the Container service. 641 642 :param code: An identifier for the error. Codes are invariant and are intended to be consumed 643 programmatically. 644 :type code: str 645 :param message: A message describing the error, intended to be suitable for display in a user 646 interface. 647 :type message: str 648 :param target: The target of the particular error. For example, the name of the property in 649 error. 650 :type target: str 651 :param details: A list of additional details about the error. 652 :type details: list[~azure.mgmt.containerservice.v2020_09_01.models.CloudErrorBody] 653 """ 654 655 _attribute_map = { 656 'code': {'key': 'code', 'type': 'str'}, 657 'message': {'key': 'message', 'type': 'str'}, 658 'target': {'key': 'target', 'type': 'str'}, 659 'details': {'key': 'details', 'type': '[CloudErrorBody]'}, 660 } 661 662 def __init__( 663 self, 664 *, 665 code: Optional[str] = None, 666 message: Optional[str] = None, 667 target: Optional[str] = None, 668 details: Optional[List["CloudErrorBody"]] = None, 669 **kwargs 670 ): 671 super(CloudErrorBody, self).__init__(**kwargs) 672 self.code = code 673 self.message = message 674 self.target = target 675 self.details = details 676 677 678class ContainerServiceDiagnosticsProfile(msrest.serialization.Model): 679 """Profile for diagnostics on the container service cluster. 680 681 All required parameters must be populated in order to send to Azure. 682 683 :param vm_diagnostics: Required. Profile for diagnostics on the container service VMs. 684 :type vm_diagnostics: 685 ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMDiagnostics 686 """ 687 688 _validation = { 689 'vm_diagnostics': {'required': True}, 690 } 691 692 _attribute_map = { 693 'vm_diagnostics': {'key': 'vmDiagnostics', 'type': 'ContainerServiceVMDiagnostics'}, 694 } 695 696 def __init__( 697 self, 698 *, 699 vm_diagnostics: "ContainerServiceVMDiagnostics", 700 **kwargs 701 ): 702 super(ContainerServiceDiagnosticsProfile, self).__init__(**kwargs) 703 self.vm_diagnostics = vm_diagnostics 704 705 706class ContainerServiceLinuxProfile(msrest.serialization.Model): 707 """Profile for Linux VMs in the container service cluster. 708 709 All required parameters must be populated in order to send to Azure. 710 711 :param admin_username: Required. The administrator username to use for Linux VMs. 712 :type admin_username: str 713 :param ssh: Required. SSH configuration for Linux-based VMs running on Azure. 714 :type ssh: ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceSshConfiguration 715 """ 716 717 _validation = { 718 'admin_username': {'required': True, 'pattern': r'^[A-Za-z][-A-Za-z0-9_]*$'}, 719 'ssh': {'required': True}, 720 } 721 722 _attribute_map = { 723 'admin_username': {'key': 'adminUsername', 'type': 'str'}, 724 'ssh': {'key': 'ssh', 'type': 'ContainerServiceSshConfiguration'}, 725 } 726 727 def __init__( 728 self, 729 *, 730 admin_username: str, 731 ssh: "ContainerServiceSshConfiguration", 732 **kwargs 733 ): 734 super(ContainerServiceLinuxProfile, self).__init__(**kwargs) 735 self.admin_username = admin_username 736 self.ssh = ssh 737 738 739class ContainerServiceMasterProfile(msrest.serialization.Model): 740 """Profile for the container service master. 741 742 Variables are only populated by the server, and will be ignored when sending a request. 743 744 All required parameters must be populated in order to send to Azure. 745 746 :param count: Number of masters (VMs) in the container service cluster. Allowed values are 1, 747 3, and 5. The default value is 1. Possible values include: 1, 3, 5. Default value: "1". 748 :type count: str or ~azure.mgmt.containerservice.v2020_09_01.models.Count 749 :param dns_prefix: Required. DNS prefix to be used to create the FQDN for the master pool. 750 :type dns_prefix: str 751 :param vm_size: Required. Size of agent VMs. Possible values include: "Standard_A1", 752 "Standard_A10", "Standard_A11", "Standard_A1_v2", "Standard_A2", "Standard_A2_v2", 753 "Standard_A2m_v2", "Standard_A3", "Standard_A4", "Standard_A4_v2", "Standard_A4m_v2", 754 "Standard_A5", "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A8_v2", 755 "Standard_A8m_v2", "Standard_A9", "Standard_B2ms", "Standard_B2s", "Standard_B4ms", 756 "Standard_B8ms", "Standard_D1", "Standard_D11", "Standard_D11_v2", "Standard_D11_v2_Promo", 757 "Standard_D12", "Standard_D12_v2", "Standard_D12_v2_Promo", "Standard_D13", "Standard_D13_v2", 758 "Standard_D13_v2_Promo", "Standard_D14", "Standard_D14_v2", "Standard_D14_v2_Promo", 759 "Standard_D15_v2", "Standard_D16_v3", "Standard_D16s_v3", "Standard_D1_v2", "Standard_D2", 760 "Standard_D2_v2", "Standard_D2_v2_Promo", "Standard_D2_v3", "Standard_D2s_v3", "Standard_D3", 761 "Standard_D32_v3", "Standard_D32s_v3", "Standard_D3_v2", "Standard_D3_v2_Promo", "Standard_D4", 762 "Standard_D4_v2", "Standard_D4_v2_Promo", "Standard_D4_v3", "Standard_D4s_v3", 763 "Standard_D5_v2", "Standard_D5_v2_Promo", "Standard_D64_v3", "Standard_D64s_v3", 764 "Standard_D8_v3", "Standard_D8s_v3", "Standard_DS1", "Standard_DS11", "Standard_DS11_v2", 765 "Standard_DS11_v2_Promo", "Standard_DS12", "Standard_DS12_v2", "Standard_DS12_v2_Promo", 766 "Standard_DS13", "Standard_DS13-2_v2", "Standard_DS13-4_v2", "Standard_DS13_v2", 767 "Standard_DS13_v2_Promo", "Standard_DS14", "Standard_DS14-4_v2", "Standard_DS14-8_v2", 768 "Standard_DS14_v2", "Standard_DS14_v2_Promo", "Standard_DS15_v2", "Standard_DS1_v2", 769 "Standard_DS2", "Standard_DS2_v2", "Standard_DS2_v2_Promo", "Standard_DS3", "Standard_DS3_v2", 770 "Standard_DS3_v2_Promo", "Standard_DS4", "Standard_DS4_v2", "Standard_DS4_v2_Promo", 771 "Standard_DS5_v2", "Standard_DS5_v2_Promo", "Standard_E16_v3", "Standard_E16s_v3", 772 "Standard_E2_v3", "Standard_E2s_v3", "Standard_E32-16s_v3", "Standard_E32-8s_v3", 773 "Standard_E32_v3", "Standard_E32s_v3", "Standard_E4_v3", "Standard_E4s_v3", 774 "Standard_E64-16s_v3", "Standard_E64-32s_v3", "Standard_E64_v3", "Standard_E64s_v3", 775 "Standard_E8_v3", "Standard_E8s_v3", "Standard_F1", "Standard_F16", "Standard_F16s", 776 "Standard_F16s_v2", "Standard_F1s", "Standard_F2", "Standard_F2s", "Standard_F2s_v2", 777 "Standard_F32s_v2", "Standard_F4", "Standard_F4s", "Standard_F4s_v2", "Standard_F64s_v2", 778 "Standard_F72s_v2", "Standard_F8", "Standard_F8s", "Standard_F8s_v2", "Standard_G1", 779 "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", 780 "Standard_GS3", "Standard_GS4", "Standard_GS4-4", "Standard_GS4-8", "Standard_GS5", 781 "Standard_GS5-16", "Standard_GS5-8", "Standard_H16", "Standard_H16m", "Standard_H16mr", 782 "Standard_H16r", "Standard_H8", "Standard_H8m", "Standard_L16s", "Standard_L32s", 783 "Standard_L4s", "Standard_L8s", "Standard_M128-32ms", "Standard_M128-64ms", "Standard_M128ms", 784 "Standard_M128s", "Standard_M64-16ms", "Standard_M64-32ms", "Standard_M64ms", "Standard_M64s", 785 "Standard_NC12", "Standard_NC12s_v2", "Standard_NC12s_v3", "Standard_NC24", "Standard_NC24r", 786 "Standard_NC24rs_v2", "Standard_NC24rs_v3", "Standard_NC24s_v2", "Standard_NC24s_v3", 787 "Standard_NC6", "Standard_NC6s_v2", "Standard_NC6s_v3", "Standard_ND12s", "Standard_ND24rs", 788 "Standard_ND24s", "Standard_ND6s", "Standard_NV12", "Standard_NV24", "Standard_NV6". 789 :type vm_size: str or 790 ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes 791 :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every 792 machine in this master/agent pool. If you specify 0, it will apply the default osDisk size 793 according to the vmSize specified. 794 :type os_disk_size_gb: int 795 :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier. 796 :type vnet_subnet_id: str 797 :param first_consecutive_static_ip: FirstConsecutiveStaticIP used to specify the first static 798 ip of masters. 799 :type first_consecutive_static_ip: str 800 :param storage_profile: Storage profile specifies what kind of storage used. Choose from 801 StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the 802 orchestrator choice. Possible values include: "StorageAccount", "ManagedDisks". 803 :type storage_profile: str or 804 ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceStorageProfileTypes 805 :ivar fqdn: FQDN for the master pool. 806 :vartype fqdn: str 807 """ 808 809 _validation = { 810 'dns_prefix': {'required': True}, 811 'vm_size': {'required': True}, 812 'os_disk_size_gb': {'maximum': 1023, 'minimum': 0}, 813 'fqdn': {'readonly': True}, 814 } 815 816 _attribute_map = { 817 'count': {'key': 'count', 'type': 'int'}, 818 'dns_prefix': {'key': 'dnsPrefix', 'type': 'str'}, 819 'vm_size': {'key': 'vmSize', 'type': 'str'}, 820 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, 821 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, 822 'first_consecutive_static_ip': {'key': 'firstConsecutiveStaticIP', 'type': 'str'}, 823 'storage_profile': {'key': 'storageProfile', 'type': 'str'}, 824 'fqdn': {'key': 'fqdn', 'type': 'str'}, 825 } 826 827 def __init__( 828 self, 829 *, 830 dns_prefix: str, 831 vm_size: Union[str, "ContainerServiceVMSizeTypes"], 832 count: Optional[Union[int, "Count"]] = "1", 833 os_disk_size_gb: Optional[int] = None, 834 vnet_subnet_id: Optional[str] = None, 835 first_consecutive_static_ip: Optional[str] = "10.240.255.5", 836 storage_profile: Optional[Union[str, "ContainerServiceStorageProfileTypes"]] = None, 837 **kwargs 838 ): 839 super(ContainerServiceMasterProfile, self).__init__(**kwargs) 840 self.count = count 841 self.dns_prefix = dns_prefix 842 self.vm_size = vm_size 843 self.os_disk_size_gb = os_disk_size_gb 844 self.vnet_subnet_id = vnet_subnet_id 845 self.first_consecutive_static_ip = first_consecutive_static_ip 846 self.storage_profile = storage_profile 847 self.fqdn = None 848 849 850class ContainerServiceNetworkProfile(msrest.serialization.Model): 851 """Profile of network configuration. 852 853 :param network_plugin: Network plugin used for building Kubernetes network. Possible values 854 include: "azure", "kubenet". Default value: "kubenet". 855 :type network_plugin: str or ~azure.mgmt.containerservice.v2020_09_01.models.NetworkPlugin 856 :param network_policy: Network policy used for building Kubernetes network. Possible values 857 include: "calico", "azure". 858 :type network_policy: str or ~azure.mgmt.containerservice.v2020_09_01.models.NetworkPolicy 859 :param network_mode: Network mode used for building Kubernetes network. Possible values 860 include: "transparent", "bridge". 861 :type network_mode: str or ~azure.mgmt.containerservice.v2020_09_01.models.NetworkMode 862 :param pod_cidr: A CIDR notation IP range from which to assign pod IPs when kubenet is used. 863 :type pod_cidr: str 864 :param service_cidr: A CIDR notation IP range from which to assign service cluster IPs. It must 865 not overlap with any Subnet IP ranges. 866 :type service_cidr: str 867 :param dns_service_ip: An IP address assigned to the Kubernetes DNS service. It must be within 868 the Kubernetes service address range specified in serviceCidr. 869 :type dns_service_ip: str 870 :param docker_bridge_cidr: A CIDR notation IP range assigned to the Docker bridge network. It 871 must not overlap with any Subnet IP ranges or the Kubernetes service address range. 872 :type docker_bridge_cidr: str 873 :param outbound_type: The outbound (egress) routing method. Possible values include: 874 "loadBalancer", "userDefinedRouting". Default value: "loadBalancer". 875 :type outbound_type: str or ~azure.mgmt.containerservice.v2020_09_01.models.OutboundType 876 :param load_balancer_sku: The load balancer sku for the managed cluster. Possible values 877 include: "standard", "basic". 878 :type load_balancer_sku: str or ~azure.mgmt.containerservice.v2020_09_01.models.LoadBalancerSku 879 :param load_balancer_profile: Profile of the cluster load balancer. 880 :type load_balancer_profile: 881 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfile 882 """ 883 884 _validation = { 885 'pod_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, 886 'service_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, 887 'dns_service_ip': {'pattern': r'^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$'}, 888 'docker_bridge_cidr': {'pattern': r'^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))?$'}, 889 } 890 891 _attribute_map = { 892 'network_plugin': {'key': 'networkPlugin', 'type': 'str'}, 893 'network_policy': {'key': 'networkPolicy', 'type': 'str'}, 894 'network_mode': {'key': 'networkMode', 'type': 'str'}, 895 'pod_cidr': {'key': 'podCidr', 'type': 'str'}, 896 'service_cidr': {'key': 'serviceCidr', 'type': 'str'}, 897 'dns_service_ip': {'key': 'dnsServiceIP', 'type': 'str'}, 898 'docker_bridge_cidr': {'key': 'dockerBridgeCidr', 'type': 'str'}, 899 'outbound_type': {'key': 'outboundType', 'type': 'str'}, 900 'load_balancer_sku': {'key': 'loadBalancerSku', 'type': 'str'}, 901 'load_balancer_profile': {'key': 'loadBalancerProfile', 'type': 'ManagedClusterLoadBalancerProfile'}, 902 } 903 904 def __init__( 905 self, 906 *, 907 network_plugin: Optional[Union[str, "NetworkPlugin"]] = "kubenet", 908 network_policy: Optional[Union[str, "NetworkPolicy"]] = None, 909 network_mode: Optional[Union[str, "NetworkMode"]] = None, 910 pod_cidr: Optional[str] = "10.244.0.0/16", 911 service_cidr: Optional[str] = "10.0.0.0/16", 912 dns_service_ip: Optional[str] = "10.0.0.10", 913 docker_bridge_cidr: Optional[str] = "172.17.0.1/16", 914 outbound_type: Optional[Union[str, "OutboundType"]] = "loadBalancer", 915 load_balancer_sku: Optional[Union[str, "LoadBalancerSku"]] = None, 916 load_balancer_profile: Optional["ManagedClusterLoadBalancerProfile"] = None, 917 **kwargs 918 ): 919 super(ContainerServiceNetworkProfile, self).__init__(**kwargs) 920 self.network_plugin = network_plugin 921 self.network_policy = network_policy 922 self.network_mode = network_mode 923 self.pod_cidr = pod_cidr 924 self.service_cidr = service_cidr 925 self.dns_service_ip = dns_service_ip 926 self.docker_bridge_cidr = docker_bridge_cidr 927 self.outbound_type = outbound_type 928 self.load_balancer_sku = load_balancer_sku 929 self.load_balancer_profile = load_balancer_profile 930 931 932class ContainerServiceSshConfiguration(msrest.serialization.Model): 933 """SSH configuration for Linux-based VMs running on Azure. 934 935 All required parameters must be populated in order to send to Azure. 936 937 :param public_keys: Required. The list of SSH public keys used to authenticate with Linux-based 938 VMs. Only expect one key specified. 939 :type public_keys: 940 list[~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceSshPublicKey] 941 """ 942 943 _validation = { 944 'public_keys': {'required': True}, 945 } 946 947 _attribute_map = { 948 'public_keys': {'key': 'publicKeys', 'type': '[ContainerServiceSshPublicKey]'}, 949 } 950 951 def __init__( 952 self, 953 *, 954 public_keys: List["ContainerServiceSshPublicKey"], 955 **kwargs 956 ): 957 super(ContainerServiceSshConfiguration, self).__init__(**kwargs) 958 self.public_keys = public_keys 959 960 961class ContainerServiceSshPublicKey(msrest.serialization.Model): 962 """Contains information about SSH certificate public key data. 963 964 All required parameters must be populated in order to send to Azure. 965 966 :param key_data: Required. Certificate public key used to authenticate with VMs through SSH. 967 The certificate must be in PEM format with or without headers. 968 :type key_data: str 969 """ 970 971 _validation = { 972 'key_data': {'required': True}, 973 } 974 975 _attribute_map = { 976 'key_data': {'key': 'keyData', 'type': 'str'}, 977 } 978 979 def __init__( 980 self, 981 *, 982 key_data: str, 983 **kwargs 984 ): 985 super(ContainerServiceSshPublicKey, self).__init__(**kwargs) 986 self.key_data = key_data 987 988 989class ContainerServiceVMDiagnostics(msrest.serialization.Model): 990 """Profile for diagnostics on the container service VMs. 991 992 Variables are only populated by the server, and will be ignored when sending a request. 993 994 All required parameters must be populated in order to send to Azure. 995 996 :param enabled: Required. Whether the VM diagnostic agent is provisioned on the VM. 997 :type enabled: bool 998 :ivar storage_uri: The URI of the storage account where diagnostics are stored. 999 :vartype storage_uri: str 1000 """ 1001 1002 _validation = { 1003 'enabled': {'required': True}, 1004 'storage_uri': {'readonly': True}, 1005 } 1006 1007 _attribute_map = { 1008 'enabled': {'key': 'enabled', 'type': 'bool'}, 1009 'storage_uri': {'key': 'storageUri', 'type': 'str'}, 1010 } 1011 1012 def __init__( 1013 self, 1014 *, 1015 enabled: bool, 1016 **kwargs 1017 ): 1018 super(ContainerServiceVMDiagnostics, self).__init__(**kwargs) 1019 self.enabled = enabled 1020 self.storage_uri = None 1021 1022 1023class CredentialResult(msrest.serialization.Model): 1024 """The credential result response. 1025 1026 Variables are only populated by the server, and will be ignored when sending a request. 1027 1028 :ivar name: The name of the credential. 1029 :vartype name: str 1030 :ivar value: Base64-encoded Kubernetes configuration file. 1031 :vartype value: bytearray 1032 """ 1033 1034 _validation = { 1035 'name': {'readonly': True}, 1036 'value': {'readonly': True}, 1037 } 1038 1039 _attribute_map = { 1040 'name': {'key': 'name', 'type': 'str'}, 1041 'value': {'key': 'value', 'type': 'bytearray'}, 1042 } 1043 1044 def __init__( 1045 self, 1046 **kwargs 1047 ): 1048 super(CredentialResult, self).__init__(**kwargs) 1049 self.name = None 1050 self.value = None 1051 1052 1053class CredentialResults(msrest.serialization.Model): 1054 """The list of credential result response. 1055 1056 Variables are only populated by the server, and will be ignored when sending a request. 1057 1058 :ivar kubeconfigs: Base64-encoded Kubernetes configuration file. 1059 :vartype kubeconfigs: list[~azure.mgmt.containerservice.v2020_09_01.models.CredentialResult] 1060 """ 1061 1062 _validation = { 1063 'kubeconfigs': {'readonly': True}, 1064 } 1065 1066 _attribute_map = { 1067 'kubeconfigs': {'key': 'kubeconfigs', 'type': '[CredentialResult]'}, 1068 } 1069 1070 def __init__( 1071 self, 1072 **kwargs 1073 ): 1074 super(CredentialResults, self).__init__(**kwargs) 1075 self.kubeconfigs = None 1076 1077 1078class Resource(msrest.serialization.Model): 1079 """The Resource model definition. 1080 1081 Variables are only populated by the server, and will be ignored when sending a request. 1082 1083 All required parameters must be populated in order to send to Azure. 1084 1085 :ivar id: Resource Id. 1086 :vartype id: str 1087 :ivar name: Resource name. 1088 :vartype name: str 1089 :ivar type: Resource type. 1090 :vartype type: str 1091 :param location: Required. Resource location. 1092 :type location: str 1093 :param tags: A set of tags. Resource tags. 1094 :type tags: dict[str, str] 1095 """ 1096 1097 _validation = { 1098 'id': {'readonly': True}, 1099 'name': {'readonly': True}, 1100 'type': {'readonly': True}, 1101 'location': {'required': True}, 1102 } 1103 1104 _attribute_map = { 1105 'id': {'key': 'id', 'type': 'str'}, 1106 'name': {'key': 'name', 'type': 'str'}, 1107 'type': {'key': 'type', 'type': 'str'}, 1108 'location': {'key': 'location', 'type': 'str'}, 1109 'tags': {'key': 'tags', 'type': '{str}'}, 1110 } 1111 1112 def __init__( 1113 self, 1114 *, 1115 location: str, 1116 tags: Optional[Dict[str, str]] = None, 1117 **kwargs 1118 ): 1119 super(Resource, self).__init__(**kwargs) 1120 self.id = None 1121 self.name = None 1122 self.type = None 1123 self.location = location 1124 self.tags = tags 1125 1126 1127class ManagedCluster(Resource, BaseManagedCluster): 1128 """Managed cluster. 1129 1130 Variables are only populated by the server, and will be ignored when sending a request. 1131 1132 All required parameters must be populated in order to send to Azure. 1133 1134 :param identity: The identity of the managed cluster, if configured. 1135 :type identity: ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterIdentity 1136 :ivar provisioning_state: The current deployment or provisioning state, which only appears in 1137 the response. 1138 :vartype provisioning_state: str 1139 :ivar power_state: Represents the Power State of the cluster. 1140 :vartype power_state: ~azure.mgmt.containerservice.v2020_09_01.models.PowerState 1141 :ivar max_agent_pools: The max number of agent pools for the managed cluster. 1142 :vartype max_agent_pools: int 1143 :param kubernetes_version: Version of Kubernetes specified when creating the managed cluster. 1144 :type kubernetes_version: str 1145 :param dns_prefix: DNS prefix specified when creating the managed cluster. 1146 :type dns_prefix: str 1147 :ivar fqdn: FQDN for the master pool. 1148 :vartype fqdn: str 1149 :ivar private_fqdn: FQDN of private cluster. 1150 :vartype private_fqdn: str 1151 :param agent_pool_profiles: Properties of the agent pool. 1152 :type agent_pool_profiles: 1153 list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAgentPoolProfile] 1154 :param linux_profile: Profile for Linux VMs in the container service cluster. 1155 :type linux_profile: 1156 ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceLinuxProfile 1157 :param windows_profile: Profile for Windows VMs in the container service cluster. 1158 :type windows_profile: 1159 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterWindowsProfile 1160 :param service_principal_profile: Information about a service principal identity for the 1161 cluster to use for manipulating Azure APIs. 1162 :type service_principal_profile: 1163 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterServicePrincipalProfile 1164 :param addon_profiles: Profile of managed cluster add-on. 1165 :type addon_profiles: dict[str, 1166 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAddonProfile] 1167 :param node_resource_group: Name of the resource group containing agent pool nodes. 1168 :type node_resource_group: str 1169 :param enable_rbac: Whether to enable Kubernetes Role-Based Access Control. 1170 :type enable_rbac: bool 1171 :param enable_pod_security_policy: (DEPRECATING) Whether to enable Kubernetes pod security 1172 policy (preview). This feature is set for removal on October 15th, 2020. Learn more at 1173 aka.ms/aks/azpodpolicy. 1174 :type enable_pod_security_policy: bool 1175 :param network_profile: Profile of network configuration. 1176 :type network_profile: 1177 ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceNetworkProfile 1178 :param aad_profile: Profile of Azure Active Directory configuration. 1179 :type aad_profile: ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAADProfile 1180 :param auto_scaler_profile: Parameters to be applied to the cluster-autoscaler when enabled. 1181 :type auto_scaler_profile: 1182 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPropertiesAutoScalerProfile 1183 :param api_server_access_profile: Access profile for managed cluster API server. 1184 :type api_server_access_profile: 1185 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAPIServerAccessProfile 1186 :param disk_encryption_set_id: ResourceId of the disk encryption set to use for enabling 1187 encryption at rest. 1188 :type disk_encryption_set_id: str 1189 :param identity_profile: Identities associated with the cluster. 1190 :type identity_profile: dict[str, 1191 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPropertiesIdentityProfileValue] 1192 :ivar id: Resource Id. 1193 :vartype id: str 1194 :ivar name: Resource name. 1195 :vartype name: str 1196 :ivar type: Resource type. 1197 :vartype type: str 1198 :param location: Required. Resource location. 1199 :type location: str 1200 :param tags: A set of tags. Resource tags. 1201 :type tags: dict[str, str] 1202 :param sku: The managed cluster SKU. 1203 :type sku: ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterSKU 1204 """ 1205 1206 _validation = { 1207 'provisioning_state': {'readonly': True}, 1208 'power_state': {'readonly': True}, 1209 'max_agent_pools': {'readonly': True}, 1210 'fqdn': {'readonly': True}, 1211 'private_fqdn': {'readonly': True}, 1212 'id': {'readonly': True}, 1213 'name': {'readonly': True}, 1214 'type': {'readonly': True}, 1215 'location': {'required': True}, 1216 } 1217 1218 _attribute_map = { 1219 'identity': {'key': 'identity', 'type': 'ManagedClusterIdentity'}, 1220 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 1221 'power_state': {'key': 'properties.powerState', 'type': 'PowerState'}, 1222 'max_agent_pools': {'key': 'properties.maxAgentPools', 'type': 'int'}, 1223 'kubernetes_version': {'key': 'properties.kubernetesVersion', 'type': 'str'}, 1224 'dns_prefix': {'key': 'properties.dnsPrefix', 'type': 'str'}, 1225 'fqdn': {'key': 'properties.fqdn', 'type': 'str'}, 1226 'private_fqdn': {'key': 'properties.privateFQDN', 'type': 'str'}, 1227 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterAgentPoolProfile]'}, 1228 'linux_profile': {'key': 'properties.linuxProfile', 'type': 'ContainerServiceLinuxProfile'}, 1229 'windows_profile': {'key': 'properties.windowsProfile', 'type': 'ManagedClusterWindowsProfile'}, 1230 'service_principal_profile': {'key': 'properties.servicePrincipalProfile', 'type': 'ManagedClusterServicePrincipalProfile'}, 1231 'addon_profiles': {'key': 'properties.addonProfiles', 'type': '{ManagedClusterAddonProfile}'}, 1232 'node_resource_group': {'key': 'properties.nodeResourceGroup', 'type': 'str'}, 1233 'enable_rbac': {'key': 'properties.enableRBAC', 'type': 'bool'}, 1234 'enable_pod_security_policy': {'key': 'properties.enablePodSecurityPolicy', 'type': 'bool'}, 1235 'network_profile': {'key': 'properties.networkProfile', 'type': 'ContainerServiceNetworkProfile'}, 1236 'aad_profile': {'key': 'properties.aadProfile', 'type': 'ManagedClusterAADProfile'}, 1237 'auto_scaler_profile': {'key': 'properties.autoScalerProfile', 'type': 'ManagedClusterPropertiesAutoScalerProfile'}, 1238 'api_server_access_profile': {'key': 'properties.apiServerAccessProfile', 'type': 'ManagedClusterAPIServerAccessProfile'}, 1239 'disk_encryption_set_id': {'key': 'properties.diskEncryptionSetID', 'type': 'str'}, 1240 'identity_profile': {'key': 'properties.identityProfile', 'type': '{ManagedClusterPropertiesIdentityProfileValue}'}, 1241 'id': {'key': 'id', 'type': 'str'}, 1242 'name': {'key': 'name', 'type': 'str'}, 1243 'type': {'key': 'type', 'type': 'str'}, 1244 'location': {'key': 'location', 'type': 'str'}, 1245 'tags': {'key': 'tags', 'type': '{str}'}, 1246 'sku': {'key': 'sku', 'type': 'ManagedClusterSKU'}, 1247 } 1248 1249 def __init__( 1250 self, 1251 *, 1252 location: str, 1253 identity: Optional["ManagedClusterIdentity"] = None, 1254 kubernetes_version: Optional[str] = None, 1255 dns_prefix: Optional[str] = None, 1256 agent_pool_profiles: Optional[List["ManagedClusterAgentPoolProfile"]] = None, 1257 linux_profile: Optional["ContainerServiceLinuxProfile"] = None, 1258 windows_profile: Optional["ManagedClusterWindowsProfile"] = None, 1259 service_principal_profile: Optional["ManagedClusterServicePrincipalProfile"] = None, 1260 addon_profiles: Optional[Dict[str, "ManagedClusterAddonProfile"]] = None, 1261 node_resource_group: Optional[str] = None, 1262 enable_rbac: Optional[bool] = None, 1263 enable_pod_security_policy: Optional[bool] = None, 1264 network_profile: Optional["ContainerServiceNetworkProfile"] = None, 1265 aad_profile: Optional["ManagedClusterAADProfile"] = None, 1266 auto_scaler_profile: Optional["ManagedClusterPropertiesAutoScalerProfile"] = None, 1267 api_server_access_profile: Optional["ManagedClusterAPIServerAccessProfile"] = None, 1268 disk_encryption_set_id: Optional[str] = None, 1269 identity_profile: Optional[Dict[str, "ManagedClusterPropertiesIdentityProfileValue"]] = None, 1270 tags: Optional[Dict[str, str]] = None, 1271 sku: Optional["ManagedClusterSKU"] = None, 1272 **kwargs 1273 ): 1274 super(ManagedCluster, self).__init__(location=location, tags=tags, identity=identity, kubernetes_version=kubernetes_version, dns_prefix=dns_prefix, agent_pool_profiles=agent_pool_profiles, linux_profile=linux_profile, windows_profile=windows_profile, service_principal_profile=service_principal_profile, addon_profiles=addon_profiles, node_resource_group=node_resource_group, enable_rbac=enable_rbac, enable_pod_security_policy=enable_pod_security_policy, network_profile=network_profile, aad_profile=aad_profile, auto_scaler_profile=auto_scaler_profile, api_server_access_profile=api_server_access_profile, disk_encryption_set_id=disk_encryption_set_id, identity_profile=identity_profile, **kwargs) 1275 self.identity = identity 1276 self.provisioning_state = None 1277 self.power_state = None 1278 self.max_agent_pools = None 1279 self.kubernetes_version = kubernetes_version 1280 self.dns_prefix = dns_prefix 1281 self.fqdn = None 1282 self.private_fqdn = None 1283 self.agent_pool_profiles = agent_pool_profiles 1284 self.linux_profile = linux_profile 1285 self.windows_profile = windows_profile 1286 self.service_principal_profile = service_principal_profile 1287 self.addon_profiles = addon_profiles 1288 self.node_resource_group = node_resource_group 1289 self.enable_rbac = enable_rbac 1290 self.enable_pod_security_policy = enable_pod_security_policy 1291 self.network_profile = network_profile 1292 self.aad_profile = aad_profile 1293 self.auto_scaler_profile = auto_scaler_profile 1294 self.api_server_access_profile = api_server_access_profile 1295 self.disk_encryption_set_id = disk_encryption_set_id 1296 self.identity_profile = identity_profile 1297 self.sku = sku 1298 self.id = None 1299 self.name = None 1300 self.type = None 1301 self.location = location 1302 self.tags = tags 1303 self.sku = sku 1304 1305 1306class ManagedClusterAADProfile(msrest.serialization.Model): 1307 """AADProfile specifies attributes for Azure Active Directory integration. 1308 1309 :param managed: Whether to enable managed AAD. 1310 :type managed: bool 1311 :param enable_azure_rbac: Whether to enable Azure RBAC for Kubernetes authorization. 1312 :type enable_azure_rbac: bool 1313 :param admin_group_object_i_ds: AAD group object IDs that will have admin role of the cluster. 1314 :type admin_group_object_i_ds: list[str] 1315 :param client_app_id: The client AAD application ID. 1316 :type client_app_id: str 1317 :param server_app_id: The server AAD application ID. 1318 :type server_app_id: str 1319 :param server_app_secret: The server AAD application secret. 1320 :type server_app_secret: str 1321 :param tenant_id: The AAD tenant ID to use for authentication. If not specified, will use the 1322 tenant of the deployment subscription. 1323 :type tenant_id: str 1324 """ 1325 1326 _attribute_map = { 1327 'managed': {'key': 'managed', 'type': 'bool'}, 1328 'enable_azure_rbac': {'key': 'enableAzureRBAC', 'type': 'bool'}, 1329 'admin_group_object_i_ds': {'key': 'adminGroupObjectIDs', 'type': '[str]'}, 1330 'client_app_id': {'key': 'clientAppID', 'type': 'str'}, 1331 'server_app_id': {'key': 'serverAppID', 'type': 'str'}, 1332 'server_app_secret': {'key': 'serverAppSecret', 'type': 'str'}, 1333 'tenant_id': {'key': 'tenantID', 'type': 'str'}, 1334 } 1335 1336 def __init__( 1337 self, 1338 *, 1339 managed: Optional[bool] = None, 1340 enable_azure_rbac: Optional[bool] = None, 1341 admin_group_object_i_ds: Optional[List[str]] = None, 1342 client_app_id: Optional[str] = None, 1343 server_app_id: Optional[str] = None, 1344 server_app_secret: Optional[str] = None, 1345 tenant_id: Optional[str] = None, 1346 **kwargs 1347 ): 1348 super(ManagedClusterAADProfile, self).__init__(**kwargs) 1349 self.managed = managed 1350 self.enable_azure_rbac = enable_azure_rbac 1351 self.admin_group_object_i_ds = admin_group_object_i_ds 1352 self.client_app_id = client_app_id 1353 self.server_app_id = server_app_id 1354 self.server_app_secret = server_app_secret 1355 self.tenant_id = tenant_id 1356 1357 1358class ManagedClusterAccessProfile(Resource): 1359 """Managed cluster Access Profile. 1360 1361 Variables are only populated by the server, and will be ignored when sending a request. 1362 1363 All required parameters must be populated in order to send to Azure. 1364 1365 :ivar id: Resource Id. 1366 :vartype id: str 1367 :ivar name: Resource name. 1368 :vartype name: str 1369 :ivar type: Resource type. 1370 :vartype type: str 1371 :param location: Required. Resource location. 1372 :type location: str 1373 :param tags: A set of tags. Resource tags. 1374 :type tags: dict[str, str] 1375 :param kube_config: Base64-encoded Kubernetes configuration file. 1376 :type kube_config: bytearray 1377 """ 1378 1379 _validation = { 1380 'id': {'readonly': True}, 1381 'name': {'readonly': True}, 1382 'type': {'readonly': True}, 1383 'location': {'required': True}, 1384 } 1385 1386 _attribute_map = { 1387 'id': {'key': 'id', 'type': 'str'}, 1388 'name': {'key': 'name', 'type': 'str'}, 1389 'type': {'key': 'type', 'type': 'str'}, 1390 'location': {'key': 'location', 'type': 'str'}, 1391 'tags': {'key': 'tags', 'type': '{str}'}, 1392 'kube_config': {'key': 'properties.kubeConfig', 'type': 'bytearray'}, 1393 } 1394 1395 def __init__( 1396 self, 1397 *, 1398 location: str, 1399 tags: Optional[Dict[str, str]] = None, 1400 kube_config: Optional[bytearray] = None, 1401 **kwargs 1402 ): 1403 super(ManagedClusterAccessProfile, self).__init__(location=location, tags=tags, **kwargs) 1404 self.kube_config = kube_config 1405 1406 1407class ManagedClusterAddonProfile(msrest.serialization.Model): 1408 """A Kubernetes add-on profile for a managed cluster. 1409 1410 Variables are only populated by the server, and will be ignored when sending a request. 1411 1412 All required parameters must be populated in order to send to Azure. 1413 1414 :param enabled: Required. Whether the add-on is enabled or not. 1415 :type enabled: bool 1416 :param config: Key-value pairs for configuring an add-on. 1417 :type config: dict[str, str] 1418 :ivar identity: Information of user assigned identity used by this add-on. 1419 :vartype identity: 1420 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterAddonProfileIdentity 1421 """ 1422 1423 _validation = { 1424 'enabled': {'required': True}, 1425 'identity': {'readonly': True}, 1426 } 1427 1428 _attribute_map = { 1429 'enabled': {'key': 'enabled', 'type': 'bool'}, 1430 'config': {'key': 'config', 'type': '{str}'}, 1431 'identity': {'key': 'identity', 'type': 'ManagedClusterAddonProfileIdentity'}, 1432 } 1433 1434 def __init__( 1435 self, 1436 *, 1437 enabled: bool, 1438 config: Optional[Dict[str, str]] = None, 1439 **kwargs 1440 ): 1441 super(ManagedClusterAddonProfile, self).__init__(**kwargs) 1442 self.enabled = enabled 1443 self.config = config 1444 self.identity = None 1445 1446 1447class UserAssignedIdentity(msrest.serialization.Model): 1448 """UserAssignedIdentity. 1449 1450 :param resource_id: The resource id of the user assigned identity. 1451 :type resource_id: str 1452 :param client_id: The client id of the user assigned identity. 1453 :type client_id: str 1454 :param object_id: The object id of the user assigned identity. 1455 :type object_id: str 1456 """ 1457 1458 _attribute_map = { 1459 'resource_id': {'key': 'resourceId', 'type': 'str'}, 1460 'client_id': {'key': 'clientId', 'type': 'str'}, 1461 'object_id': {'key': 'objectId', 'type': 'str'}, 1462 } 1463 1464 def __init__( 1465 self, 1466 *, 1467 resource_id: Optional[str] = None, 1468 client_id: Optional[str] = None, 1469 object_id: Optional[str] = None, 1470 **kwargs 1471 ): 1472 super(UserAssignedIdentity, self).__init__(**kwargs) 1473 self.resource_id = resource_id 1474 self.client_id = client_id 1475 self.object_id = object_id 1476 1477 1478class ManagedClusterAddonProfileIdentity(UserAssignedIdentity): 1479 """Information of user assigned identity used by this add-on. 1480 1481 :param resource_id: The resource id of the user assigned identity. 1482 :type resource_id: str 1483 :param client_id: The client id of the user assigned identity. 1484 :type client_id: str 1485 :param object_id: The object id of the user assigned identity. 1486 :type object_id: str 1487 """ 1488 1489 _attribute_map = { 1490 'resource_id': {'key': 'resourceId', 'type': 'str'}, 1491 'client_id': {'key': 'clientId', 'type': 'str'}, 1492 'object_id': {'key': 'objectId', 'type': 'str'}, 1493 } 1494 1495 def __init__( 1496 self, 1497 *, 1498 resource_id: Optional[str] = None, 1499 client_id: Optional[str] = None, 1500 object_id: Optional[str] = None, 1501 **kwargs 1502 ): 1503 super(ManagedClusterAddonProfileIdentity, self).__init__(resource_id=resource_id, client_id=client_id, object_id=object_id, **kwargs) 1504 1505 1506class ManagedClusterAgentPoolProfileProperties(msrest.serialization.Model): 1507 """Properties for the container service agent pool profile. 1508 1509 Variables are only populated by the server, and will be ignored when sending a request. 1510 1511 :param count: Number of agents (VMs) to host docker containers. Allowed values must be in the 1512 range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for 1513 system pools. The default value is 1. 1514 :type count: int 1515 :param vm_size: Size of agent VMs. Possible values include: "Standard_A1", "Standard_A10", 1516 "Standard_A11", "Standard_A1_v2", "Standard_A2", "Standard_A2_v2", "Standard_A2m_v2", 1517 "Standard_A3", "Standard_A4", "Standard_A4_v2", "Standard_A4m_v2", "Standard_A5", 1518 "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A8_v2", "Standard_A8m_v2", 1519 "Standard_A9", "Standard_B2ms", "Standard_B2s", "Standard_B4ms", "Standard_B8ms", 1520 "Standard_D1", "Standard_D11", "Standard_D11_v2", "Standard_D11_v2_Promo", "Standard_D12", 1521 "Standard_D12_v2", "Standard_D12_v2_Promo", "Standard_D13", "Standard_D13_v2", 1522 "Standard_D13_v2_Promo", "Standard_D14", "Standard_D14_v2", "Standard_D14_v2_Promo", 1523 "Standard_D15_v2", "Standard_D16_v3", "Standard_D16s_v3", "Standard_D1_v2", "Standard_D2", 1524 "Standard_D2_v2", "Standard_D2_v2_Promo", "Standard_D2_v3", "Standard_D2s_v3", "Standard_D3", 1525 "Standard_D32_v3", "Standard_D32s_v3", "Standard_D3_v2", "Standard_D3_v2_Promo", "Standard_D4", 1526 "Standard_D4_v2", "Standard_D4_v2_Promo", "Standard_D4_v3", "Standard_D4s_v3", 1527 "Standard_D5_v2", "Standard_D5_v2_Promo", "Standard_D64_v3", "Standard_D64s_v3", 1528 "Standard_D8_v3", "Standard_D8s_v3", "Standard_DS1", "Standard_DS11", "Standard_DS11_v2", 1529 "Standard_DS11_v2_Promo", "Standard_DS12", "Standard_DS12_v2", "Standard_DS12_v2_Promo", 1530 "Standard_DS13", "Standard_DS13-2_v2", "Standard_DS13-4_v2", "Standard_DS13_v2", 1531 "Standard_DS13_v2_Promo", "Standard_DS14", "Standard_DS14-4_v2", "Standard_DS14-8_v2", 1532 "Standard_DS14_v2", "Standard_DS14_v2_Promo", "Standard_DS15_v2", "Standard_DS1_v2", 1533 "Standard_DS2", "Standard_DS2_v2", "Standard_DS2_v2_Promo", "Standard_DS3", "Standard_DS3_v2", 1534 "Standard_DS3_v2_Promo", "Standard_DS4", "Standard_DS4_v2", "Standard_DS4_v2_Promo", 1535 "Standard_DS5_v2", "Standard_DS5_v2_Promo", "Standard_E16_v3", "Standard_E16s_v3", 1536 "Standard_E2_v3", "Standard_E2s_v3", "Standard_E32-16s_v3", "Standard_E32-8s_v3", 1537 "Standard_E32_v3", "Standard_E32s_v3", "Standard_E4_v3", "Standard_E4s_v3", 1538 "Standard_E64-16s_v3", "Standard_E64-32s_v3", "Standard_E64_v3", "Standard_E64s_v3", 1539 "Standard_E8_v3", "Standard_E8s_v3", "Standard_F1", "Standard_F16", "Standard_F16s", 1540 "Standard_F16s_v2", "Standard_F1s", "Standard_F2", "Standard_F2s", "Standard_F2s_v2", 1541 "Standard_F32s_v2", "Standard_F4", "Standard_F4s", "Standard_F4s_v2", "Standard_F64s_v2", 1542 "Standard_F72s_v2", "Standard_F8", "Standard_F8s", "Standard_F8s_v2", "Standard_G1", 1543 "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", 1544 "Standard_GS3", "Standard_GS4", "Standard_GS4-4", "Standard_GS4-8", "Standard_GS5", 1545 "Standard_GS5-16", "Standard_GS5-8", "Standard_H16", "Standard_H16m", "Standard_H16mr", 1546 "Standard_H16r", "Standard_H8", "Standard_H8m", "Standard_L16s", "Standard_L32s", 1547 "Standard_L4s", "Standard_L8s", "Standard_M128-32ms", "Standard_M128-64ms", "Standard_M128ms", 1548 "Standard_M128s", "Standard_M64-16ms", "Standard_M64-32ms", "Standard_M64ms", "Standard_M64s", 1549 "Standard_NC12", "Standard_NC12s_v2", "Standard_NC12s_v3", "Standard_NC24", "Standard_NC24r", 1550 "Standard_NC24rs_v2", "Standard_NC24rs_v3", "Standard_NC24s_v2", "Standard_NC24s_v3", 1551 "Standard_NC6", "Standard_NC6s_v2", "Standard_NC6s_v3", "Standard_ND12s", "Standard_ND24rs", 1552 "Standard_ND24s", "Standard_ND6s", "Standard_NV12", "Standard_NV24", "Standard_NV6". 1553 :type vm_size: str or 1554 ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes 1555 :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every 1556 machine in this master/agent pool. If you specify 0, it will apply the default osDisk size 1557 according to the vmSize specified. 1558 :type os_disk_size_gb: int 1559 :param os_disk_type: OS disk type to be used for machines in a given agent pool. Allowed values 1560 are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. May not be changed after creation. 1561 Possible values include: "Managed", "Ephemeral". 1562 :type os_disk_type: str or ~azure.mgmt.containerservice.v2020_09_01.models.OSDiskType 1563 :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier. 1564 :type vnet_subnet_id: str 1565 :param max_pods: Maximum number of pods that can run on a node. 1566 :type max_pods: int 1567 :param os_type: OsType to be used to specify os type. Choose from Linux and Windows. Default to 1568 Linux. Possible values include: "Linux", "Windows". Default value: "Linux". 1569 :type os_type: str or ~azure.mgmt.containerservice.v2020_09_01.models.OSType 1570 :param max_count: Maximum number of nodes for auto-scaling. 1571 :type max_count: int 1572 :param min_count: Minimum number of nodes for auto-scaling. 1573 :type min_count: int 1574 :param enable_auto_scaling: Whether to enable auto-scaler. 1575 :type enable_auto_scaling: bool 1576 :param type: AgentPoolType represents types of an agent pool. Possible values include: 1577 "VirtualMachineScaleSets", "AvailabilitySet". 1578 :type type: str or ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolType 1579 :param mode: AgentPoolMode represents mode of an agent pool. Possible values include: "System", 1580 "User". 1581 :type mode: str or ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolMode 1582 :param orchestrator_version: Version of orchestrator specified when creating the managed 1583 cluster. 1584 :type orchestrator_version: str 1585 :ivar node_image_version: Version of node image. 1586 :vartype node_image_version: str 1587 :param upgrade_settings: Settings for upgrading the agentpool. 1588 :type upgrade_settings: 1589 ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeSettings 1590 :ivar provisioning_state: The current deployment or provisioning state, which only appears in 1591 the response. 1592 :vartype provisioning_state: str 1593 :ivar power_state: Describes whether the Agent Pool is Running or Stopped. 1594 :vartype power_state: ~azure.mgmt.containerservice.v2020_09_01.models.PowerState 1595 :param availability_zones: Availability zones for nodes. Must use VirtualMachineScaleSets 1596 AgentPoolType. 1597 :type availability_zones: list[str] 1598 :param enable_node_public_ip: Enable public IP for nodes. 1599 :type enable_node_public_ip: bool 1600 :param scale_set_priority: ScaleSetPriority to be used to specify virtual machine scale set 1601 priority. Default to regular. Possible values include: "Spot", "Regular". Default value: 1602 "Regular". 1603 :type scale_set_priority: str or 1604 ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetPriority 1605 :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to specify eviction policy 1606 for Spot virtual machine scale set. Default to Delete. Possible values include: "Delete", 1607 "Deallocate". Default value: "Delete". 1608 :type scale_set_eviction_policy: str or 1609 ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetEvictionPolicy 1610 :param spot_max_price: SpotMaxPrice to be used to specify the maximum price you are willing to 1611 pay in US Dollars. Possible values are any decimal value greater than zero or -1 which 1612 indicates default price to be up-to on-demand. 1613 :type spot_max_price: float 1614 :param tags: A set of tags. Agent pool tags to be persisted on the agent pool virtual machine 1615 scale set. 1616 :type tags: dict[str, str] 1617 :param node_labels: Agent pool node labels to be persisted across all nodes in agent pool. 1618 :type node_labels: dict[str, str] 1619 :param node_taints: Taints added to new nodes during node pool create and scale. For example, 1620 key=value:NoSchedule. 1621 :type node_taints: list[str] 1622 :param proximity_placement_group_id: The ID for Proximity Placement Group. 1623 :type proximity_placement_group_id: str 1624 """ 1625 1626 _validation = { 1627 'os_disk_size_gb': {'maximum': 1023, 'minimum': 0}, 1628 'node_image_version': {'readonly': True}, 1629 'provisioning_state': {'readonly': True}, 1630 'power_state': {'readonly': True}, 1631 } 1632 1633 _attribute_map = { 1634 'count': {'key': 'count', 'type': 'int'}, 1635 'vm_size': {'key': 'vmSize', 'type': 'str'}, 1636 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, 1637 'os_disk_type': {'key': 'osDiskType', 'type': 'str'}, 1638 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, 1639 'max_pods': {'key': 'maxPods', 'type': 'int'}, 1640 'os_type': {'key': 'osType', 'type': 'str'}, 1641 'max_count': {'key': 'maxCount', 'type': 'int'}, 1642 'min_count': {'key': 'minCount', 'type': 'int'}, 1643 'enable_auto_scaling': {'key': 'enableAutoScaling', 'type': 'bool'}, 1644 'type': {'key': 'type', 'type': 'str'}, 1645 'mode': {'key': 'mode', 'type': 'str'}, 1646 'orchestrator_version': {'key': 'orchestratorVersion', 'type': 'str'}, 1647 'node_image_version': {'key': 'nodeImageVersion', 'type': 'str'}, 1648 'upgrade_settings': {'key': 'upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, 1649 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, 1650 'power_state': {'key': 'powerState', 'type': 'PowerState'}, 1651 'availability_zones': {'key': 'availabilityZones', 'type': '[str]'}, 1652 'enable_node_public_ip': {'key': 'enableNodePublicIP', 'type': 'bool'}, 1653 'scale_set_priority': {'key': 'scaleSetPriority', 'type': 'str'}, 1654 'scale_set_eviction_policy': {'key': 'scaleSetEvictionPolicy', 'type': 'str'}, 1655 'spot_max_price': {'key': 'spotMaxPrice', 'type': 'float'}, 1656 'tags': {'key': 'tags', 'type': '{str}'}, 1657 'node_labels': {'key': 'nodeLabels', 'type': '{str}'}, 1658 'node_taints': {'key': 'nodeTaints', 'type': '[str]'}, 1659 'proximity_placement_group_id': {'key': 'proximityPlacementGroupID', 'type': 'str'}, 1660 } 1661 1662 def __init__( 1663 self, 1664 *, 1665 count: Optional[int] = None, 1666 vm_size: Optional[Union[str, "ContainerServiceVMSizeTypes"]] = None, 1667 os_disk_size_gb: Optional[int] = None, 1668 os_disk_type: Optional[Union[str, "OSDiskType"]] = None, 1669 vnet_subnet_id: Optional[str] = None, 1670 max_pods: Optional[int] = None, 1671 os_type: Optional[Union[str, "OSType"]] = "Linux", 1672 max_count: Optional[int] = None, 1673 min_count: Optional[int] = None, 1674 enable_auto_scaling: Optional[bool] = None, 1675 type: Optional[Union[str, "AgentPoolType"]] = None, 1676 mode: Optional[Union[str, "AgentPoolMode"]] = None, 1677 orchestrator_version: Optional[str] = None, 1678 upgrade_settings: Optional["AgentPoolUpgradeSettings"] = None, 1679 availability_zones: Optional[List[str]] = None, 1680 enable_node_public_ip: Optional[bool] = None, 1681 scale_set_priority: Optional[Union[str, "ScaleSetPriority"]] = "Regular", 1682 scale_set_eviction_policy: Optional[Union[str, "ScaleSetEvictionPolicy"]] = "Delete", 1683 spot_max_price: Optional[float] = -1, 1684 tags: Optional[Dict[str, str]] = None, 1685 node_labels: Optional[Dict[str, str]] = None, 1686 node_taints: Optional[List[str]] = None, 1687 proximity_placement_group_id: Optional[str] = None, 1688 **kwargs 1689 ): 1690 super(ManagedClusterAgentPoolProfileProperties, self).__init__(**kwargs) 1691 self.count = count 1692 self.vm_size = vm_size 1693 self.os_disk_size_gb = os_disk_size_gb 1694 self.os_disk_type = os_disk_type 1695 self.vnet_subnet_id = vnet_subnet_id 1696 self.max_pods = max_pods 1697 self.os_type = os_type 1698 self.max_count = max_count 1699 self.min_count = min_count 1700 self.enable_auto_scaling = enable_auto_scaling 1701 self.type = type 1702 self.mode = mode 1703 self.orchestrator_version = orchestrator_version 1704 self.node_image_version = None 1705 self.upgrade_settings = upgrade_settings 1706 self.provisioning_state = None 1707 self.power_state = None 1708 self.availability_zones = availability_zones 1709 self.enable_node_public_ip = enable_node_public_ip 1710 self.scale_set_priority = scale_set_priority 1711 self.scale_set_eviction_policy = scale_set_eviction_policy 1712 self.spot_max_price = spot_max_price 1713 self.tags = tags 1714 self.node_labels = node_labels 1715 self.node_taints = node_taints 1716 self.proximity_placement_group_id = proximity_placement_group_id 1717 1718 1719class ManagedClusterAgentPoolProfile(ManagedClusterAgentPoolProfileProperties): 1720 """Profile for the container service agent pool. 1721 1722 Variables are only populated by the server, and will be ignored when sending a request. 1723 1724 All required parameters must be populated in order to send to Azure. 1725 1726 :param count: Number of agents (VMs) to host docker containers. Allowed values must be in the 1727 range of 0 to 100 (inclusive) for user pools and in the range of 1 to 100 (inclusive) for 1728 system pools. The default value is 1. 1729 :type count: int 1730 :param vm_size: Size of agent VMs. Possible values include: "Standard_A1", "Standard_A10", 1731 "Standard_A11", "Standard_A1_v2", "Standard_A2", "Standard_A2_v2", "Standard_A2m_v2", 1732 "Standard_A3", "Standard_A4", "Standard_A4_v2", "Standard_A4m_v2", "Standard_A5", 1733 "Standard_A6", "Standard_A7", "Standard_A8", "Standard_A8_v2", "Standard_A8m_v2", 1734 "Standard_A9", "Standard_B2ms", "Standard_B2s", "Standard_B4ms", "Standard_B8ms", 1735 "Standard_D1", "Standard_D11", "Standard_D11_v2", "Standard_D11_v2_Promo", "Standard_D12", 1736 "Standard_D12_v2", "Standard_D12_v2_Promo", "Standard_D13", "Standard_D13_v2", 1737 "Standard_D13_v2_Promo", "Standard_D14", "Standard_D14_v2", "Standard_D14_v2_Promo", 1738 "Standard_D15_v2", "Standard_D16_v3", "Standard_D16s_v3", "Standard_D1_v2", "Standard_D2", 1739 "Standard_D2_v2", "Standard_D2_v2_Promo", "Standard_D2_v3", "Standard_D2s_v3", "Standard_D3", 1740 "Standard_D32_v3", "Standard_D32s_v3", "Standard_D3_v2", "Standard_D3_v2_Promo", "Standard_D4", 1741 "Standard_D4_v2", "Standard_D4_v2_Promo", "Standard_D4_v3", "Standard_D4s_v3", 1742 "Standard_D5_v2", "Standard_D5_v2_Promo", "Standard_D64_v3", "Standard_D64s_v3", 1743 "Standard_D8_v3", "Standard_D8s_v3", "Standard_DS1", "Standard_DS11", "Standard_DS11_v2", 1744 "Standard_DS11_v2_Promo", "Standard_DS12", "Standard_DS12_v2", "Standard_DS12_v2_Promo", 1745 "Standard_DS13", "Standard_DS13-2_v2", "Standard_DS13-4_v2", "Standard_DS13_v2", 1746 "Standard_DS13_v2_Promo", "Standard_DS14", "Standard_DS14-4_v2", "Standard_DS14-8_v2", 1747 "Standard_DS14_v2", "Standard_DS14_v2_Promo", "Standard_DS15_v2", "Standard_DS1_v2", 1748 "Standard_DS2", "Standard_DS2_v2", "Standard_DS2_v2_Promo", "Standard_DS3", "Standard_DS3_v2", 1749 "Standard_DS3_v2_Promo", "Standard_DS4", "Standard_DS4_v2", "Standard_DS4_v2_Promo", 1750 "Standard_DS5_v2", "Standard_DS5_v2_Promo", "Standard_E16_v3", "Standard_E16s_v3", 1751 "Standard_E2_v3", "Standard_E2s_v3", "Standard_E32-16s_v3", "Standard_E32-8s_v3", 1752 "Standard_E32_v3", "Standard_E32s_v3", "Standard_E4_v3", "Standard_E4s_v3", 1753 "Standard_E64-16s_v3", "Standard_E64-32s_v3", "Standard_E64_v3", "Standard_E64s_v3", 1754 "Standard_E8_v3", "Standard_E8s_v3", "Standard_F1", "Standard_F16", "Standard_F16s", 1755 "Standard_F16s_v2", "Standard_F1s", "Standard_F2", "Standard_F2s", "Standard_F2s_v2", 1756 "Standard_F32s_v2", "Standard_F4", "Standard_F4s", "Standard_F4s_v2", "Standard_F64s_v2", 1757 "Standard_F72s_v2", "Standard_F8", "Standard_F8s", "Standard_F8s_v2", "Standard_G1", 1758 "Standard_G2", "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", 1759 "Standard_GS3", "Standard_GS4", "Standard_GS4-4", "Standard_GS4-8", "Standard_GS5", 1760 "Standard_GS5-16", "Standard_GS5-8", "Standard_H16", "Standard_H16m", "Standard_H16mr", 1761 "Standard_H16r", "Standard_H8", "Standard_H8m", "Standard_L16s", "Standard_L32s", 1762 "Standard_L4s", "Standard_L8s", "Standard_M128-32ms", "Standard_M128-64ms", "Standard_M128ms", 1763 "Standard_M128s", "Standard_M64-16ms", "Standard_M64-32ms", "Standard_M64ms", "Standard_M64s", 1764 "Standard_NC12", "Standard_NC12s_v2", "Standard_NC12s_v3", "Standard_NC24", "Standard_NC24r", 1765 "Standard_NC24rs_v2", "Standard_NC24rs_v3", "Standard_NC24s_v2", "Standard_NC24s_v3", 1766 "Standard_NC6", "Standard_NC6s_v2", "Standard_NC6s_v3", "Standard_ND12s", "Standard_ND24rs", 1767 "Standard_ND24s", "Standard_ND6s", "Standard_NV12", "Standard_NV24", "Standard_NV6". 1768 :type vm_size: str or 1769 ~azure.mgmt.containerservice.v2020_09_01.models.ContainerServiceVMSizeTypes 1770 :param os_disk_size_gb: OS Disk Size in GB to be used to specify the disk size for every 1771 machine in this master/agent pool. If you specify 0, it will apply the default osDisk size 1772 according to the vmSize specified. 1773 :type os_disk_size_gb: int 1774 :param os_disk_type: OS disk type to be used for machines in a given agent pool. Allowed values 1775 are 'Ephemeral' and 'Managed'. Defaults to 'Managed'. May not be changed after creation. 1776 Possible values include: "Managed", "Ephemeral". 1777 :type os_disk_type: str or ~azure.mgmt.containerservice.v2020_09_01.models.OSDiskType 1778 :param vnet_subnet_id: VNet SubnetID specifies the VNet's subnet identifier. 1779 :type vnet_subnet_id: str 1780 :param max_pods: Maximum number of pods that can run on a node. 1781 :type max_pods: int 1782 :param os_type: OsType to be used to specify os type. Choose from Linux and Windows. Default to 1783 Linux. Possible values include: "Linux", "Windows". Default value: "Linux". 1784 :type os_type: str or ~azure.mgmt.containerservice.v2020_09_01.models.OSType 1785 :param max_count: Maximum number of nodes for auto-scaling. 1786 :type max_count: int 1787 :param min_count: Minimum number of nodes for auto-scaling. 1788 :type min_count: int 1789 :param enable_auto_scaling: Whether to enable auto-scaler. 1790 :type enable_auto_scaling: bool 1791 :param type: AgentPoolType represents types of an agent pool. Possible values include: 1792 "VirtualMachineScaleSets", "AvailabilitySet". 1793 :type type: str or ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolType 1794 :param mode: AgentPoolMode represents mode of an agent pool. Possible values include: "System", 1795 "User". 1796 :type mode: str or ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolMode 1797 :param orchestrator_version: Version of orchestrator specified when creating the managed 1798 cluster. 1799 :type orchestrator_version: str 1800 :ivar node_image_version: Version of node image. 1801 :vartype node_image_version: str 1802 :param upgrade_settings: Settings for upgrading the agentpool. 1803 :type upgrade_settings: 1804 ~azure.mgmt.containerservice.v2020_09_01.models.AgentPoolUpgradeSettings 1805 :ivar provisioning_state: The current deployment or provisioning state, which only appears in 1806 the response. 1807 :vartype provisioning_state: str 1808 :ivar power_state: Describes whether the Agent Pool is Running or Stopped. 1809 :vartype power_state: ~azure.mgmt.containerservice.v2020_09_01.models.PowerState 1810 :param availability_zones: Availability zones for nodes. Must use VirtualMachineScaleSets 1811 AgentPoolType. 1812 :type availability_zones: list[str] 1813 :param enable_node_public_ip: Enable public IP for nodes. 1814 :type enable_node_public_ip: bool 1815 :param scale_set_priority: ScaleSetPriority to be used to specify virtual machine scale set 1816 priority. Default to regular. Possible values include: "Spot", "Regular". Default value: 1817 "Regular". 1818 :type scale_set_priority: str or 1819 ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetPriority 1820 :param scale_set_eviction_policy: ScaleSetEvictionPolicy to be used to specify eviction policy 1821 for Spot virtual machine scale set. Default to Delete. Possible values include: "Delete", 1822 "Deallocate". Default value: "Delete". 1823 :type scale_set_eviction_policy: str or 1824 ~azure.mgmt.containerservice.v2020_09_01.models.ScaleSetEvictionPolicy 1825 :param spot_max_price: SpotMaxPrice to be used to specify the maximum price you are willing to 1826 pay in US Dollars. Possible values are any decimal value greater than zero or -1 which 1827 indicates default price to be up-to on-demand. 1828 :type spot_max_price: float 1829 :param tags: A set of tags. Agent pool tags to be persisted on the agent pool virtual machine 1830 scale set. 1831 :type tags: dict[str, str] 1832 :param node_labels: Agent pool node labels to be persisted across all nodes in agent pool. 1833 :type node_labels: dict[str, str] 1834 :param node_taints: Taints added to new nodes during node pool create and scale. For example, 1835 key=value:NoSchedule. 1836 :type node_taints: list[str] 1837 :param proximity_placement_group_id: The ID for Proximity Placement Group. 1838 :type proximity_placement_group_id: str 1839 :param name: Required. Unique name of the agent pool profile in the context of the subscription 1840 and resource group. 1841 :type name: str 1842 """ 1843 1844 _validation = { 1845 'os_disk_size_gb': {'maximum': 1023, 'minimum': 0}, 1846 'node_image_version': {'readonly': True}, 1847 'provisioning_state': {'readonly': True}, 1848 'power_state': {'readonly': True}, 1849 'name': {'required': True, 'pattern': r'^[a-z][a-z0-9]{0,11}$'}, 1850 } 1851 1852 _attribute_map = { 1853 'count': {'key': 'count', 'type': 'int'}, 1854 'vm_size': {'key': 'vmSize', 'type': 'str'}, 1855 'os_disk_size_gb': {'key': 'osDiskSizeGB', 'type': 'int'}, 1856 'os_disk_type': {'key': 'osDiskType', 'type': 'str'}, 1857 'vnet_subnet_id': {'key': 'vnetSubnetID', 'type': 'str'}, 1858 'max_pods': {'key': 'maxPods', 'type': 'int'}, 1859 'os_type': {'key': 'osType', 'type': 'str'}, 1860 'max_count': {'key': 'maxCount', 'type': 'int'}, 1861 'min_count': {'key': 'minCount', 'type': 'int'}, 1862 'enable_auto_scaling': {'key': 'enableAutoScaling', 'type': 'bool'}, 1863 'type': {'key': 'type', 'type': 'str'}, 1864 'mode': {'key': 'mode', 'type': 'str'}, 1865 'orchestrator_version': {'key': 'orchestratorVersion', 'type': 'str'}, 1866 'node_image_version': {'key': 'nodeImageVersion', 'type': 'str'}, 1867 'upgrade_settings': {'key': 'upgradeSettings', 'type': 'AgentPoolUpgradeSettings'}, 1868 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, 1869 'power_state': {'key': 'powerState', 'type': 'PowerState'}, 1870 'availability_zones': {'key': 'availabilityZones', 'type': '[str]'}, 1871 'enable_node_public_ip': {'key': 'enableNodePublicIP', 'type': 'bool'}, 1872 'scale_set_priority': {'key': 'scaleSetPriority', 'type': 'str'}, 1873 'scale_set_eviction_policy': {'key': 'scaleSetEvictionPolicy', 'type': 'str'}, 1874 'spot_max_price': {'key': 'spotMaxPrice', 'type': 'float'}, 1875 'tags': {'key': 'tags', 'type': '{str}'}, 1876 'node_labels': {'key': 'nodeLabels', 'type': '{str}'}, 1877 'node_taints': {'key': 'nodeTaints', 'type': '[str]'}, 1878 'proximity_placement_group_id': {'key': 'proximityPlacementGroupID', 'type': 'str'}, 1879 'name': {'key': 'name', 'type': 'str'}, 1880 } 1881 1882 def __init__( 1883 self, 1884 *, 1885 name: str, 1886 count: Optional[int] = None, 1887 vm_size: Optional[Union[str, "ContainerServiceVMSizeTypes"]] = None, 1888 os_disk_size_gb: Optional[int] = None, 1889 os_disk_type: Optional[Union[str, "OSDiskType"]] = None, 1890 vnet_subnet_id: Optional[str] = None, 1891 max_pods: Optional[int] = None, 1892 os_type: Optional[Union[str, "OSType"]] = "Linux", 1893 max_count: Optional[int] = None, 1894 min_count: Optional[int] = None, 1895 enable_auto_scaling: Optional[bool] = None, 1896 type: Optional[Union[str, "AgentPoolType"]] = None, 1897 mode: Optional[Union[str, "AgentPoolMode"]] = None, 1898 orchestrator_version: Optional[str] = None, 1899 upgrade_settings: Optional["AgentPoolUpgradeSettings"] = None, 1900 availability_zones: Optional[List[str]] = None, 1901 enable_node_public_ip: Optional[bool] = None, 1902 scale_set_priority: Optional[Union[str, "ScaleSetPriority"]] = "Regular", 1903 scale_set_eviction_policy: Optional[Union[str, "ScaleSetEvictionPolicy"]] = "Delete", 1904 spot_max_price: Optional[float] = -1, 1905 tags: Optional[Dict[str, str]] = None, 1906 node_labels: Optional[Dict[str, str]] = None, 1907 node_taints: Optional[List[str]] = None, 1908 proximity_placement_group_id: Optional[str] = None, 1909 **kwargs 1910 ): 1911 super(ManagedClusterAgentPoolProfile, self).__init__(count=count, vm_size=vm_size, os_disk_size_gb=os_disk_size_gb, os_disk_type=os_disk_type, vnet_subnet_id=vnet_subnet_id, max_pods=max_pods, os_type=os_type, max_count=max_count, min_count=min_count, enable_auto_scaling=enable_auto_scaling, type=type, mode=mode, orchestrator_version=orchestrator_version, upgrade_settings=upgrade_settings, availability_zones=availability_zones, enable_node_public_ip=enable_node_public_ip, scale_set_priority=scale_set_priority, scale_set_eviction_policy=scale_set_eviction_policy, spot_max_price=spot_max_price, tags=tags, node_labels=node_labels, node_taints=node_taints, proximity_placement_group_id=proximity_placement_group_id, **kwargs) 1912 self.name = name 1913 1914 1915class ManagedClusterAPIServerAccessProfile(msrest.serialization.Model): 1916 """Access profile for managed cluster API server. 1917 1918 :param authorized_ip_ranges: Authorized IP Ranges to kubernetes API server. 1919 :type authorized_ip_ranges: list[str] 1920 :param enable_private_cluster: Whether to create the cluster as a private cluster or not. 1921 :type enable_private_cluster: bool 1922 """ 1923 1924 _attribute_map = { 1925 'authorized_ip_ranges': {'key': 'authorizedIPRanges', 'type': '[str]'}, 1926 'enable_private_cluster': {'key': 'enablePrivateCluster', 'type': 'bool'}, 1927 } 1928 1929 def __init__( 1930 self, 1931 *, 1932 authorized_ip_ranges: Optional[List[str]] = None, 1933 enable_private_cluster: Optional[bool] = None, 1934 **kwargs 1935 ): 1936 super(ManagedClusterAPIServerAccessProfile, self).__init__(**kwargs) 1937 self.authorized_ip_ranges = authorized_ip_ranges 1938 self.enable_private_cluster = enable_private_cluster 1939 1940 1941class ManagedClusterIdentity(msrest.serialization.Model): 1942 """Identity for the managed cluster. 1943 1944 Variables are only populated by the server, and will be ignored when sending a request. 1945 1946 :ivar principal_id: The principal id of the system assigned identity which is used by master 1947 components. 1948 :vartype principal_id: str 1949 :ivar tenant_id: The tenant id of the system assigned identity which is used by master 1950 components. 1951 :vartype tenant_id: str 1952 :param type: The type of identity used for the managed cluster. Type 'SystemAssigned' will use 1953 an implicitly created identity in master components and an auto-created user assigned identity 1954 in MC_ resource group in agent nodes. Type 'None' will not use MSI for the managed cluster, 1955 service principal will be used instead. Possible values include: "SystemAssigned", 1956 "UserAssigned", "None". 1957 :type type: str or ~azure.mgmt.containerservice.v2020_09_01.models.ResourceIdentityType 1958 :param user_assigned_identities: The user identity associated with the managed cluster. This 1959 identity will be used in control plane and only one user assigned identity is allowed. The user 1960 identity dictionary key references will be ARM resource ids in the form: 1961 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. 1962 :type user_assigned_identities: dict[str, 1963 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterIdentityUserAssignedIdentitiesValue] 1964 """ 1965 1966 _validation = { 1967 'principal_id': {'readonly': True}, 1968 'tenant_id': {'readonly': True}, 1969 } 1970 1971 _attribute_map = { 1972 'principal_id': {'key': 'principalId', 'type': 'str'}, 1973 'tenant_id': {'key': 'tenantId', 'type': 'str'}, 1974 'type': {'key': 'type', 'type': 'str'}, 1975 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{ManagedClusterIdentityUserAssignedIdentitiesValue}'}, 1976 } 1977 1978 def __init__( 1979 self, 1980 *, 1981 type: Optional[Union[str, "ResourceIdentityType"]] = None, 1982 user_assigned_identities: Optional[Dict[str, "ManagedClusterIdentityUserAssignedIdentitiesValue"]] = None, 1983 **kwargs 1984 ): 1985 super(ManagedClusterIdentity, self).__init__(**kwargs) 1986 self.principal_id = None 1987 self.tenant_id = None 1988 self.type = type 1989 self.user_assigned_identities = user_assigned_identities 1990 1991 1992class ManagedClusterIdentityUserAssignedIdentitiesValue(msrest.serialization.Model): 1993 """ManagedClusterIdentityUserAssignedIdentitiesValue. 1994 1995 Variables are only populated by the server, and will be ignored when sending a request. 1996 1997 :ivar principal_id: The principal id of user assigned identity. 1998 :vartype principal_id: str 1999 :ivar client_id: The client id of user assigned identity. 2000 :vartype client_id: str 2001 """ 2002 2003 _validation = { 2004 'principal_id': {'readonly': True}, 2005 'client_id': {'readonly': True}, 2006 } 2007 2008 _attribute_map = { 2009 'principal_id': {'key': 'principalId', 'type': 'str'}, 2010 'client_id': {'key': 'clientId', 'type': 'str'}, 2011 } 2012 2013 def __init__( 2014 self, 2015 **kwargs 2016 ): 2017 super(ManagedClusterIdentityUserAssignedIdentitiesValue, self).__init__(**kwargs) 2018 self.principal_id = None 2019 self.client_id = None 2020 2021 2022class ManagedClusterListResult(msrest.serialization.Model): 2023 """The response from the List Managed Clusters operation. 2024 2025 Variables are only populated by the server, and will be ignored when sending a request. 2026 2027 :param value: The list of managed clusters. 2028 :type value: list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedCluster] 2029 :ivar next_link: The URL to get the next set of managed cluster results. 2030 :vartype next_link: str 2031 """ 2032 2033 _validation = { 2034 'next_link': {'readonly': True}, 2035 } 2036 2037 _attribute_map = { 2038 'value': {'key': 'value', 'type': '[ManagedCluster]'}, 2039 'next_link': {'key': 'nextLink', 'type': 'str'}, 2040 } 2041 2042 def __init__( 2043 self, 2044 *, 2045 value: Optional[List["ManagedCluster"]] = None, 2046 **kwargs 2047 ): 2048 super(ManagedClusterListResult, self).__init__(**kwargs) 2049 self.value = value 2050 self.next_link = None 2051 2052 2053class ManagedClusterLoadBalancerProfile(msrest.serialization.Model): 2054 """Profile of the managed cluster load balancer. 2055 2056 :param managed_outbound_i_ps: Desired managed outbound IPs for the cluster load balancer. 2057 :type managed_outbound_i_ps: 2058 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfileManagedOutboundIPs 2059 :param outbound_ip_prefixes: Desired outbound IP Prefix resources for the cluster load 2060 balancer. 2061 :type outbound_ip_prefixes: 2062 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfileOutboundIPPrefixes 2063 :param outbound_i_ps: Desired outbound IP resources for the cluster load balancer. 2064 :type outbound_i_ps: 2065 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterLoadBalancerProfileOutboundIPs 2066 :param effective_outbound_i_ps: The effective outbound IP resources of the cluster load 2067 balancer. 2068 :type effective_outbound_i_ps: 2069 list[~azure.mgmt.containerservice.v2020_09_01.models.ResourceReference] 2070 :param allocated_outbound_ports: Desired number of allocated SNAT ports per VM. Allowed values 2071 must be in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure 2072 dynamically allocating ports. 2073 :type allocated_outbound_ports: int 2074 :param idle_timeout_in_minutes: Desired outbound flow idle timeout in minutes. Allowed values 2075 must be in the range of 4 to 120 (inclusive). The default value is 30 minutes. 2076 :type idle_timeout_in_minutes: int 2077 """ 2078 2079 _validation = { 2080 'allocated_outbound_ports': {'maximum': 64000, 'minimum': 0}, 2081 'idle_timeout_in_minutes': {'maximum': 120, 'minimum': 4}, 2082 } 2083 2084 _attribute_map = { 2085 'managed_outbound_i_ps': {'key': 'managedOutboundIPs', 'type': 'ManagedClusterLoadBalancerProfileManagedOutboundIPs'}, 2086 'outbound_ip_prefixes': {'key': 'outboundIPPrefixes', 'type': 'ManagedClusterLoadBalancerProfileOutboundIPPrefixes'}, 2087 'outbound_i_ps': {'key': 'outboundIPs', 'type': 'ManagedClusterLoadBalancerProfileOutboundIPs'}, 2088 'effective_outbound_i_ps': {'key': 'effectiveOutboundIPs', 'type': '[ResourceReference]'}, 2089 'allocated_outbound_ports': {'key': 'allocatedOutboundPorts', 'type': 'int'}, 2090 'idle_timeout_in_minutes': {'key': 'idleTimeoutInMinutes', 'type': 'int'}, 2091 } 2092 2093 def __init__( 2094 self, 2095 *, 2096 managed_outbound_i_ps: Optional["ManagedClusterLoadBalancerProfileManagedOutboundIPs"] = None, 2097 outbound_ip_prefixes: Optional["ManagedClusterLoadBalancerProfileOutboundIPPrefixes"] = None, 2098 outbound_i_ps: Optional["ManagedClusterLoadBalancerProfileOutboundIPs"] = None, 2099 effective_outbound_i_ps: Optional[List["ResourceReference"]] = None, 2100 allocated_outbound_ports: Optional[int] = 0, 2101 idle_timeout_in_minutes: Optional[int] = 30, 2102 **kwargs 2103 ): 2104 super(ManagedClusterLoadBalancerProfile, self).__init__(**kwargs) 2105 self.managed_outbound_i_ps = managed_outbound_i_ps 2106 self.outbound_ip_prefixes = outbound_ip_prefixes 2107 self.outbound_i_ps = outbound_i_ps 2108 self.effective_outbound_i_ps = effective_outbound_i_ps 2109 self.allocated_outbound_ports = allocated_outbound_ports 2110 self.idle_timeout_in_minutes = idle_timeout_in_minutes 2111 2112 2113class ManagedClusterLoadBalancerProfileManagedOutboundIPs(msrest.serialization.Model): 2114 """Desired managed outbound IPs for the cluster load balancer. 2115 2116 :param count: Desired number of outbound IP created/managed by Azure for the cluster load 2117 balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. 2118 :type count: int 2119 """ 2120 2121 _validation = { 2122 'count': {'maximum': 100, 'minimum': 1}, 2123 } 2124 2125 _attribute_map = { 2126 'count': {'key': 'count', 'type': 'int'}, 2127 } 2128 2129 def __init__( 2130 self, 2131 *, 2132 count: Optional[int] = 1, 2133 **kwargs 2134 ): 2135 super(ManagedClusterLoadBalancerProfileManagedOutboundIPs, self).__init__(**kwargs) 2136 self.count = count 2137 2138 2139class ManagedClusterLoadBalancerProfileOutboundIPPrefixes(msrest.serialization.Model): 2140 """Desired outbound IP Prefix resources for the cluster load balancer. 2141 2142 :param public_ip_prefixes: A list of public IP prefix resources. 2143 :type public_ip_prefixes: 2144 list[~azure.mgmt.containerservice.v2020_09_01.models.ResourceReference] 2145 """ 2146 2147 _attribute_map = { 2148 'public_ip_prefixes': {'key': 'publicIPPrefixes', 'type': '[ResourceReference]'}, 2149 } 2150 2151 def __init__( 2152 self, 2153 *, 2154 public_ip_prefixes: Optional[List["ResourceReference"]] = None, 2155 **kwargs 2156 ): 2157 super(ManagedClusterLoadBalancerProfileOutboundIPPrefixes, self).__init__(**kwargs) 2158 self.public_ip_prefixes = public_ip_prefixes 2159 2160 2161class ManagedClusterLoadBalancerProfileOutboundIPs(msrest.serialization.Model): 2162 """Desired outbound IP resources for the cluster load balancer. 2163 2164 :param public_i_ps: A list of public IP resources. 2165 :type public_i_ps: list[~azure.mgmt.containerservice.v2020_09_01.models.ResourceReference] 2166 """ 2167 2168 _attribute_map = { 2169 'public_i_ps': {'key': 'publicIPs', 'type': '[ResourceReference]'}, 2170 } 2171 2172 def __init__( 2173 self, 2174 *, 2175 public_i_ps: Optional[List["ResourceReference"]] = None, 2176 **kwargs 2177 ): 2178 super(ManagedClusterLoadBalancerProfileOutboundIPs, self).__init__(**kwargs) 2179 self.public_i_ps = public_i_ps 2180 2181 2182class ManagedClusterPoolUpgradeProfile(msrest.serialization.Model): 2183 """The list of available upgrade versions. 2184 2185 All required parameters must be populated in order to send to Azure. 2186 2187 :param kubernetes_version: Required. Kubernetes version (major, minor, patch). 2188 :type kubernetes_version: str 2189 :param name: Pool name. 2190 :type name: str 2191 :param os_type: Required. OsType to be used to specify os type. Choose from Linux and Windows. 2192 Default to Linux. Possible values include: "Linux", "Windows". Default value: "Linux". 2193 :type os_type: str or ~azure.mgmt.containerservice.v2020_09_01.models.OSType 2194 :param upgrades: List of orchestrator types and versions available for upgrade. 2195 :type upgrades: 2196 list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPoolUpgradeProfileUpgradesItem] 2197 """ 2198 2199 _validation = { 2200 'kubernetes_version': {'required': True}, 2201 'os_type': {'required': True}, 2202 } 2203 2204 _attribute_map = { 2205 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, 2206 'name': {'key': 'name', 'type': 'str'}, 2207 'os_type': {'key': 'osType', 'type': 'str'}, 2208 'upgrades': {'key': 'upgrades', 'type': '[ManagedClusterPoolUpgradeProfileUpgradesItem]'}, 2209 } 2210 2211 def __init__( 2212 self, 2213 *, 2214 kubernetes_version: str, 2215 os_type: Union[str, "OSType"] = "Linux", 2216 name: Optional[str] = None, 2217 upgrades: Optional[List["ManagedClusterPoolUpgradeProfileUpgradesItem"]] = None, 2218 **kwargs 2219 ): 2220 super(ManagedClusterPoolUpgradeProfile, self).__init__(**kwargs) 2221 self.kubernetes_version = kubernetes_version 2222 self.name = name 2223 self.os_type = os_type 2224 self.upgrades = upgrades 2225 2226 2227class ManagedClusterPoolUpgradeProfileUpgradesItem(msrest.serialization.Model): 2228 """ManagedClusterPoolUpgradeProfileUpgradesItem. 2229 2230 :param kubernetes_version: Kubernetes version (major, minor, patch). 2231 :type kubernetes_version: str 2232 :param is_preview: Whether Kubernetes version is currently in preview. 2233 :type is_preview: bool 2234 """ 2235 2236 _attribute_map = { 2237 'kubernetes_version': {'key': 'kubernetesVersion', 'type': 'str'}, 2238 'is_preview': {'key': 'isPreview', 'type': 'bool'}, 2239 } 2240 2241 def __init__( 2242 self, 2243 *, 2244 kubernetes_version: Optional[str] = None, 2245 is_preview: Optional[bool] = None, 2246 **kwargs 2247 ): 2248 super(ManagedClusterPoolUpgradeProfileUpgradesItem, self).__init__(**kwargs) 2249 self.kubernetes_version = kubernetes_version 2250 self.is_preview = is_preview 2251 2252 2253class ManagedClusterPropertiesAutoScalerProfile(msrest.serialization.Model): 2254 """Parameters to be applied to the cluster-autoscaler when enabled. 2255 2256 :param balance_similar_node_groups: 2257 :type balance_similar_node_groups: str 2258 :param expander: Possible values include: "least-waste", "most-pods", "random". 2259 :type expander: str or ~azure.mgmt.containerservice.v2020_09_01.models.Expander 2260 :param max_empty_bulk_delete: 2261 :type max_empty_bulk_delete: str 2262 :param max_graceful_termination_sec: 2263 :type max_graceful_termination_sec: str 2264 :param max_total_unready_percentage: 2265 :type max_total_unready_percentage: str 2266 :param new_pod_scale_up_delay: 2267 :type new_pod_scale_up_delay: str 2268 :param ok_total_unready_count: 2269 :type ok_total_unready_count: str 2270 :param scan_interval: 2271 :type scan_interval: str 2272 :param scale_down_delay_after_add: 2273 :type scale_down_delay_after_add: str 2274 :param scale_down_delay_after_delete: 2275 :type scale_down_delay_after_delete: str 2276 :param scale_down_delay_after_failure: 2277 :type scale_down_delay_after_failure: str 2278 :param scale_down_unneeded_time: 2279 :type scale_down_unneeded_time: str 2280 :param scale_down_unready_time: 2281 :type scale_down_unready_time: str 2282 :param scale_down_utilization_threshold: 2283 :type scale_down_utilization_threshold: str 2284 :param skip_nodes_with_local_storage: 2285 :type skip_nodes_with_local_storage: str 2286 :param skip_nodes_with_system_pods: 2287 :type skip_nodes_with_system_pods: str 2288 """ 2289 2290 _attribute_map = { 2291 'balance_similar_node_groups': {'key': 'balance-similar-node-groups', 'type': 'str'}, 2292 'expander': {'key': 'expander', 'type': 'str'}, 2293 'max_empty_bulk_delete': {'key': 'max-empty-bulk-delete', 'type': 'str'}, 2294 'max_graceful_termination_sec': {'key': 'max-graceful-termination-sec', 'type': 'str'}, 2295 'max_total_unready_percentage': {'key': 'max-total-unready-percentage', 'type': 'str'}, 2296 'new_pod_scale_up_delay': {'key': 'new-pod-scale-up-delay', 'type': 'str'}, 2297 'ok_total_unready_count': {'key': 'ok-total-unready-count', 'type': 'str'}, 2298 'scan_interval': {'key': 'scan-interval', 'type': 'str'}, 2299 'scale_down_delay_after_add': {'key': 'scale-down-delay-after-add', 'type': 'str'}, 2300 'scale_down_delay_after_delete': {'key': 'scale-down-delay-after-delete', 'type': 'str'}, 2301 'scale_down_delay_after_failure': {'key': 'scale-down-delay-after-failure', 'type': 'str'}, 2302 'scale_down_unneeded_time': {'key': 'scale-down-unneeded-time', 'type': 'str'}, 2303 'scale_down_unready_time': {'key': 'scale-down-unready-time', 'type': 'str'}, 2304 'scale_down_utilization_threshold': {'key': 'scale-down-utilization-threshold', 'type': 'str'}, 2305 'skip_nodes_with_local_storage': {'key': 'skip-nodes-with-local-storage', 'type': 'str'}, 2306 'skip_nodes_with_system_pods': {'key': 'skip-nodes-with-system-pods', 'type': 'str'}, 2307 } 2308 2309 def __init__( 2310 self, 2311 *, 2312 balance_similar_node_groups: Optional[str] = None, 2313 expander: Optional[Union[str, "Expander"]] = None, 2314 max_empty_bulk_delete: Optional[str] = None, 2315 max_graceful_termination_sec: Optional[str] = None, 2316 max_total_unready_percentage: Optional[str] = None, 2317 new_pod_scale_up_delay: Optional[str] = None, 2318 ok_total_unready_count: Optional[str] = None, 2319 scan_interval: Optional[str] = None, 2320 scale_down_delay_after_add: Optional[str] = None, 2321 scale_down_delay_after_delete: Optional[str] = None, 2322 scale_down_delay_after_failure: Optional[str] = None, 2323 scale_down_unneeded_time: Optional[str] = None, 2324 scale_down_unready_time: Optional[str] = None, 2325 scale_down_utilization_threshold: Optional[str] = None, 2326 skip_nodes_with_local_storage: Optional[str] = None, 2327 skip_nodes_with_system_pods: Optional[str] = None, 2328 **kwargs 2329 ): 2330 super(ManagedClusterPropertiesAutoScalerProfile, self).__init__(**kwargs) 2331 self.balance_similar_node_groups = balance_similar_node_groups 2332 self.expander = expander 2333 self.max_empty_bulk_delete = max_empty_bulk_delete 2334 self.max_graceful_termination_sec = max_graceful_termination_sec 2335 self.max_total_unready_percentage = max_total_unready_percentage 2336 self.new_pod_scale_up_delay = new_pod_scale_up_delay 2337 self.ok_total_unready_count = ok_total_unready_count 2338 self.scan_interval = scan_interval 2339 self.scale_down_delay_after_add = scale_down_delay_after_add 2340 self.scale_down_delay_after_delete = scale_down_delay_after_delete 2341 self.scale_down_delay_after_failure = scale_down_delay_after_failure 2342 self.scale_down_unneeded_time = scale_down_unneeded_time 2343 self.scale_down_unready_time = scale_down_unready_time 2344 self.scale_down_utilization_threshold = scale_down_utilization_threshold 2345 self.skip_nodes_with_local_storage = skip_nodes_with_local_storage 2346 self.skip_nodes_with_system_pods = skip_nodes_with_system_pods 2347 2348 2349class ManagedClusterPropertiesIdentityProfileValue(UserAssignedIdentity): 2350 """ManagedClusterPropertiesIdentityProfileValue. 2351 2352 :param resource_id: The resource id of the user assigned identity. 2353 :type resource_id: str 2354 :param client_id: The client id of the user assigned identity. 2355 :type client_id: str 2356 :param object_id: The object id of the user assigned identity. 2357 :type object_id: str 2358 """ 2359 2360 _attribute_map = { 2361 'resource_id': {'key': 'resourceId', 'type': 'str'}, 2362 'client_id': {'key': 'clientId', 'type': 'str'}, 2363 'object_id': {'key': 'objectId', 'type': 'str'}, 2364 } 2365 2366 def __init__( 2367 self, 2368 *, 2369 resource_id: Optional[str] = None, 2370 client_id: Optional[str] = None, 2371 object_id: Optional[str] = None, 2372 **kwargs 2373 ): 2374 super(ManagedClusterPropertiesIdentityProfileValue, self).__init__(resource_id=resource_id, client_id=client_id, object_id=object_id, **kwargs) 2375 2376 2377class ManagedClusterServicePrincipalProfile(msrest.serialization.Model): 2378 """Information about a service principal identity for the cluster to use for manipulating Azure APIs. 2379 2380 All required parameters must be populated in order to send to Azure. 2381 2382 :param client_id: Required. The ID for the service principal. 2383 :type client_id: str 2384 :param secret: The secret password associated with the service principal in plain text. 2385 :type secret: str 2386 """ 2387 2388 _validation = { 2389 'client_id': {'required': True}, 2390 } 2391 2392 _attribute_map = { 2393 'client_id': {'key': 'clientId', 'type': 'str'}, 2394 'secret': {'key': 'secret', 'type': 'str'}, 2395 } 2396 2397 def __init__( 2398 self, 2399 *, 2400 client_id: str, 2401 secret: Optional[str] = None, 2402 **kwargs 2403 ): 2404 super(ManagedClusterServicePrincipalProfile, self).__init__(**kwargs) 2405 self.client_id = client_id 2406 self.secret = secret 2407 2408 2409class ManagedClusterSKU(msrest.serialization.Model): 2410 """ManagedClusterSKU. 2411 2412 :param name: Name of a managed cluster SKU. Possible values include: "Basic". 2413 :type name: str or ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterSKUName 2414 :param tier: Tier of a managed cluster SKU. Possible values include: "Paid", "Free". 2415 :type tier: str or ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterSKUTier 2416 """ 2417 2418 _attribute_map = { 2419 'name': {'key': 'name', 'type': 'str'}, 2420 'tier': {'key': 'tier', 'type': 'str'}, 2421 } 2422 2423 def __init__( 2424 self, 2425 *, 2426 name: Optional[Union[str, "ManagedClusterSKUName"]] = None, 2427 tier: Optional[Union[str, "ManagedClusterSKUTier"]] = None, 2428 **kwargs 2429 ): 2430 super(ManagedClusterSKU, self).__init__(**kwargs) 2431 self.name = name 2432 self.tier = tier 2433 2434 2435class ManagedClusterUpgradeProfile(msrest.serialization.Model): 2436 """The list of available upgrades for compute pools. 2437 2438 Variables are only populated by the server, and will be ignored when sending a request. 2439 2440 All required parameters must be populated in order to send to Azure. 2441 2442 :ivar id: Id of upgrade profile. 2443 :vartype id: str 2444 :ivar name: Name of upgrade profile. 2445 :vartype name: str 2446 :ivar type: Type of upgrade profile. 2447 :vartype type: str 2448 :param control_plane_profile: Required. The list of available upgrade versions for the control 2449 plane. 2450 :type control_plane_profile: 2451 ~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPoolUpgradeProfile 2452 :param agent_pool_profiles: Required. The list of available upgrade versions for agent pools. 2453 :type agent_pool_profiles: 2454 list[~azure.mgmt.containerservice.v2020_09_01.models.ManagedClusterPoolUpgradeProfile] 2455 """ 2456 2457 _validation = { 2458 'id': {'readonly': True}, 2459 'name': {'readonly': True}, 2460 'type': {'readonly': True}, 2461 'control_plane_profile': {'required': True}, 2462 'agent_pool_profiles': {'required': True}, 2463 } 2464 2465 _attribute_map = { 2466 'id': {'key': 'id', 'type': 'str'}, 2467 'name': {'key': 'name', 'type': 'str'}, 2468 'type': {'key': 'type', 'type': 'str'}, 2469 'control_plane_profile': {'key': 'properties.controlPlaneProfile', 'type': 'ManagedClusterPoolUpgradeProfile'}, 2470 'agent_pool_profiles': {'key': 'properties.agentPoolProfiles', 'type': '[ManagedClusterPoolUpgradeProfile]'}, 2471 } 2472 2473 def __init__( 2474 self, 2475 *, 2476 control_plane_profile: "ManagedClusterPoolUpgradeProfile", 2477 agent_pool_profiles: List["ManagedClusterPoolUpgradeProfile"], 2478 **kwargs 2479 ): 2480 super(ManagedClusterUpgradeProfile, self).__init__(**kwargs) 2481 self.id = None 2482 self.name = None 2483 self.type = None 2484 self.control_plane_profile = control_plane_profile 2485 self.agent_pool_profiles = agent_pool_profiles 2486 2487 2488class ManagedClusterWindowsProfile(msrest.serialization.Model): 2489 """Profile for Windows VMs in the container service cluster. 2490 2491 All required parameters must be populated in order to send to Azure. 2492 2493 :param admin_username: Required. Specifies the name of the administrator account. 2494 :code:`<br>`:code:`<br>` **restriction:** Cannot end in "." :code:`<br>`:code:`<br>` 2495 **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", 2496 "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", 2497 "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", 2498 "sys", "test2", "test3", "user4", "user5". :code:`<br>`:code:`<br>` **Minimum-length:** 1 2499 character :code:`<br>`:code:`<br>` **Max-length:** 20 characters. 2500 :type admin_username: str 2501 :param admin_password: Specifies the password of the administrator account. 2502 :code:`<br>`:code:`<br>` **Minimum-length:** 8 characters :code:`<br>`:code:`<br>` 2503 **Max-length:** 123 characters :code:`<br>`:code:`<br>` **Complexity requirements:** 3 out of 4 2504 conditions below need to be fulfilled :code:`<br>` Has lower characters :code:`<br>`Has upper 2505 characters :code:`<br>` Has a digit :code:`<br>` Has a special character (Regex match [\W_]) 2506 :code:`<br>`:code:`<br>` **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", 2507 "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!". 2508 :type admin_password: str 2509 :param license_type: The licenseType to use for Windows VMs. Windows_Server is used to enable 2510 Azure Hybrid User Benefits for Windows VMs. Possible values include: "None", "Windows_Server". 2511 :type license_type: str or ~azure.mgmt.containerservice.v2020_09_01.models.LicenseType 2512 """ 2513 2514 _validation = { 2515 'admin_username': {'required': True}, 2516 } 2517 2518 _attribute_map = { 2519 'admin_username': {'key': 'adminUsername', 'type': 'str'}, 2520 'admin_password': {'key': 'adminPassword', 'type': 'str'}, 2521 'license_type': {'key': 'licenseType', 'type': 'str'}, 2522 } 2523 2524 def __init__( 2525 self, 2526 *, 2527 admin_username: str, 2528 admin_password: Optional[str] = None, 2529 license_type: Optional[Union[str, "LicenseType"]] = None, 2530 **kwargs 2531 ): 2532 super(ManagedClusterWindowsProfile, self).__init__(**kwargs) 2533 self.admin_username = admin_username 2534 self.admin_password = admin_password 2535 self.license_type = license_type 2536 2537 2538class OperationListResult(msrest.serialization.Model): 2539 """The List Compute Operation operation response. 2540 2541 Variables are only populated by the server, and will be ignored when sending a request. 2542 2543 :ivar value: The list of compute operations. 2544 :vartype value: list[~azure.mgmt.containerservice.v2020_09_01.models.OperationValue] 2545 """ 2546 2547 _validation = { 2548 'value': {'readonly': True}, 2549 } 2550 2551 _attribute_map = { 2552 'value': {'key': 'value', 'type': '[OperationValue]'}, 2553 } 2554 2555 def __init__( 2556 self, 2557 **kwargs 2558 ): 2559 super(OperationListResult, self).__init__(**kwargs) 2560 self.value = None 2561 2562 2563class OperationValue(msrest.serialization.Model): 2564 """Describes the properties of a Compute Operation value. 2565 2566 Variables are only populated by the server, and will be ignored when sending a request. 2567 2568 :ivar origin: The origin of the compute operation. 2569 :vartype origin: str 2570 :ivar name: The name of the compute operation. 2571 :vartype name: str 2572 :ivar operation: The display name of the compute operation. 2573 :vartype operation: str 2574 :ivar resource: The display name of the resource the operation applies to. 2575 :vartype resource: str 2576 :ivar description: The description of the operation. 2577 :vartype description: str 2578 :ivar provider: The resource provider for the operation. 2579 :vartype provider: str 2580 """ 2581 2582 _validation = { 2583 'origin': {'readonly': True}, 2584 'name': {'readonly': True}, 2585 'operation': {'readonly': True}, 2586 'resource': {'readonly': True}, 2587 'description': {'readonly': True}, 2588 'provider': {'readonly': True}, 2589 } 2590 2591 _attribute_map = { 2592 'origin': {'key': 'origin', 'type': 'str'}, 2593 'name': {'key': 'name', 'type': 'str'}, 2594 'operation': {'key': 'display.operation', 'type': 'str'}, 2595 'resource': {'key': 'display.resource', 'type': 'str'}, 2596 'description': {'key': 'display.description', 'type': 'str'}, 2597 'provider': {'key': 'display.provider', 'type': 'str'}, 2598 } 2599 2600 def __init__( 2601 self, 2602 **kwargs 2603 ): 2604 super(OperationValue, self).__init__(**kwargs) 2605 self.origin = None 2606 self.name = None 2607 self.operation = None 2608 self.resource = None 2609 self.description = None 2610 self.provider = None 2611 2612 2613class PowerState(msrest.serialization.Model): 2614 """Describes the Power State of the cluster. 2615 2616 :param code: Tells whether the cluster is Running or Stopped. Possible values include: 2617 "Running", "Stopped". 2618 :type code: str or ~azure.mgmt.containerservice.v2020_09_01.models.Code 2619 """ 2620 2621 _attribute_map = { 2622 'code': {'key': 'code', 'type': 'str'}, 2623 } 2624 2625 def __init__( 2626 self, 2627 *, 2628 code: Optional[Union[str, "Code"]] = None, 2629 **kwargs 2630 ): 2631 super(PowerState, self).__init__(**kwargs) 2632 self.code = code 2633 2634 2635class PrivateEndpoint(msrest.serialization.Model): 2636 """Private endpoint which a connection belongs to. 2637 2638 :param id: The resource Id for private endpoint. 2639 :type id: str 2640 """ 2641 2642 _attribute_map = { 2643 'id': {'key': 'id', 'type': 'str'}, 2644 } 2645 2646 def __init__( 2647 self, 2648 *, 2649 id: Optional[str] = None, 2650 **kwargs 2651 ): 2652 super(PrivateEndpoint, self).__init__(**kwargs) 2653 self.id = id 2654 2655 2656class PrivateEndpointConnection(msrest.serialization.Model): 2657 """A private endpoint connection. 2658 2659 Variables are only populated by the server, and will be ignored when sending a request. 2660 2661 :ivar id: The ID of the private endpoint connection. 2662 :vartype id: str 2663 :ivar name: The name of the private endpoint connection. 2664 :vartype name: str 2665 :ivar type: The resource type. 2666 :vartype type: str 2667 :ivar provisioning_state: The current provisioning state. Possible values include: "Succeeded", 2668 "Creating", "Deleting", "Failed". 2669 :vartype provisioning_state: str or 2670 ~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpointConnectionProvisioningState 2671 :param private_endpoint: The resource of private endpoint. 2672 :type private_endpoint: ~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpoint 2673 :param private_link_service_connection_state: A collection of information about the state of 2674 the connection between service consumer and provider. 2675 :type private_link_service_connection_state: 2676 ~azure.mgmt.containerservice.v2020_09_01.models.PrivateLinkServiceConnectionState 2677 """ 2678 2679 _validation = { 2680 'id': {'readonly': True}, 2681 'name': {'readonly': True}, 2682 'type': {'readonly': True}, 2683 'provisioning_state': {'readonly': True}, 2684 } 2685 2686 _attribute_map = { 2687 'id': {'key': 'id', 'type': 'str'}, 2688 'name': {'key': 'name', 'type': 'str'}, 2689 'type': {'key': 'type', 'type': 'str'}, 2690 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 2691 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'PrivateEndpoint'}, 2692 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkServiceConnectionState'}, 2693 } 2694 2695 def __init__( 2696 self, 2697 *, 2698 private_endpoint: Optional["PrivateEndpoint"] = None, 2699 private_link_service_connection_state: Optional["PrivateLinkServiceConnectionState"] = None, 2700 **kwargs 2701 ): 2702 super(PrivateEndpointConnection, self).__init__(**kwargs) 2703 self.id = None 2704 self.name = None 2705 self.type = None 2706 self.provisioning_state = None 2707 self.private_endpoint = private_endpoint 2708 self.private_link_service_connection_state = private_link_service_connection_state 2709 2710 2711class PrivateEndpointConnectionListResult(msrest.serialization.Model): 2712 """A list of private endpoint connections. 2713 2714 :param value: The collection value. 2715 :type value: list[~azure.mgmt.containerservice.v2020_09_01.models.PrivateEndpointConnection] 2716 """ 2717 2718 _attribute_map = { 2719 'value': {'key': 'value', 'type': '[PrivateEndpointConnection]'}, 2720 } 2721 2722 def __init__( 2723 self, 2724 *, 2725 value: Optional[List["PrivateEndpointConnection"]] = None, 2726 **kwargs 2727 ): 2728 super(PrivateEndpointConnectionListResult, self).__init__(**kwargs) 2729 self.value = value 2730 2731 2732class PrivateLinkResource(msrest.serialization.Model): 2733 """A private link resource. 2734 2735 Variables are only populated by the server, and will be ignored when sending a request. 2736 2737 :param id: The ID of the private link resource. 2738 :type id: str 2739 :param name: The name of the private link resource. 2740 :type name: str 2741 :param type: The resource type. 2742 :type type: str 2743 :param group_id: The group ID of the resource. 2744 :type group_id: str 2745 :param required_members: RequiredMembers of the resource. 2746 :type required_members: list[str] 2747 :ivar private_link_service_id: The private link service ID of the resource, this field is 2748 exposed only to NRP internally. 2749 :vartype private_link_service_id: str 2750 """ 2751 2752 _validation = { 2753 'private_link_service_id': {'readonly': True}, 2754 } 2755 2756 _attribute_map = { 2757 'id': {'key': 'id', 'type': 'str'}, 2758 'name': {'key': 'name', 'type': 'str'}, 2759 'type': {'key': 'type', 'type': 'str'}, 2760 'group_id': {'key': 'groupId', 'type': 'str'}, 2761 'required_members': {'key': 'requiredMembers', 'type': '[str]'}, 2762 'private_link_service_id': {'key': 'privateLinkServiceID', 'type': 'str'}, 2763 } 2764 2765 def __init__( 2766 self, 2767 *, 2768 id: Optional[str] = None, 2769 name: Optional[str] = None, 2770 type: Optional[str] = None, 2771 group_id: Optional[str] = None, 2772 required_members: Optional[List[str]] = None, 2773 **kwargs 2774 ): 2775 super(PrivateLinkResource, self).__init__(**kwargs) 2776 self.id = id 2777 self.name = name 2778 self.type = type 2779 self.group_id = group_id 2780 self.required_members = required_members 2781 self.private_link_service_id = None 2782 2783 2784class PrivateLinkResourcesListResult(msrest.serialization.Model): 2785 """A list of private link resources. 2786 2787 :param value: The collection value. 2788 :type value: list[~azure.mgmt.containerservice.v2020_09_01.models.PrivateLinkResource] 2789 """ 2790 2791 _attribute_map = { 2792 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, 2793 } 2794 2795 def __init__( 2796 self, 2797 *, 2798 value: Optional[List["PrivateLinkResource"]] = None, 2799 **kwargs 2800 ): 2801 super(PrivateLinkResourcesListResult, self).__init__(**kwargs) 2802 self.value = value 2803 2804 2805class PrivateLinkServiceConnectionState(msrest.serialization.Model): 2806 """The state of a private link service connection. 2807 2808 :param status: The private link service connection status. Possible values include: "Pending", 2809 "Approved", "Rejected", "Disconnected". 2810 :type status: str or ~azure.mgmt.containerservice.v2020_09_01.models.ConnectionStatus 2811 :param description: The private link service connection description. 2812 :type description: str 2813 """ 2814 2815 _attribute_map = { 2816 'status': {'key': 'status', 'type': 'str'}, 2817 'description': {'key': 'description', 'type': 'str'}, 2818 } 2819 2820 def __init__( 2821 self, 2822 *, 2823 status: Optional[Union[str, "ConnectionStatus"]] = None, 2824 description: Optional[str] = None, 2825 **kwargs 2826 ): 2827 super(PrivateLinkServiceConnectionState, self).__init__(**kwargs) 2828 self.status = status 2829 self.description = description 2830 2831 2832class ResourceReference(msrest.serialization.Model): 2833 """A reference to an Azure resource. 2834 2835 :param id: The fully qualified Azure resource id. 2836 :type id: str 2837 """ 2838 2839 _attribute_map = { 2840 'id': {'key': 'id', 'type': 'str'}, 2841 } 2842 2843 def __init__( 2844 self, 2845 *, 2846 id: Optional[str] = None, 2847 **kwargs 2848 ): 2849 super(ResourceReference, self).__init__(**kwargs) 2850 self.id = id 2851 2852 2853class TagsObject(msrest.serialization.Model): 2854 """Tags object for patch operations. 2855 2856 :param tags: A set of tags. Resource tags. 2857 :type tags: dict[str, str] 2858 """ 2859 2860 _attribute_map = { 2861 'tags': {'key': 'tags', 'type': '{str}'}, 2862 } 2863 2864 def __init__( 2865 self, 2866 *, 2867 tags: Optional[Dict[str, str]] = None, 2868 **kwargs 2869 ): 2870 super(TagsObject, self).__init__(**kwargs) 2871 self.tags = tags 2872