{
  "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
    }
  }
}