swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The Container Service Client.
  title: ContainerServiceClient
  version: 2017-08-31
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/containerservices/resource-manager/Microsoft.ContainerService/stable/2017-08-31/managedClusters.json
      version: "2.0"
  x-preferred: false
  x-providerName: azure.com
  x-serviceName: containerservices-managedClusters
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  ApiVersionParameter:
    description: Client Api Version.
    in: query
    name: api-version
    required: true
    type: string
    x-ms-parameter-location: client
  SubscriptionIdParameter:
    description: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
    in: path
    name: subscriptionId
    required: true
    type: string
    x-ms-parameter-location: client
paths:
  "/subscriptions/{subscriptionId}/providers/Microsoft.ContainerService/managedClusters":
    get:
      description: Gets a list of managed clusters in the specified subscription. The operation returns properties of each managed cluster.
      operationId: ManagedClusters_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ManagedClusterListResult"
      summary: Gets a list of managed clusters in the specified subscription.
      tags:
        - ManagedClusters
      x-ms-examples:
        List Managed Clusters:
          parameters:
            api-version: 2017-08-31
            subscriptionId: subid1
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/subid1/providers/Microsoft.ContainerService/managedClusters
                    location: location1
                    name: mycluster1
                    properties:
                      agentPoolProfiles:
                        - count: 1
                          dnsPrefix: agentpool1dnsPrefix
                          fqdn: agentpool1fqdn
                          name: agentpool1
                          osType: Linux
                          ports:
                            - 1
                          storageProfile: ManagedDisks
                          vmSize: Standard_D2_v2
                      dnsPrefix: dnsprefix1
                      fqdn: dnsprefix1-123456.abc.location1.azmk8s.io
                      kubernetesVersion: 1.7.7
                      linuxProfile:
                        adminUsername: azureuser
                        ssh:
                          publicKeys:
                            - keyData: keydata
                      provisioningState: Succeeded
                      servicePrincipalProfile:
                        clientId: clientid
                    tags:
                      archv2: ""
                      tier: production
                    type: Microsoft.ContainerService/ManagedClusters
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters":
    get:
      description: Lists managed clusters in the specified subscription and resource group. The operation returns properties of each managed cluster.
      operationId: ManagedClusters_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ManagedClusterListResult"
      summary: Lists managed clusters in the specified subscription and resource group.
      tags:
        - ManagedClusters
      x-ms-examples:
        Get Managed Clusters by Resource Group:
          parameters:
            api-version: 2017-08-31
            resourceGroupName: rg1
            subscriptionId: subid1
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/subid1/resourceGroups/rg1/providers/Microsoft.ContainerService/managedClusters
                    location: location1
                    name: mycluster1
                    properties:
                      agentPoolProfiles:
                        - count: 1
                          dnsPrefix: agentpool1dnsPrefix
                          fqdn: agentpool1fqdn
                          name: agentpool1
                          osType: Linux
                          ports:
                            - 1
                          storageProfile: ManagedDisks
                          vmSize: Standard_D2_v2
                      dnsPrefix: dnsprefix1
                      fqdn: dnsprefix1-123456.abc.location1.azmk8s.io
                      kubernetesVersion: 1.7.7
                      linuxProfile:
                        adminUsername: azureuser
                        ssh:
                          publicKeys:
                            - keyData: keydata
                      provisioningState: Succeeded
                      servicePrincipalProfile:
                        clientId: clientid
                    tags:
                      archv2: ""
                      tier: production
                    type: Microsoft.ContainerService/ManagedClusters
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}":
    delete:
      description: Deletes the managed cluster with a specified resource group and name.
      operationId: ManagedClusters_Delete
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the managed cluster resource.
          in: path
          name: resourceName
          required: true
          type: string
      responses:
        "202":
          description: Accepted
        "204":
          description: NoContent
      summary: Deletes a managed cluster.
      tags:
        - ManagedClusters
      x-ms-examples:
        Delete Managed Cluster:
          parameters:
            api-version: 2017-08-31
            resourceGroupName: rg1
            resourceName: clustername1
            subscriptionId: subid1
          responses:
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
    get:
      description: Gets the details of the managed cluster with a specified resource group and name.
      operationId: ManagedClusters_Get
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the managed cluster resource.
          in: path
          name: resourceName
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ManagedCluster"
      summary: Gets a managed cluster.
      tags:
        - ManagedClusters
      x-ms-examples:
        Get Managed Cluster:
          parameters:
            api-version: 2017-08-31
            resourceGroupName: rg1
            resourceName: clustername1
            subscriptionId: subid1
          responses:
            "200":
              body:
                id: /subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1
                location: location1
                name: mycluster1
                properties:
                  agentPoolProfiles:
                    - count: 1
                      dnsPrefix: agentpool1dnsPrefix
                      fqdn: agentpool1fqdn
                      name: agentpool1
                      osType: Linux
                      ports:
                        - 1
                      storageProfile: ManagedDisks
                      vmSize: Standard_D2_v2
                  dnsPrefix: dnsprefix1
                  fqdn: dnsprefix1-123456.abc.location1.azmk8s.io
                  kubernetesVersion: 1.7.7
                  linuxProfile:
                    adminUsername: azureuser
                    ssh:
                      publicKeys:
                        - keyData: keydata
                  provisioningState: Succeeded
                  servicePrincipalProfile:
                    clientId: clientid
                tags:
                  archv2: ""
                  tier: production
                type: Microsoft.ContainerService/ManagedClusters
    put:
      description: Creates or updates a managed cluster with the specified configuration for agents and Kubernetes version.
      operationId: ManagedClusters_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the managed cluster resource.
          in: path
          name: resourceName
          required: true
          type: string
        - description: Parameters supplied to the Create or Update a Managed Cluster operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ManagedCluster"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ManagedCluster"
        "201":
          description: Created
          schema:
            $ref: "#/definitions/ManagedCluster"
      summary: Creates or updates a managed cluster.
      tags:
        - ManagedClusters
      x-ms-examples:
        Create/Update Managed Cluster:
          parameters:
            api-version: 2017-08-31
            parameters:
              location: location1
              properties:
                agentPoolProfiles:
                  - count: 1
                    name: agentpool1
                    vmSize: Standard_D2_v2
                dnsPrefix: dnsprefix1
                kubernetesVersion: 1.7.7
            resourceGroupName: rg1
            resourceName: clustername1
            subscriptionId: subid1
          responses:
            "200":
              body:
                id: /subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1
                location: location1
                name: mycluster1
                properties:
                  agentPoolProfiles:
                    - count: 1
                      dnsPrefix: agentpool1dnsPrefix
                      fqdn: agentpool1fqdn
                      name: agentpool1
                      osType: Linux
                      ports:
                        - 1
                      storageProfile: ManagedDisks
                      vmSize: Standard_D2_v2
                  dnsPrefix: dnsprefix1
                  fqdn: dnsprefix1-123456.abc.location1.azmk8s.io
                  kubernetesVersion: 1.7.7
                  linuxProfile:
                    adminUsername: azureuser
                    ssh:
                      publicKeys:
                        - keyData: keydata
                  provisioningState: Succeeded
                  servicePrincipalProfile:
                    clientId: clientid
                tags:
                  archv2: ""
                  tier: production
                type: Microsoft.ContainerService/ManagedClusters
            "201":
              body:
                id: /subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1
                location: location1
                name: mycluster1
                properties:
                  agentPoolProfiles:
                    - count: 1
                      dnsPrefix: agentpool1dnsPrefix
                      fqdn: agentpool1fqdn
                      name: agentpool1
                      osType: Linux
                      ports:
                        - 1
                      storageProfile: ManagedDisks
                      vmSize: Standard_D2_v2
                  dnsPrefix: dnsprefix1
                  fqdn: dnsprefix1-123456.abc.location1.azmk8s.io
                  kubernetesVersion: 1.7.7
                  linuxProfile:
                    adminUsername: azureuser
                    ssh:
                      publicKeys:
                        - keyData: keydata
                  provisioningState: Succeeded
                  servicePrincipalProfile:
                    clientId: clientid
                tags:
                  archv2: ""
                  tier: production
                type: Microsoft.ContainerService/ManagedClusters
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/accessProfiles/{roleName}":
    get:
      deprecated: true
      description: Use ManagedClusters_GetAccessProfile instead.
      operationId: ManagedClusters_GetAccessProfiles
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the managed cluster resource.
          in: path
          name: resourceName
          required: true
          type: string
        - description: The name of the role for managed cluster accessProfile resource.
          in: path
          name: roleName
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ManagedClusterAccessProfile"
      summary: Gets access profile of a managed cluster.
      tags:
        - ManagedClusters
      x-ms-examples:
        Get Managed Cluster:
          parameters:
            api-version: 2017-08-31
            resourceGroupName: rg1
            resourceName: clustername1
            roleName: clusterUser
            subscriptionId: subid1
          responses:
            "200":
              body:
                id: /subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/accessProfiles/clusterUser
                location: location1
                name: clusterUser
                properties:
                  kubeConfig: kubeConfig1
                type: Microsoft.ContainerService/ManagedClusters/AccessProfiles
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/accessProfiles/{roleName}/listCredential":
    post:
      description: Gets the accessProfile for the specified role name of the managed cluster with a specified resource group and name.
      operationId: ManagedClusters_GetAccessProfile
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the managed cluster resource.
          in: path
          name: resourceName
          required: true
          type: string
        - description: The name of the role for managed cluster accessProfile resource.
          in: path
          name: roleName
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ManagedClusterAccessProfile"
      summary: Gets an access profile of a managed cluster.
      tags:
        - ManagedClusters
      x-ms-examples:
        Get Managed Cluster:
          parameters:
            api-version: 2017-08-31
            resourceGroupName: rg1
            resourceName: clustername1
            roleName: clusterUser
            subscriptionId: subid1
          responses:
            "200":
              body:
                id: /subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/accessProfiles/clusterUser
                location: location1
                name: clusterUser
                properties:
                  kubeConfig: kubeConfig1
                type: Microsoft.ContainerService/ManagedClusters/AccessProfiles
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{resourceName}/upgradeProfiles/default":
    get:
      description: Gets the details of the upgrade profile for a managed cluster with a specified resource group and name.
      operationId: ManagedClusters_GetUpgradeProfile
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the managed cluster resource.
          in: path
          name: resourceName
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ManagedClusterUpgradeProfile"
      summary: Gets upgrade profile for a managed cluster.
      tags:
        - ManagedClusters
      x-ms-examples:
        Get Upgrade Profile for Managed Cluster:
          parameters:
            api-version: 2017-08-31
            resourceGroupName: rg1
            resourceName: clustername1
            subscriptionId: subid1
          responses:
            "200":
              body:
                id: /subscriptions/subid1/resourcegroups/rg1/providers/Microsoft.ContainerService/managedClusters/clustername1/upgradeprofiles/default
                name: default
                properties:
                  agentPoolProfiles:
                    - kubernetesVersion: 1.7.7
                      name: agent
                      osType: Linux
                      upgrades:
                        - 1.8.1
                  controlPlaneProfile:
                    kubernetesVersion: 1.7.7
                    name: master
                    osType: Linux
                    upgrades:
                      - 1.8.1
                type: Microsoft.ContainerService/managedClusters/upgradeprofiles
