{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "description": "The Container Service Client.",
    "title": "ContainerServiceClient",
    "version": "2015-11-01-preview",
    "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/compute/resource-manager/Microsoft.ContainerService/preview/2015-11-01-preview/containerService.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "compute-containerService",
    "x-tags": [
      "Azure",
      "Microsoft"
    ]
  },
  "consumes": [
    "application/json",
    "text/json"
  ],
  "produces": [
    "application/json",
    "text/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"
    },
    "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"
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/containerServices": {
      "get": {
        "description": "The operation to list container services.",
        "operationId": "ContainerService_ListByResourceGroup",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ContainerServiceListResult"
            }
          }
        },
        "tags": [
          "ContainerService"
        ],
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/containerServices/{containerServiceName}": {
      "delete": {
        "description": "The operation to delete a container service.",
        "operationId": "ContainerService_Delete",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the container service within the given subscription and resource group.",
            "in": "path",
            "name": "containerServiceName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "202": {
            "description": ""
          },
          "204": {
            "description": ""
          }
        },
        "tags": [
          "ContainerService"
        ],
        "x-ms-long-running-operation": true
      },
      "get": {
        "description": "The operation to get a container service.",
        "operationId": "ContainerService_Get",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the container service within the given subscription and resource group.",
            "in": "path",
            "name": "containerServiceName",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ContainerService"
            }
          }
        },
        "tags": [
          "ContainerService"
        ]
      },
      "put": {
        "description": "The operation to create or update a container service.",
        "operationId": "ContainerService_CreateOrUpdate",
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "type": "string"
          },
          {
            "description": "The name of the container service within the given subscription and resource group.",
            "in": "path",
            "name": "containerServiceName",
            "required": true,
            "type": "string"
          },
          {
            "description": "Parameters supplied to the Create Container Service operation.",
            "in": "body",
            "name": "parameters",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ContainerService"
            }
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ContainerService"
            }
          },
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ContainerService"
            }
          },
          "202": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ContainerService"
            }
          }
        },
        "tags": [
          "ContainerService"
        ],
        "x-ms-long-running-operation": true
      }
    }
  },
  "definitions": {
    "ContainerService": {
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Container service",
      "properties": {
        "properties": {
          "$ref": "#/definitions/ContainerServiceProperties",
          "x-ms-client-flatten": true
        }
      }
    },
    "ContainerServiceAgentPoolProfile": {
      "description": "Profile for container service agent pool",
      "properties": {
        "count": {
          "description": "No. of agents (VMs) that will host docker containers",
          "format": "int32",
          "maximum": 100,
          "minimum": 1,
          "type": "integer"
        },
        "dnsPrefix": {
          "description": "DNS prefix to be used to create FQDN for this agent pool",
          "type": "string"
        },
        "fqdn": {
          "description": "FQDN for the agent pool",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Unique name of the agent pool profile within the context of the subscription and resource group",
          "type": "string"
        },
        "vmSize": {
          "description": "Size of agent VMs",
          "enum": [
            "Standard_A0",
            "Standard_A1",
            "Standard_A2",
            "Standard_A3",
            "Standard_A4",
            "Standard_A5",
            "Standard_A6",
            "Standard_A7",
            "Standard_A8",
            "Standard_A9",
            "Standard_A10",
            "Standard_A11",
            "Standard_D1",
            "Standard_D2",
            "Standard_D3",
            "Standard_D4",
            "Standard_D11",
            "Standard_D12",
            "Standard_D13",
            "Standard_D14",
            "Standard_D1_v2",
            "Standard_D2_v2",
            "Standard_D3_v2",
            "Standard_D4_v2",
            "Standard_D5_v2",
            "Standard_D11_v2",
            "Standard_D12_v2",
            "Standard_D13_v2",
            "Standard_D14_v2",
            "Standard_G1",
            "Standard_G2",
            "Standard_G3",
            "Standard_G4",
            "Standard_G5",
            "Standard_DS1",
            "Standard_DS2",
            "Standard_DS3",
            "Standard_DS4",
            "Standard_DS11",
            "Standard_DS12",
            "Standard_DS13",
            "Standard_DS14",
            "Standard_GS1",
            "Standard_GS2",
            "Standard_GS3",
            "Standard_GS4",
            "Standard_GS5"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ContainerServiceVMSizeTypes"
          }
        }
      },
      "required": [
        "name",
        "dnsPrefix"
      ]
    },
    "ContainerServiceDiagnosticsProfile": {
      "properties": {
        "vmDiagnostics": {
          "$ref": "#/definitions/ContainerServiceVMDiagnostics",
          "description": "Profile for container service VM diagnostic agent"
        }
      }
    },
    "ContainerServiceLinuxProfile": {
      "description": "Profile for Linux VM",
      "properties": {
        "adminUsername": {
          "description": "The administrator username to use for all Linux VMs",
          "type": "string"
        },
        "ssh": {
          "$ref": "#/definitions/ContainerServiceSshConfiguration",
          "description": "Specifies the ssh key configuration for Linux VMs"
        }
      },
      "required": [
        "adminUsername",
        "ssh"
      ]
    },
    "ContainerServiceListResult": {
      "description": "The List Container Service operation response",
      "properties": {
        "value": {
          "description": "Gets or sets the list of container services.",
          "items": {
            "$ref": "#/definitions/ContainerService"
          },
          "type": "array"
        }
      }
    },
    "ContainerServiceMasterProfile": {
      "description": "Profile for container service master",
      "properties": {
        "count": {
          "description": "Number of masters (VMs) in the container cluster",
          "enum": [
            1,
            3,
            5
          ],
          "format": "int32",
          "type": "integer"
        },
        "dnsPrefix": {
          "description": "DNS prefix to be used to create FQDN for master",
          "type": "string"
        },
        "fqdn": {
          "description": "FQDN for the master",
          "readOnly": true,
          "type": "string"
        }
      },
      "required": [
        "dnsPrefix"
      ]
    },
    "ContainerServiceOrchestratorProfile": {
      "description": "Profile for Orchestrator",
      "properties": {
        "orchestratorType": {
          "description": "Specifies what orchestrator will be used to manage container cluster resources.",
          "enum": [
            "Mesos",
            "SwarmPreview",
            "DCOS"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": false,
            "name": "ContainerServiceOchestratorTypes"
          }
        }
      }
    },
    "ContainerServiceProperties": {
      "description": "Properties of container service",
      "properties": {
        "agentPoolProfiles": {
          "description": "Properties of agent pools",
          "items": {
            "$ref": "#/definitions/ContainerServiceAgentPoolProfile"
          },
          "type": "array"
        },
        "diagnosticsProfile": {
          "$ref": "#/definitions/ContainerServiceDiagnosticsProfile",
          "description": "Properties for Diagnostic Agent"
        },
        "linuxProfile": {
          "$ref": "#/definitions/ContainerServiceLinuxProfile",
          "description": "Properties for Linux VMs"
        },
        "masterProfile": {
          "$ref": "#/definitions/ContainerServiceMasterProfile",
          "description": "Properties of master agents"
        },
        "orchestratorProfile": {
          "$ref": "#/definitions/ContainerServiceOrchestratorProfile",
          "description": "Properties of orchestrator"
        },
        "provisioningState": {
          "description": "Gets the provisioning state, which only appears in the response.",
          "readOnly": true,
          "type": "string"
        },
        "windowsProfile": {
          "$ref": "#/definitions/ContainerServiceWindowsProfile",
          "description": "Properties of Windows VMs"
        }
      },
      "required": [
        "masterProfile",
        "agentPoolProfiles",
        "linuxProfile"
      ]
    },
    "ContainerServiceSshConfiguration": {
      "description": "SSH configuration for Linux based VMs running on Azure",
      "properties": {
        "publicKeys": {
          "description": "Gets or sets the list of SSH public keys used to authenticate with Linux based VMs",
          "items": {
            "$ref": "#/definitions/ContainerServiceSshPublicKey"
          },
          "type": "array"
        }
      }
    },
    "ContainerServiceSshPublicKey": {
      "description": "Contains information about SSH certificate public key data.",
      "properties": {
        "keyData": {
          "description": "Gets or sets Certificate public key used to authenticate with VM through SSH. The certificate must be in Pem format with or without headers.",
          "type": "string"
        }
      },
      "required": [
        "keyData"
      ]
    },
    "ContainerServiceVMDiagnostics": {
      "description": "Describes VM Diagnostics.",
      "properties": {
        "enabled": {
          "description": "Gets or sets whether VM Diagnostic Agent should be provisioned on the Virtual Machine.",
          "type": "boolean"
        },
        "storageUri": {
          "description": "Gets or sets whether VM Diagnostic Agent should be provisioned on the Virtual Machine.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "ContainerServiceWindowsProfile": {
      "description": "Profile for Windows jumpbox",
      "properties": {
        "adminPassword": {
          "description": "The administrator password to use for Windows jumpbox",
          "type": "string"
        },
        "adminUsername": {
          "description": "The administrator username to use for Windows jumpbox",
          "type": "string"
        }
      },
      "required": [
        "adminUsername",
        "adminPassword"
      ]
    },
    "Resource": {
      "description": "The Resource model definition.",
      "properties": {
        "id": {
          "description": "Resource Id",
          "readOnly": true,
          "type": "string"
        },
        "location": {
          "description": "Resource location",
          "type": "string"
        },
        "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
    }
  }
}