definitions:
  AccessProfile:
    description: Profile for enabling a user to access a managed cluster.
    properties:
      kubeConfig:
        description: Base64-encoded Kubernetes configuration file.
        format: byte
        type: string
    type: object
  ContainerServiceAgentPoolProfile:
    description: Profile for the container service agent pool.
    properties:
      count:
        default: 1
        description: "Number of agents (VMs) to host docker containers. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. "
        format: int32
        maximum: 100
        minimum: 1
        type: integer
      dnsPrefix:
        description: DNS prefix to be used to create the FQDN for the agent pool.
        type: string
      fqdn:
        description: FQDN for the agent pool.
        readOnly: true
        type: string
      name:
        description: Unique name of the agent pool profile in the context of the subscription and resource group.
        type: string
      osDiskSizeGB:
        $ref: "#/definitions/ContainerServiceOSDisk"
        description: OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
      osType:
        $ref: "#/definitions/OSType"
        description: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
      ports:
        description: Ports number array used to expose on this agent pool. The default opened ports are different based on your choice of orchestrator.
        items:
          maximum: 65535
          minimum: 1
          type: integer
        type: array
      storageProfile:
        $ref: "#/definitions/ContainerServiceStorageProfile"
        description: Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice.
      vmSize:
        $ref: "#/definitions/ContainerServiceVMSize"
        description: Size of agent VMs.
      vnetSubnetID:
        $ref: "#/definitions/ContainerServiceVnetSubnetID"
        description: VNet SubnetID specifies the VNet's subnet identifier.
    required:
      - name
      - vmSize
  ContainerServiceDiagnosticsProfile:
    description: Profile for diagnostics on the container service cluster.
    properties:
      vmDiagnostics:
        $ref: "#/definitions/ContainerServiceVMDiagnostics"
        description: Profile for diagnostics on the container service VMs.
    required:
      - vmDiagnostics
  ContainerServiceLinuxProfile:
    description: Profile for Linux VMs in the container service cluster.
    properties:
      adminUsername:
        description: The administrator username to use for Linux VMs.
        pattern: ^[A-Za-z][-A-Za-z0-9_]*$
        type: string
      ssh:
        $ref: "#/definitions/ContainerServiceSshConfiguration"
        description: SSH configuration for Linux-based VMs running on Azure.
    required:
      - adminUsername
      - ssh
  ContainerServiceMasterProfile:
    description: Profile for the container service master.
    properties:
      count:
        default: 1
        description: Number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The default value is 1.
        enum:
          - 1
          - 3
          - 5
        format: int32
        type: integer
        x-ms-enum:
          modelAsString: false
          name: Count
      dnsPrefix:
        description: DNS prefix to be used to create the FQDN for the master pool.
        type: string
      firstConsecutiveStaticIP:
        default: 10.240.255.5
        description: FirstConsecutiveStaticIP used to specify the first static ip of masters.
        type: string
      fqdn:
        description: FQDN for the master pool.
        readOnly: true
        type: string
      osDiskSizeGB:
        $ref: "#/definitions/ContainerServiceOSDisk"
        description: OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
      storageProfile:
        $ref: "#/definitions/ContainerServiceStorageProfile"
        description: Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice.
      vmSize:
        $ref: "#/definitions/ContainerServiceVMSize"
        description: Size of agent VMs.
      vnetSubnetID:
        $ref: "#/definitions/ContainerServiceVnetSubnetID"
        description: VNet SubnetID specifies the VNet's subnet identifier.
    required:
      - dnsPrefix
      - vmSize
  ContainerServiceOSDisk:
    description: OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified.
    format: int32
    maximum: 1023
    minimum: 0
    type: integer
  ContainerServiceServicePrincipalProfile:
    description: Information about a service principal identity for the cluster to use for manipulating Azure APIs. Either secret or keyVaultSecretRef must be specified.
    properties:
      clientId:
        description: The ID for the service principal.
        type: string
      keyVaultSecretRef:
        $ref: "#/definitions/KeyVaultSecretRef"
        description: Reference to a secret stored in Azure Key Vault.
      secret:
        description: The secret password associated with the service principal in plain text.
        type: string
    required:
      - clientId
  ContainerServiceSshConfiguration:
    description: SSH configuration for Linux-based VMs running on Azure.
    properties:
      publicKeys:
        description: The list of SSH public keys used to authenticate with Linux-based VMs. Only expect one key specified.
        items:
          $ref: "#/definitions/ContainerServiceSshPublicKey"
        type: array
    required:
      - publicKeys
  ContainerServiceSshPublicKey:
    description: Contains information about SSH certificate public key data.
    properties:
      keyData:
        description: Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or without headers.
        type: string
    required:
      - keyData
  ContainerServiceStorageProfile:
    description: Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice.
    enum:
      - StorageAccount
      - ManagedDisks
    type: string
    x-ms-enum:
      modelAsString: true
      name: ContainerServiceStorageProfileTypes
  ContainerServiceVMDiagnostics:
    description: Profile for diagnostics on the container service VMs.
    properties:
      enabled:
        description: Whether the VM diagnostic agent is provisioned on the VM.
        type: boolean
      storageUri:
        description: The URI of the storage account where diagnostics are stored.
        readOnly: true
        type: string
    required:
      - enabled
  ContainerServiceVMSize:
    description: Size of agent VMs.
    enum:
      - Standard_A1
      - Standard_A10
      - Standard_A11
      - Standard_A1_v2
      - Standard_A2
      - Standard_A2_v2
      - Standard_A2m_v2
      - Standard_A3
      - Standard_A4
      - Standard_A4_v2
      - Standard_A4m_v2
      - Standard_A5
      - Standard_A6
      - Standard_A7
      - Standard_A8
      - Standard_A8_v2
      - Standard_A8m_v2
      - Standard_A9
      - Standard_B2ms
      - Standard_B2s
      - Standard_B4ms
      - Standard_B8ms
      - Standard_D1
      - Standard_D11
      - Standard_D11_v2
      - Standard_D11_v2_Promo
      - Standard_D12
      - Standard_D12_v2
      - Standard_D12_v2_Promo
      - Standard_D13
      - Standard_D13_v2
      - Standard_D13_v2_Promo
      - Standard_D14
      - Standard_D14_v2
      - Standard_D14_v2_Promo
      - Standard_D15_v2
      - Standard_D16_v3
      - Standard_D16s_v3
      - Standard_D1_v2
      - Standard_D2
      - Standard_D2_v2
      - Standard_D2_v2_Promo
      - Standard_D2_v3
      - Standard_D2s_v3
      - Standard_D3
      - Standard_D32_v3
      - Standard_D32s_v3
      - Standard_D3_v2
      - Standard_D3_v2_Promo
      - Standard_D4
      - Standard_D4_v2
      - Standard_D4_v2_Promo
      - Standard_D4_v3
      - Standard_D4s_v3
      - Standard_D5_v2
      - Standard_D5_v2_Promo
      - Standard_D64_v3
      - Standard_D64s_v3
      - Standard_D8_v3
      - Standard_D8s_v3
      - Standard_DS1
      - Standard_DS11
      - Standard_DS11_v2
      - Standard_DS11_v2_Promo
      - Standard_DS12
      - Standard_DS12_v2
      - Standard_DS12_v2_Promo
      - Standard_DS13
      - Standard_DS13-2_v2
      - Standard_DS13-4_v2
      - Standard_DS13_v2
      - Standard_DS13_v2_Promo
      - Standard_DS14
      - Standard_DS14-4_v2
      - Standard_DS14-8_v2
      - Standard_DS14_v2
      - Standard_DS14_v2_Promo
      - Standard_DS15_v2
      - Standard_DS1_v2
      - Standard_DS2
      - Standard_DS2_v2
      - Standard_DS2_v2_Promo
      - Standard_DS3
      - Standard_DS3_v2
      - Standard_DS3_v2_Promo
      - Standard_DS4
      - Standard_DS4_v2
      - Standard_DS4_v2_Promo
      - Standard_DS5_v2
      - Standard_DS5_v2_Promo
      - Standard_E16_v3
      - Standard_E16s_v3
      - Standard_E2_v3
      - Standard_E2s_v3
      - Standard_E32-16s_v3
      - Standard_E32-8s_v3
      - Standard_E32_v3
      - Standard_E32s_v3
      - Standard_E4_v3
      - Standard_E4s_v3
      - Standard_E64-16s_v3
      - Standard_E64-32s_v3
      - Standard_E64_v3
      - Standard_E64s_v3
      - Standard_E8_v3
      - Standard_E8s_v3
      - Standard_F1
      - Standard_F16
      - Standard_F16s
      - Standard_F16s_v2
      - Standard_F1s
      - Standard_F2
      - Standard_F2s
      - Standard_F2s_v2
      - Standard_F32s_v2
      - Standard_F4
      - Standard_F4s
      - Standard_F4s_v2
      - Standard_F64s_v2
      - Standard_F72s_v2
      - Standard_F8
      - Standard_F8s
      - Standard_F8s_v2
      - Standard_G1
      - Standard_G2
      - Standard_G3
      - Standard_G4
      - Standard_G5
      - Standard_GS1
      - Standard_GS2
      - Standard_GS3
      - Standard_GS4
      - Standard_GS4-4
      - Standard_GS4-8
      - Standard_GS5
      - Standard_GS5-16
      - Standard_GS5-8
      - Standard_H16
      - Standard_H16m
      - Standard_H16mr
      - Standard_H16r
      - Standard_H8
      - Standard_H8m
      - Standard_L16s
      - Standard_L32s
      - Standard_L4s
      - Standard_L8s
      - Standard_M128-32ms
      - Standard_M128-64ms
      - Standard_M128ms
      - Standard_M128s
      - Standard_M64-16ms
      - Standard_M64-32ms
      - Standard_M64ms
      - Standard_M64s
      - Standard_NC12
      - Standard_NC12s_v2
      - Standard_NC12s_v3
      - Standard_NC24
      - Standard_NC24r
      - Standard_NC24rs_v2
      - Standard_NC24rs_v3
      - Standard_NC24s_v2
      - Standard_NC24s_v3
      - Standard_NC6
      - Standard_NC6s_v2
      - Standard_NC6s_v3
      - Standard_ND12s
      - Standard_ND24rs
      - Standard_ND24s
      - Standard_ND6s
      - Standard_NV12
      - Standard_NV24
      - Standard_NV6
    type: string
    x-ms-enum:
      modelAsString: true
      name: ContainerServiceVMSizeTypes
  ContainerServiceVnetSubnetID:
    description: VNet SubnetID specifies the VNet's subnet identifier.
    type: string
  ContainerServiceWindowsProfile:
    description: Profile for Windows VMs in the container service cluster.
    properties:
      adminPassword:
        description: The administrator password to use for Windows VMs.
        pattern: ^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%\^&\*\(\)])[a-zA-Z\d!@#$%\^&\*\(\)]{12,123}$
        type: string
      adminUsername:
        description: The administrator username to use for Windows VMs.
        pattern: ^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$
        type: string
    required:
      - adminUsername
      - adminPassword
  KeyVaultSecretRef:
    description: Reference to a secret stored in Azure Key Vault.
    properties:
      secretName:
        description: The secret name.
        type: string
      vaultID:
        description: Key vault identifier.
        type: string
      version:
        description: The secret version.
        type: string
    required:
      - vaultID
      - secretName
  ManagedCluster:
    allOf:
      - $ref: "#/definitions/Resource"
      - properties:
          properties:
            $ref: "#/definitions/ManagedClusterProperties"
            description: Properties of a managed cluster.
            x-ms-client-flatten: true
    description: Managed cluster.
  ManagedClusterAccessProfile:
    allOf:
      - $ref: "#/definitions/Resource"
      - properties:
          properties:
            $ref: "#/definitions/AccessProfile"
            description: AccessProfile of a managed cluster.
            x-ms-client-flatten: true
    description: Managed cluster Access Profile.
  ManagedClusterListResult:
    description: The response from the List Managed Clusters operation.
    properties:
      nextLink:
        description: The URL to get the next set of managed cluster results.
        readOnly: true
        type: string
      value:
        description: The list of managed clusters.
        items:
          $ref: "#/definitions/ManagedCluster"
        type: array
  ManagedClusterPoolUpgradeProfile:
    description: The list of available upgrade versions.
    properties:
      kubernetesVersion:
        description: Kubernetes version (major, minor, patch).
        type: string
      name:
        description: Pool name.
        type: string
      osType:
        $ref: "#/definitions/OSType"
        description: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
        enum:
          - Linux
          - Windows
        x-ms-enum:
          modelAsString: true
          name: ContainerServiceOSTypes
      upgrades:
        description: List of orchestrator types and versions available for upgrade.
        items:
          type: string
        type: array
    required:
      - kubernetesVersion
      - osType
  ManagedClusterProperties:
    description: Properties of the managed cluster.
    properties:
      agentPoolProfiles:
        description: Properties of the agent pool.
        items:
          $ref: "#/definitions/ContainerServiceAgentPoolProfile"
        type: array
      dnsPrefix:
        description: DNS prefix specified when creating the managed cluster.
        type: string
      fqdn:
        description: FQDN for the master pool.
        readOnly: true
        type: string
      kubernetesVersion:
        description: Version of Kubernetes specified when creating the managed cluster.
        type: string
      linuxProfile:
        $ref: "#/definitions/ContainerServiceLinuxProfile"
        description: Profile for Linux VMs in the container service cluster.
      provisioningState:
        description: The current deployment or provisioning state, which only appears in the response.
        readOnly: true
        type: string
      servicePrincipalProfile:
        $ref: "#/definitions/ContainerServiceServicePrincipalProfile"
        description: Information about a service principal identity for the cluster to use for manipulating Azure APIs. Either secret or keyVaultSecretRef must be specified.
  ManagedClusterUpgradeProfile:
    description: The list of available upgrades for compute pools.
    properties:
      id:
        description: Id of upgrade profile.
        readOnly: true
        type: string
      name:
        description: Name of upgrade profile.
        readOnly: true
        type: string
      properties:
        $ref: "#/definitions/ManagedClusterUpgradeProfileProperties"
        description: Properties of upgrade profile.
        x-ms-client-flatten: true
      type:
        description: Type of upgrade profile.
        readOnly: true
        type: string
    required:
      - properties
  ManagedClusterUpgradeProfileProperties:
    description: Control plane and agent pool upgrade profiles.
    properties:
      agentPoolProfiles:
        description: The list of available upgrade versions for agent pools.
        items:
          $ref: "#/definitions/ManagedClusterPoolUpgradeProfile"
        type: array
      controlPlaneProfile:
        $ref: "#/definitions/ManagedClusterPoolUpgradeProfile"
        description: The list of available upgrade versions for the control plane.
    required:
      - controlPlaneProfile
      - agentPoolProfiles
  OSType:
    default: Linux
    description: OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux.
    enum:
      - Linux
      - Windows
    type: string
    x-ms-enum:
      modelAsString: true
      name: OSType
  OrchestratorProfile:
    description: Contains information about orchestrator.
    properties:
      orchestratorType:
        description: Orchestrator type.
        type: string
      orchestratorVersion:
        description: Orchestrator version (major, minor, patch).
        type: string
    required:
      - orchestratorType
      - orchestratorVersion
  Resource:
    description: The Resource model definition.
    properties:
      id:
        description: Resource Id
        readOnly: true
        type: string
      location:
        description: Resource location
        type: string
        x-ms-mutability:
          - read
          - create
      name:
        description: Resource name
        readOnly: true
        type: string
      tags:
        additionalProperties:
          type: string
        description: Resource tags
        type: object
      type:
        description: Resource type
        readOnly: true
        type: string
    required:
      - location
    x-ms-azure-resource: true
