## 1. Project Overview & Quickstart (Azure/CONTRIBUTING)

# CONTRIBUTING

Open-source repository Azure/CONTRIBUTING

### Repository Details
- **Repository:** [Azure/CONTRIBUTING](https://github.com/Azure/CONTRIBUTING)
- **Primary Language:** Code

*Note: High-volume repository documentation is actively indexed and synchronized by YakaAI.*

## 2. Official Technical Reference & Guides (Azure/Azure.github.io)

## File: README.md

# Hello cloud developers,

The __azure.github.io__ site has been discontinued. You will find great
resources on the Microsoft Docs site at [https://docs.microsoft.com/en-us/azure/](https://docs.microsoft.com/en-us/azure/).

---

## File: robots.txt

User-agent: *
Disallow: /azure-sdk-for-node/

---

## File: specs/arm-authorization/2015-07-01/swagger/authorization.json

{
  "swagger": "2.0",
  "info": {
    "title": "AuthorizationManagementClient",
    "version": "2015-07-01"
  },
  "host": "management.azure.com",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json",
    "text/json"
  ],
  "produces": [
    "application/json",
    "text/json"
  ],
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "securityDefinitions": {
    "azure_auth": {
      "type": "oauth2",
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "flow": "implicit",
      "description": "Azure Active Directory OAuth2 Flow",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      }
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/classicAdministrators": {
      "get": {
        "tags": [
          "ClassicAdministrators"
        ],
        "operationId": "ClassicAdministrators_List",
        "description": "Gets a list of classic administrators for the subscription.",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "required": true,
            "type": "string"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ClassicAdministratorListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Authorization/permissions": {
      "get": {
        "tags": [
          "Permissions"
        ],
        "operationId": "Permissions_ListForResourceGroup",
        "description": "Gets a resource group permissions.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Name of the resource group to get the permissions for.The name is case insensitive."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/PermissionGetResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}/providers/Microsoft.Authorization/permissions": {
      "get": {
        "tags": [
          "Permissions"
        ],
        "operationId": "Permissions_ListForResource",
        "description": "Gets a resource permissions.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the resource group. The name is case insensitive."
          },
          {
            "name": "resourceProviderNamespace",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Resource"
          },
          {
            "name": "parentResourcePath",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Resource",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "resourceType",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Resource",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "resourceName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Resource"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/PermissionGetResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/providers/Microsoft.Authorization/providerOperations/{resourceProviderNamespace}": {
      "get": {
        "tags": [
          "ProviderOperationsMetadata"
        ],
        "operationId": "ProviderOperationsMetadata_Get",
        "description": "Gets provider operations metadata",
        "parameters": [
          {
            "name": "resourceProviderNamespace",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Namespace of the resource provider."
          },
          {
            "name": "api-version",
            "in": "query",
            "required": true,
            "type": "string"
          },
          {
            "name": "$expand",
            "in": "query",
            "required": false,
            "type": "string",
            "default": "resourceTypes"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ProviderOperationsMetadata"
            }
          }
        }
      }
    },
    "/providers/Microsoft.Authorization/providerOperations": {
      "get": {
        "tags": [
          "ProviderOperationsMetadata"
        ],
        "operationId": "ProviderOperationsMetadata_List",
        "description": "Gets provider operations metadata list",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "required": true,
            "type": "string"
          },
          {
            "name": "$expand",
            "in": "query",
            "required": false,
            "type": "string",
            "default": "resourceTypes"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ProviderOperationsMetadataListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}providers/Microsoft.Authorization/roleAssignments": {
      "get": {
        "tags": [
          "RoleAssignments"
        ],
        "operationId": "RoleAssignments_ListForResource",
        "description": "Gets role assignments of the resource.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the resource group."
          },
          {
            "name": "resourceProviderNamespace",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Resource identity."
          },
          {
            "name": "parentResourcePath",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Resource identity.",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "resourceType",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Resource identity.",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "resourceName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Resource identity."
          },
          {
            "name": "$filter",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "The filter to apply on the operation."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleAssignmentListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        },
        "x-ms-odata": "#/definitions/RoleAssignmentFilter"
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/roleAssignments": {
      "get": {
        "tags": [
          "RoleAssignments"
        ],
        "operationId": "RoleAssignments_ListForResourceGroup",
        "description": "Gets role assignments of the resource group.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Resource group name."
          },
          {
            "name": "$filter",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "The filter to apply on the operation."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleAssignmentListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        },
        "x-ms-odata": "#/definitions/RoleAssignmentFilter"
      }
    },
    "/{scope}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentName}": {
      "delete": {
        "tags": [
          "RoleAssignments"
        ],
        "operationId": "RoleAssignments_Delete",
        "description": "Delete role assignment.",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Scope.",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "roleAssignmentName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Role assignment name."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleAssignment"
            }
          }
        }
      },
      "put": {
        "tags": [
          "RoleAssignments"
        ],
        "operationId": "RoleAssignments_Create",
        "description": "Create role assignment.",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Scope.",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "roleAssignmentName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Role assignment name."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RoleAssignmentCreateParameters"
            },
            "description": "Role assignment."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleAssignment"
            }
          }
        }
      },
      "get": {
        "tags": [
          "RoleAssignments"
        ],
        "operationId": "RoleAssignments_Get",
        "description": "Get single role assignment.",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Scope.",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "roleAssignmentName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Role assignment name."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleAssignment"
            }
          }
        }
      }
    },
    "/{roleAssignmentId}": {
      "delete": {
        "tags": [
          "RoleAssignments"
        ],
        "operationId": "RoleAssignments_DeleteById",
        "description": "Delete role assignment.",
        "parameters": [
          {
            "name": "roleAssignmentId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Role assignment Id",
            "x-ms-skip-url-encoding": true
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleAssignment"
            }
          }
        }
      },
      "put": {
        "tags": [
          "RoleAssignments"
        ],
        "operationId": "RoleAssignments_CreateById",
        "description": "Create role assignment by Id.",
        "parameters": [
          {
            "name": "roleAssignmentId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Role assignment Id",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RoleAssignmentCreateParameters"
            },
            "description": "Role assignment."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleAssignment"
            }
          }
        }
      },
      "get": {
        "tags": [
          "RoleAssignments"
        ],
        "operationId": "RoleAssignments_GetById",
        "description": "Get single role assignment.",
        "parameters": [
          {
            "name": "roleAssignmentId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Role assignment Id",
            "x-ms-skip-url-encoding": true
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleAssignment"
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments": {
      "get": {
        "tags": [
          "RoleAssignments"
        ],
        "operationId": "RoleAssignments_List",
        "description": "Gets role assignments of the subscription.",
        "parameters": [
          {
            "name": "$filter",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "The filter to apply on the operation."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleAssignmentListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        },
        "x-ms-odata": "#/definitions/RoleAssignmentFilter"
      }
    },
    "/{scope}/providers/Microsoft.Authorization/roleAssignments": {
      "get": {
        "tags": [
          "RoleAssignments"
        ],
        "operationId": "RoleAssignments_ListForScope",
        "description": "Gets role assignments of the scope.",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Scope.",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "$filter",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "The filter to apply on the operation."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleAssignmentListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        },
        "x-ms-odata": "#/definitions/RoleAssignmentFilter"
      }
    },
    "/{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionId}": {
      "delete": {
        "tags": [
          "RoleDefinitions"
        ],
        "operationId": "RoleDefinitions_Delete",
        "description": "Deletes the role definition.",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Scope",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "roleDefinitionId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Role definition id."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleDefinition"
            }
          }
        }
      },
      "get": {
        "tags": [
          "RoleDefinitions"
        ],
        "operationId": "RoleDefinitions_Get",
        "description": "Get role definition by name (GUID).",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Scope",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "roleDefinitionId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Role definition Id"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleDefinition"
            }
          }
        }
      },
      "put": {
        "tags": [
          "RoleDefinitions"
        ],
        "operationId": "RoleDefinitions_CreateOrUpdate",
        "description": "Creates or updates a role definition.",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Scope",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "roleDefinitionId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Role definition id."
          },
          {
            "name": "roleDefinition",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RoleDefinition"
            },
            "description": "Role definition."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleDefinition"
            }
          }
        }
      }
    },
    "/{roleDefinitionId}": {
      "get": {
        "tags": [
          "RoleDefinitions"
        ],
        "operationId": "RoleDefinitions_GetById",
        "description": "Get role definition by name (GUID).",
        "parameters": [
          {
            "name": "roleDefinitionId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Fully qualified role definition Id",
            "x-ms-skip-url-encoding": true
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleDefinition"
            }
          }
        }
      }
    },
    "/{scope}/providers/Microsoft.Authorization/roleDefinitions": {
      "get": {
        "tags": [
          "RoleDefinitions"
        ],
        "operationId": "RoleDefinitions_List",
        "description": "Get all role definitions that are applicable at scope and above. Use atScopeAndBelow filter to search below the given scope as well",
        "parameters": [
          {
            "name": "scope",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "Scope",
            "x-ms-skip-url-encoding": true
          },
          {
            "name": "$filter",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "The filter to apply on the operation."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/RoleDefinitionListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        },
        "x-ms-odata": "#/definitions/RoleDefinitionFilter"
      }
    }
  },
  "definitions": {
    "RoleAssignmentFilter": {
      "properties": {
        "principalId": {
          "type": "string",
          "description": "Returns role assignment of the specific principal."
        }
      },
      "description": "Role Assignments filter"
    },
    "RoleDefinitionFilter": {
      "properties": {
        "roleName": {
          "type": "string",
          "description": "Returns role definition with the specific name."
        }
      },
      "description": "Role Definitions filter"
    },
    "ClassicAdministratorProperties": {
      "properties": {
        "emailAddress": {
          "type": "string",
          "description": "Gets or sets the email address"
        },
        "role": {
          "type": "string",
          "description": "Gets or sets the role"
        }
      },
      "description": "Classic Administrator properties."
    },
    "ClassicAdministrator": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Gets or sets the classic administrator id."
        },
        "name": {
          "type": "string",
          "description": "Gets or sets the classic administrator name."
        },
        "type": {
          "type": "string",
          "description": "Gets or sets the classic administrator type."
        },
        "properties": {
          "$ref": "#/definitions/ClassicAdministratorProperties",
          "description": "Gets or sets the classic administrator properties."
        }
      },
      "description": "Classic Administrators"
    },
    "ClassicAdministratorListResult": {
      "properties": {
        "value": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ClassicAdministrator"
          },
          "description": "Gets or sets ClassicAdministrators."
        }
      },
      "description": "ClassicAdministrator list result information."
    },
    "Permission": {
      "properties": {
        "actions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Role definition allowed actions."
        },
        "notActions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Role definition denied actions."
        }
      },
      "description": "Role definition permissions."
    },
    "PermissionGetResult": {
      "properties": {
        "value": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Permission"
          },
          "description": "Gets or sets permissions."
        }
      },
      "description": "Permissions information."
    },
    "ProviderOperation": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Gets or sets the operation name"
        },
        "displayName": {
          "type": "string",
          "description": "Gets or sets the operation display name"
        },
        "description": {
          "type": "string",
          "description": "Gets or sets the operation description"
        },
        "origin": {
          "type": "string",
          "description": "Gets or sets the operation origin"
        },
        "properties": {
          "type": "object",
          "description": "Gets or sets the operation properties"
        }
      },
      "description": "Operation"
    },
    "ResourceType": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Gets or sets the resource type name"
        },
        "displayName": {
          "type": "string",
          "description": "Gets or sets the resource type display name"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProviderOperation"
          },
          "description": "Gets or sets the resource type operations"
        }
      },
      "description": "Resource Type"
    },
    "ProviderOperationsMetadata": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Gets or sets the provider id."
        },
        "name": {
          "type": "string",
          "description": "Gets or sets the provider name"
        },
        "type": {
          "type": "string",
          "description": "Gets or sets the provider type"
        },
        "displayName": {
          "type": "string",
          "description": "Gets or sets the provider display name"
        },
        "resourceTypes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ResourceType"
          },
          "description": "Gets or sets the provider resource types"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProviderOperation"
          },
          "description": "Gets or sets the provider operations"
        }
      },
      "description": "Provider Operations metadata"
    },
    "ProviderOperationsMetadataListResult": {
      "properties": {
        "value": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProviderOperationsMetadata"
          },
          "description": "Gets or sets the list of providers."
        }
      },
      "description": "Provider operations metadata list"
    },
    "RoleAssignmentPropertiesWithScope": {
      "properties": {
        "scope": {
          "type": "string",
          "description": "Gets or sets role assignment scope."
        },
        "roleDefinitionId": {
          "type": "string",
          "description": "Gets or sets role definition id."
        },
        "principalId": {
          "type": "string",
          "description": "Gets or sets principal Id."
        }
      },
      "description": "Role assignment properties with scope."
    },
    "RoleAssignment": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Gets or sets role assignment id."
        },
        "name": {
          "type": "string",
          "description": "Gets or sets role assignment name."
        },
        "type": {
          "type": "string",
          "description": "Gets or sets role assignment type."
        },
        "properties": {
          "$ref": "#/definitions/RoleAssignmentPropertiesWithScope",
          "description": "Gets or sets role assignment properties."
        }
      },
      "description": "Role Assignments"
    },
    "RoleAssignmentListResult": {
      "properties": {
        "value": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RoleAssignment"
          },
          "description": "Role assignment list."
        },
        "nextLink": {
          "type": "string",
          "description": "Gets or sets the URL to get the next set of role assignment results."
        }
      },
      "description": "Role assignment list operation result."
    },
    "RoleAssignmentProperties": {
      "properties": {
        "roleDefinitionId": {
          "type": "string",
          "description": "Gets or sets role definition id."
        },
        "principalId": {
          "type": "string",
          "description": "Gets or sets principal Id."
        }
      },
      "description": "Role assignment properties."
    },
    "RoleAssignmentCreateParameters": {
      "properties": {
        "properties": {
          "$ref": "#/definitions/RoleAssignmentProperties",
          "description": "Gets or sets role assignment properties."
        }
      },
      "description": "Role assignment create parameters."
    },
    "RoleDefinitionProperties": {
      "properties": {
        "roleName": {
          "type": "string",
          "description": "Gets or sets role name."
        },
        "description": {
          "type": "string",
          "description": "Gets or sets role definition description."
        },
        "type": {
          "type": "string",
          "description": "Gets or sets role type."
        },
        "permissions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Permission"
          },
          "description": "Gets or sets role definition permissions."
        },
        "assignableScopes": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Gets or sets role definition assignable scopes."
        }
      },
      "description": "Role definition properties."
    },
    "RoleDefinition": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Gets or sets role definition id."
        },
        "name": {
          "type": "string",
          "description": "Gets or sets role definition name."
        },
        "type": {
          "type": "string",
          "description": "Gets or sets role definition type."
        },
        "properties": {
          "$ref": "#/definitions/RoleDefinitionProperties",
          "description": "Gets or sets role definition properties."
        }
      },
      "description": "Role definition."
    },
    "RoleDefinitionListResult": {
      "properties": {
        "value": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/RoleDefinition"
          },
          "description": "Role definition list."
        }
      },
      "description": "Role definition list operation result."
    }
  },
  "parameters": {
    "SubscriptionIdParameter": {
      "name": "subscriptionId",
      "in": "path",
      "required": true,
      "type": "string",
      "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
    },
    "ApiVersionParameter": {
      "name": "api-version",
      "in": "query",
      "required": true,
      "type": "string",
      "description": "Client Api Version."
    }
  }
}

---

## File: specs/arm-batch/2015-12-01/swagger/BatchManagement.json

{
  "swagger": "2.0",
  "info": {
    "title": "BatchManagement",
    "version": "2015-12-01",
    "x-ms-code-generation-settings": {
      "name": "BatchManagementClient"
    }
  },
  "host": "management.azure.com",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "securityDefinitions": {
    "azure_auth": {
      "type": "oauth2",
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "flow": "implicit",
      "description": "Azure Active Directory OAuth2 Flow",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      }
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}": {
      "put": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_Create",
        "description": "Asynchronously creates a new Batch account with the specified parameters. Existing accounts cannot be updated with this API and should instead use the Update Batch Account API.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the new Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "A name for the Batch account which must be unique within Azure. Batch account names must be between 3 and 24 characters in length and must use only numbers and lower-case letters. This name is used as part of the DNS name that is used to access the batch service in the region in which the account is created. For example: http://AccountName.batch.core.windows.net/."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BatchAccountCreateParameters"
            },
            "description": "Additional parameters for account creation."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "202": {
            "description": ""
          },
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/AccountResource"
            }
          }
        },
        "x-ms-long-running-operation": true
      },
      "patch": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_Update",
        "description": "The Update operation updates the properties of an existing Batch account in the specified resource group.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the account."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BatchAccountUpdateParameters"
            },
            "description": "Additional parameters for account update."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/AccountResource"
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_Delete",
        "description": "Asynchronously deletes the specified Batch account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account to be deleted."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the account to be deleted."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "202": {
            "description": ""
          },
          "204": {
            "description": ""
          },
          "200": {
            "description": ""
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_Get",
        "description": "The Get operation gets detailed information about the specified Batch account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the account."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/AccountResource"
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/batchAccounts": {
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_List",
        "description": "The List operation gets information about the Batch accounts associated with the subscription.",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BatchAccountListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts": {
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_ListByResourceGroup",
        "description": "The List operation gets information about the Batch accounts associated the specified resource group.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that constrains the set of accounts that are returned."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BatchAccountListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/syncAutoStorageKeys": {
      "post": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_SyncAutoStorageKeys",
        "description": "The SyncAutoStorageKeys operation synchronizes access keys for the auto storage account configured for the specified Batch account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the Batch account."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/regenerateKeys": {
      "post": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_RegenerateKey",
        "description": "The RegenerateKey operation regenerates the specified account key for the given Batch account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the account."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BatchAccountRegenerateKeyParameters"
            },
            "description": "The type of key to regenerate."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BatchAccountRegenerateKeyResult"
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/listKeys": {
      "post": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_ListKeys",
        "description": "The ListKeys operation gets the account keys for the given Batch account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the account."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/BatchAccountListKeyResult"
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{id}/versions/{version}/activate": {
      "post": {
        "tags": [
          "Application"
        ],
        "operationId": "Application_ActivateApplicationPackage",
        "description": "Activates the specified application package.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the Batch account."
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The id of the application."
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The version of the application to activate."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ActivateApplicationPackageParameters"
            },
            "description": "The parameters for the request."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationId}": {
      "put": {
        "tags": [
          "Application"
        ],
        "operationId": "Application_AddApplication",
        "description": "Adds an application to the specified Batch account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the Batch account."
          },
          {
            "name": "applicationId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The id of the application."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/AddApplicationParameters"
            },
            "description": "The parameters for the request."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "201": {
            "description": ""
          }
        }
      },
      "delete": {
        "tags": [
          "Application"
        ],
        "operationId": "Application_DeleteApplication",
        "description": "Deletes an application.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the Batch account."
          },
          {
            "name": "applicationId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The id of the application."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        }
      },
      "get": {
        "tags": [
          "Application"
        ],
        "operationId": "Application_GetApplication",
        "description": "Gets information about the specified application.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the Batch account."
          },
          {
            "name": "applicationId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The id of the application."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/Application"
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Application"
        ],
        "operationId": "Application_UpdateApplication",
        "description": "Updates settings for the specified application.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the Batch account."
          },
          {
            "name": "applicationId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The id of the application."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UpdateApplicationParameters"
            },
            "description": "The parameters for the request."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications/{applicationId}/versions/{version}": {
      "put": {
        "tags": [
          "Application"
        ],
        "operationId": "Application_AddApplicationPackage",
        "description": "Creates an application package record.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the Batch account."
          },
          {
            "name": "applicationId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The id of the application."
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The version of the application."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/AddApplicationPackageResult"
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Application"
        ],
        "operationId": "Application_DeleteApplicationPackage",
        "description": "Deletes an application package record and the binary file.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the Batch account."
          },
          {
            "name": "applicationId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The id of the application."
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The version of the application to delete."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          }
        }
      },
      "get": {
        "tags": [
          "Application"
        ],
        "operationId": "Application_GetApplicationPackage",
        "description": "Gets information about the specified application package.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the Batch account."
          },
          {
            "name": "applicationId",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The id of the application."
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The version of the application."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/GetApplicationPackageResult"
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Batch/batchAccounts/{accountName}/applications": {
      "get": {
        "tags": [
          "Application"
        ],
        "operationId": "Application_List",
        "description": "Lists all of the applications in the specified account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "description": "The name of the resource group that contains the Batch account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "pattern": "^[-\\w\\._]+$",
            "minLength": 3,
            "maxLength": 24,
            "description": "The name of the Batch account."
          },
          {
            "name": "maxresults",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32",
            "description": "The maximum number of items to return in the response."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ListApplicationsResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.Batch/locations/{locationName}/quotas": {
      "get": {
        "tags": [
          "Subscription"
        ],
        "operationId": "Subscription_GetSubscriptionQuotas",
        "description": "The Get Subscription Quotas operation returns the quotas of the subscription in the Batch service.",
        "parameters": [
          {
            "name": "locationName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The desired region for the quota."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/SubscriptionQuotasGetResult"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "AutoStorageBaseProperties": {
      "properties": {
        "storageAccountId": {
          "type": "string",
          "description": "The resource id of the storage account to be used for auto storage."
        }
      },
      "required": [
        "storageAccountId"
      ],
      "description": "The properties related to auto storage."
    },
    "AccountBaseProperties": {
      "properties": {
        "autoStorage": {
          "$ref": "#/definitions/AutoStorageBaseProperties",
          "description": "The properties related to auto storage."
        }
      },
      "description": "The properties of a Batch account."
    },
    "BatchAccountCreateParameters": {
      "properties": {
        "location": {
          "type": "string",
          "description": "The region in which the account is created."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The user specified tags associated with the account."
        },
        "properties": {
          "x-ms-client-flatten": true,
          "$ref": "#/definitions/AccountBaseProperties",
          "description": "The properties of the account."
        }
      },
      "description": "Parameters supplied to the Create operation."
    },
    "AutoStorageProperties": {
      "properties": {
        "storageAccountId": {
          "type": "string",
          "description": "The resource id of the storage account to be used for auto storage."
        },
        "lastKeySync": {
          "type": "string",
          "format": "date-time",
          "description": "The UTC time at which storage keys were last synced to the Batch account."
        }
      },
      "required": [
        "storageAccountId",
        "lastKeySync"
      ],
      "description": "Contains information about the auto storage associated with a Batch account."
    },
    "AccountProperties": {
      "properties": {
        "accountEndpoint": {
          "type": "string",
          "description": "The endpoint used by this account to obtain Batch services."
        },
        "provisioningState": {
          "type": "string",
          "description": "The provisioned state of the resource",
          "enum": [
            "Invalid",
            "Creating",
            "Deleting",
            "Succeeded",
            "Failed",
            "Cancelled"
          ],
          "x-ms-enum": {
            "name": "AccountProvisioningState",
            "modelAsString": false
          }
        },
        "autoStorage": {
          "$ref": "#/definitions/AutoStorageProperties",
          "description": "The properties and status of any auto storage associated with the account."
        },
        "coreQuota": {
          "type": "integer",
          "format": "int32",
          "description": "The core quota for this Batch account."
        },
        "poolQuota": {
          "type": "integer",
          "format": "int32",
          "description": "The pool quota for this Batch account."
        },
        "activeJobAndJobScheduleQuota": {
          "type": "integer",
          "format": "int32",
          "description": "The active job and job schedule quota for this Batch account."
        }
      },
      "description": "Account specific properties."
    },
    "AccountResource": {
      "properties": {
        "properties": {
          "x-ms-client-flatten": true,
          "$ref": "#/definitions/AccountProperties",
          "description": "The properties associated with the account."
        }
      },
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "The Batch account information."
    },
    "BatchAccountUpdateParameters": {
      "properties": {
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "The user specified tags associated with the account."
        },
        "properties": {
          "$ref": "#/definitions/AccountBaseProperties",
          "description": "The properties of the account."
        }
      },
      "description": "Parameters supplied to the Update operation."
    },
    "BatchAccountListResult": {
      "properties": {
        "value": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AccountResource"
          },
          "description": "The collection of returned account resources."
        },
        "nextLink": {
          "type": "string",
          "description": "The continuation token."
        }
      },
      "description": "Values returned by the List operation."
    },
    "BatchAccountRegenerateKeyParameters": {
      "properties": {
        "keyName": {
          "type": "string",
          "description": "The type of account key to regenerate.",
          "enum": [
            "Primary",
            "Secondary"
          ],
          "x-ms-enum": {
            "name": "AccountKeyType",
            "modelAsString": false
          }
        }
      },
      "required": [
        "keyName"
      ],
      "description": "Parameters supplied to the RegenerateKey operation."
    },
    "BatchAccountRegenerateKeyResult": {
      "properties": {
        "primary": {
          "type": "string",
          "description": "The primary key associated with the account."
        },
        "secondary": {
          "type": "string",
          "description": "The secondary key associated with the account."
        }
      },
      "description": "Values returned by the RegenerateKey operation."
    },
    "BatchAccountListKeyResult": {
      "properties": {
        "primary": {
          "type": "string",
          "description": "The primary key associated with the account."
        },
        "secondary": {
          "type": "string",
          "description": "The secondary key associated with the account."
        }
      },
      "description": "Values returned by the GetKeys operation."
    },
    "ActivateApplicationPackageParameters": {
      "properties": {
        "format": {
          "type": "string",
          "description": "The format of the application package binary file."
        }
      },
      "required": [
        "format"
      ],
      "description": "Parameters for an ApplicationOperations.ActivateApplicationPackage request."
    },
    "AddApplicationParameters": {
      "properties": {
        "allowUpdates": {
          "type": "boolean",
          "description": "A value indicating whether packages within the application may be overwritten using the same version string."
        },
        "displayName": {
          "type": "string",
          "description": "The display name for the application."
        }
      },
      "description": "Parameters for an ApplicationOperations.AddApplication request."
    },
    "AddApplicationPackageResult": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the application."
        },
        "version": {
          "type": "string",
          "description": "The version of the application."
        },
        "storageUrl": {
          "type": "string",
          "description": "The URL to which the application package binary file should be uploaded."
        },
        "storageUrlExpiry": {
          "type": "string",
          "format": "date-time",
          "description": "The UTC time at which the storage URL will expire."
        }
      },
      "description": "Response to an ApplicationOperations.AddApplicationPackage request."
    },
    "ApplicationPackage": {
      "properties": {
        "version": {
          "type": "string",
          "description": "The version of the application package. "
        },
        "state": {
          "type": "string",
          "description": "The current state of the application package.",
          "enum": [
            "pending",
            "active",
            "unmapped"
          ],
          "x-ms-enum": {
            "name": "PackageState",
            "modelAsString": false
          }
        },
        "format": {
          "type": "string",
          "description": "The format of the application package, if known."
        },
        "lastActivationTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time at which the package was last activated, if the package is active."
        }
      },
      "description": "Contains information about an application package."
    },
    "Application": {
      "properties": {
        "id": {
          "type": "string",
          "description": "A string that uniquely identifies the application within the account."
        },
        "displayName": {
          "type": "string",
          "description": "The display name for the application."
        },
        "packages": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ApplicationPackage"
          },
          "description": "The list of packages under this application."
        },
        "allowUpdates": {
          "type": "boolean",
          "description": "A value indicating whether packages within the application may be overwritten using the same version string."
        },
        "defaultVersion": {
          "type": "string",
          "description": "Gets or sets which package to use if a client requests the application but does not specify a version."
        }
      },
      "description": "Contains information about an application in a Batch account."
    },
    "GetApplicationPackageResult": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The id of the application."
        },
        "version": {
          "type": "string",
          "description": "The version of the application package. "
        },
        "state": {
          "type": "string",
          "description": "The current state of the application package.",
          "enum": [
            "pending",
            "active",
            "unmapped"
          ],
          "x-ms-enum": {
            "name": "PackageState",
            "modelAsString": false
          }
        },
        "format": {
          "type": "string",
          "description": "The format of the application package, if known."
        },
        "storageUrl": {
          "type": "string",
          "description": "The storage URL at which the application package is stored."
        },
        "storageUrlExpiry": {
          "type": "string",
          "format": "date-time",
          "description": "The UTC time at which the storage URL will expire."
        },
        "lastActivationTime": {
          "type": "string",
          "format": "date-time",
          "description": "The time at which the package was last activated, if the package is active."
        }
      },
      "description": "Response to an ApplicationOperations.GetApplicationPackage request."
    },
    "ListApplicationsResult": {
      "properties": {
        "value": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Application"
          },
          "description": "The list of applications."
        },
        "nextLink": {
          "type": "string",
          "description": "The URL to get the next set of results."
        }
      },
      "description": "Response to an ApplicationOperations.ListApplications request."
    },
    "UpdateApplicationParameters": {
      "properties": {
        "allowUpdates": {
          "type": "boolean",
          "description": "A value indicating whether packages within the application may be overwritten using the same version string."
        },
        "defaultVersion": {
          "type": "string",
          "description": "Gets or sets which package to use if a client requests the application but does not specify a version."
        },
        "displayName": {
          "type": "string",
          "description": "The display name for the application."
        }
      },
      "description": "Parameters for an ApplicationOperations.UpdateApplication request."
    },
    "SubscriptionQuotasGetResult": {
      "properties": {
        "accountQuota": {
          "type": "integer",
          "format": "int32",
          "description": "The number of accounts the subscription is allowed to create in the Batch Service at the specified region."
        }
      },
      "description": "Values returned by the Get Subscription Quotas operation."
    },
    "Resource": {
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Resource Id"
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Resource name"
        },
        "type": {
          "readOnly": true,
          "type": "string",
          "description": "Resource type"
        },
        "location": {
          "type": "string",
          "description": "Resource location"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Resource tags"
        }
      },
      "x-ms-azure-resource": true
    }
  },
  "parameters": {
    "SubscriptionIdParameter": {
      "name": "subscriptionId",
      "in": "path",
      "required": true,
      "type": "string",
      "description": "Gets subscription credentials which uniquely identify a Microsoft Azure subscription. The subscription id forms part of the URI for every service call."
    },
    "ApiVersionParameter": {
      "name": "api-version",
      "in": "query",
      "required": true,
      "type": "string",
      "description": "Client API Version."
    }
  }
}

---

## File: specs/arm-compute/compositeComputeClient.json

{
  "info": {
    "title": "ComputeManagementClient",
    "description": "Composite Swagger for Compute Client"
  },
  "documents": [
    "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/2016-03-30/swagger/compute.json",
    "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/2015-11-01-preview/swagger/containerService.json"
  ]
}

---

## File: specs/arm-compute/2015-11-01-preview/swagger/containerService.json

{
  "swagger": "2.0",
  "info": {
    "title": "ContainerServiceClient",
    "description": "The Container Service Client.",
    "version": "2015-11-01-preview"
  },
  "host": "management.azure.com",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json",
    "text/json"
  ],
  "produces": [
    "application/json",
    "text/json"
  ],
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "securityDefinitions": {
    "azure_auth": {
      "type": "oauth2",
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "flow": "implicit",
      "description": "Azure Active Directory OAuth2 Flow",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      }
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/containerServices/{containerServiceName}": {
      "put": {
        "tags": [
          "ContainerService"
        ],
        "operationId": "ContainerService_CreateOrUpdate",
        "description": "The operation to create or update a container service.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the resource group."
          },
          {
            "name": "containerServiceName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the container service within the given subscription and resource group."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ContainerService"
            },
            "description": "Parameters supplied to the Create Container Service operation."
          },
          {
            "$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"
            }
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "tags": [
          "ContainerService"
        ],
        "operationId": "ContainerService_Get",
        "description": "The operation to get a container service.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the resource group."
          },
          {
            "name": "containerServiceName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the container service within the given subscription and resource group."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ContainerService"
            }
          }
        }
      },
      "delete": {
        "tags": [
          "ContainerService"
        ],
        "operationId": "ContainerService_Delete",
        "description": "The operation to delete a container service.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the resource group."
          },
          {
            "name": "containerServiceName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the container service within the given subscription and resource group."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "202": {
            "description": ""
          },
          "204": {
            "description": ""
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/containerServices": {
      "get": {
        "tags": [
          "ContainerService"
        ],
        "operationId": "ContainerService_ListByResourceGroup",
        "description": "The operation to list container services.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the resource group."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/ContainerServiceListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    }
  },
  "definitions": {
    "Resource": {
      "properties": {
        "id": {
          "readOnly": true,
          "type": "string",
          "description": "Resource Id"
        },
        "name": {
          "readOnly": true,
          "type": "string",
          "description": "Resource name"
        },
        "type": {
          "readOnly": true,
          "type": "string",
          "description": "Resource type"
        },
        "location": {
          "type": "string",
          "description": "Resource location"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Resource tags"
        }
      },
      "required": [
        "location"
      ],
      "x-ms-azure-resource": true
    },
    "ContainerServiceOrchestratorProfile": {
      "properties": {
        "orchestratorType": {
          "type": "string",
          "enum": [
            "Mesos",
            "SwarmPreview",
            "DCOS"
          ],
          "x-ms-enum": {
            "name": "ContainerServiceOchestratorTypes",
            "modelAsString": false
          },
          "description": "Specifies what orchestrator will be used to manage container cluster resources."
        }
      },
      "description": "Profile for Orchestrator"
    },
    "ContainerServiceMasterProfile": {
      "properties": {
        "count": {
          "type": "integer",
          "format": "int32",
          "enum": [
            1,
            3,
            5
          ],
          "description": "Number of masters (VMs) in the container cluster"
        },
        "dnsPrefix": {
          "type": "string",
          "description": "DNS prefix to be used to create FQDN for master"
        },
        "fqdn": {
          "readOnly": true,
          "type": "string",
          "description": "FDQN for the master"
        }
      },
      "required": [
        "dnsPrefix"
      ],
      "description": "Profile for container service master"
    },
    "ContainerServiceAgentPoolProfile": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Unique name of the agent pool profile within the context of the subscription and resource group"
        },
        "count": {
          "type": "integer",
          "format": "int32",
          "maximum": 100,
          "minimum": 1,
          "description": "No. of agents (VMs) that will host docker containers"
        },
        "vmSize": {
          "type": "string",
          "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"
          ],
          "x-ms-enum": {
            "name": "ContainerServiceVMSizeTypes",
            "modelAsString": true
          },
          "description": "Size of agent VMs"
        },
        "dnsPrefix": {
          "type": "string",
          "description": "DNS prefix to be used to create FQDN for this agent pool"
        },
        "fqdn": {
          "readOnly": true,
          "type": "string",
          "description": "FDQN for the agent pool"
        }
      },
      "required": [
        "name",
        "dnsPrefix"
      ],
      "description": "Profile for container service agent pool"
    },
    "ContainerServiceWindowsProfile": {
      "properties": {
        "adminUsername": {
          "type": "string",
          "description": "The administrator username to use for Windows jumpbox"
        },
        "adminPassword": {
          "type": "string",
          "description": "The administrator password to use for Windows jumpbox"
        }
      },
      "required": [
        "adminUsername",
        "adminPassword"
      ],
      "description": "Profile for Windows jumpbox"
    },
    "ContainerServiceLinuxProfile": {
      "properties": {
        "adminUsername": {
          "type": "string",
          "description": "The administrator username to use for all Linux VMs"
        },
        "ssh": {
          "$ref": "#/definitions/ContainerServiceSshConfiguration",
          "description": "Specifies the ssh key configuration for Linux VMs"
        }
      },
      "required": [
        "adminUsername",
        "ssh"
      ],
      "description": "Profile for Linux VM"
    },
    "ContainerServiceSshConfiguration": {
      "properties": {
        "publicKeys": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContainerServiceSshPublicKey"
          },
          "description": "Gets or sets the list of SSH public keys used to authenticate with Linux based VMs"
        }
      },
      "description": "SSH configuration for Linux based VMs running on Azure"
    },
    "ContainerServiceSshPublicKey": {
      "properties": {
        "keyData": {
          "type": "string",
          "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."
        }
      },
      "required": [
        "keyData"
      ],
      "description": "Contains information about SSH certificate public key data."
    },
    "ContainerServiceDiagnosticsProfile": {
      "properties": {
        "vmDiagnostics": {
          "$ref": "#/definitions/ContainerServiceVMDiagnostics",
          "description": "Profile for container service VM diagnostic agent"
        }
      }
    },
    "ContainerServiceVMDiagnostics": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Gets or sets whether VM Diagnostic Agent should be provisioned on the Virtual Machine."
        },
        "storageUri": {
          "readOnly": true,
          "type": "string",
          "description": "Gets or sets whether VM Diagnostic Agent should be provisioned on the Virtual Machine."
        }
      },
      "description": "Describes VM Diagnostics."
    },
    "ContainerService": {
      "properties": {
        "properties": {
          "x-ms-client-flatten": true,
          "$ref": "#/definitions/ContainerServiceProperties"
        }
      },
      "allOf": [
        {
          "$ref": "#/definitions/Resource"
        }
      ],
      "description": "Container service"
    },
    "ContainerServiceListResult": {
      "properties": {
        "value": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContainerService"
          },
          "description": "Gets or sets the list of container services."
        }
      },
      "description": "The List Container Service operation response"
    },
    "ContainerServiceProperties": {
      "properties": {
        "provisioningState": {
          "readOnly": true,
          "type": "string",
          "description": "Gets the provisioning state, which only appears in the response."
        },
        "orchestratorProfile": {
          "$ref": "#/definitions/ContainerServiceOrchestratorProfile",
          "description": "Properties of orchestrator"
        },
        "masterProfile": {
          "$ref": "#/definitions/ContainerServiceMasterProfile",
          "description": "Properties of master agents"
        },
        "agentPoolProfiles": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ContainerServiceAgentPoolProfile"
          },
          "description": "Properties of agent pools"
        },
        "windowsProfile": {
          "$ref": "#/definitions/ContainerServiceWindowsProfile",
          "description": "Properties of Windows VMs"
        },
        "linuxProfile": {
          "$ref": "#/definitions/ContainerServiceLinuxProfile",
          "description": "Properties for Linux VMs"
        },
        "diagnosticsProfile": {
          "$ref": "#/definitions/ContainerServiceDiagnosticsProfile",
          "description": "Properties for Diagnostic Agent"
        }
      },
      "required": [
        "masterProfile",
        "agentPoolProfiles",
        "linuxProfile"
      ],
      "description": "Properties of container service"
    }
  },
  "parameters": {
    "SubscriptionIdParameter": {
      "name": "subscriptionId",
      "in": "path",
      "required": true,
      "type": "string",
      "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
    },
    "ApiVersionParameter": {
      "name": "api-version",
      "in": "query",
      "required": true,
      "type": "string",
      "description": "Client Api Version."
    }
  }
}

---

## File: specs/arm-compute/quickstart-templates/swagger.json

{
  "swagger": "2.0",
  "info": {
    "title": "ComputeManagementConvenienceClient",
    "version": "2015-11-01"
  },
  "host": "management.azure.com",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "securityDefinitions": {
    "azure_auth": {
      "type": "oauth2",
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "flow": "implicit",
      "description": "Azure Active Directory OAuth2 Flow",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      }
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}": {
      "put": {
        "tags": [
          "Deployments"
        ],
        "operationId": "VirtualMachines_QuickCreate",
        "description": "Create a named template deployment using a template.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the resource group. The name is case insensitive.",
            "pattern": "^[-\\w\\._]+$"
          },
          {
            "name": "deploymentName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the deployment."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/Deployment"
            },
            "description": "Additional parameters supplied to the operation."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DeploymentExtended"
            }
          },
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DeploymentExtended"
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    }
  },
  "definitions": {
    "TemplateLink": {
      "required": [
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "description": "URI referencing the template.",
          "enum": [
            "https://raw.githubusercontent.com/stankovski/azure-rest-api-specs/master/arm-compute/quickstart-templates/vm-simple-linux.json"
          ]
        }
      },
      "description": "Entity representing the reference to the template."
    },
    "DeploymentProperties": {
      "required": [
        "templateLink",
        "mode"
      ],
      "properties": {
        "templateLink": {
          "$ref": "#/definitions/TemplateLink",
          "description": "Gets or sets the URI referencing the template. Use only one of Template or TemplateLink."
        },
        "parameters": {
          "x-ms-client-flatten": true,
          "description": "Deployment parameters. Use only one of Parameters or ParametersLink.",
          "$ref": "#/definitions/DeploymentParameters"
        },
        "mode": {
          "type": "string",
          "description": "Gets or sets the deployment mode.",
          "enum": [
            "Incremental"
          ]
        }
      },
      "required": [
        "mode"
      ],
      "description": "Deployment properties."
    },
    "Deployment": {
      "properties": {
        "properties": {
          "x-ms-client-flatten": true,
          "$ref": "#/definitions/DeploymentProperties",
          "description": "Gets or sets the deployment properties."
        }
      },
      "description": "Deployment operation parameters."
    },
    "DeploymentParameters": {
      "properties": {
        "adminUsername": {
          "x-ms-client-flatten": true,
          "type": "object",
          "required": [
            "value"
          ],
          "properties": {
            "value": {
              "type": "string",
              "description": "Username for the Virtual Machine."
            }
          }
        },
        "adminPassword": {
          "x-ms-client-flatten": true,
          "type": "object",
          "required": [
            "value"
          ],
          "properties": {
            "value": {
              "type": "string",
              "format": "password",
              "description": "Password for the Virtual Machine."
            }
          }
        },
        "dnsLabelPrefix": {
          "x-ms-client-flatten": true,
          "type": "object",
          "required": [
            "value"
          ],
          "properties": {
            "value": {
              "type": "string",
              "description": "Unique DNS Name for the Public IP used to access the Virtual Machine."
            }
          }
        },
        "osVersion": {
          "x-ms-client-flatten": true,
          "type": "object",
          "required": [
            "value"
          ],
          "properties": {
            "value": {
              "type": "string",
              "default": "14.04.2-LTS",
              "description": "The OS version for the VM. This will pick a fully patched image of this given OS version.",
              "enum": [
                "12.04.5-LTS",
                "14.04.2-LTS",
                "15.10"
              ]
            }
          },
          "description": "Deployment operation parameters."
        }
      }
    },
    "DeploymentExtended": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Gets or sets the ID of the deployment."
        },
        "name": {
          "type": "string",
          "description": "Gets or sets the name of the deployment."
        },
        "properties": {
          "$ref": "#/definitions/DeploymentPropertiesExtended",
          "description": "Gets or sets deployment properties."
        }
      },
      "required": [
        "name"
      ],
      "description": "Deployment information."
    },
    "DeploymentPropertiesExtended": {
      "properties": {
        "provisioningState": {
          "type": "string",
          "description": "Gets or sets the state of the provisioning."
        },
        "correlationId": {
          "type": "string",
          "description": "Gets or sets the correlation ID of the deployment."
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Gets or sets the timestamp of the template deployment."
        },
        "outputs": {
          "type": "object",
          "description": "Gets or sets key/value pairs that represent deploymentoutput."
        },
        "providers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Provider"
          },
          "description": "Gets the list of resource providers needed for the deployment."
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Dependency"
          },
          "description": "Gets the list of deployment dependencies."
        },
        "template": {
          "type": "object",
          "description": "Gets or sets the template content. Use only one of Template or TemplateLink."
        },
        "templateLink": {
          "$ref": "#/definitions/TemplateLink",
          "description": "Gets or sets the URI referencing the template. Use only one of Template or TemplateLink."
        },
        "parameters": {
          "type": "object",
          "description": "Deployment parameters. Use only one of Parameters or ParametersLink."
        },
        "parametersLink": {
          "$ref": "#/definitions/ParametersLink",
          "description": "Gets or sets the URI referencing the parameters. Use only one of Parameters or ParametersLink."
        },
        "mode": {
          "type": "string",
          "description": "Gets or sets the deployment mode.",
          "enum": [
            "Incremental",
            "Complete"
          ],
          "x-ms-enum": {
            "name": "DeploymentMode",
            "modelAsString": false
          }
        }
      },
      "description": "Deployment properties with additional details."
    },
    "Dependency": {
      "properties": {
        "dependsOn": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/BasicDependency"
          },
          "description": "Gets the list of dependencies."
        },
        "id": {
          "type": "string",
          "description": "Gets or sets the ID of the dependency."
        },
        "resourceType": {
          "type": "string",
          "description": "Gets or sets the dependency resource type."
        },
        "resourceName": {
          "type": "string",
          "description": "Gets or sets the dependency resource name."
        }
      },
      "description": "Deployment dependency information."
    },
    "BasicDependency": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Gets or sets the ID of the dependency."
        },
        "resourceType": {
          "type": "string",
          "description": "Gets or sets the dependency resource type."
        },
        "resourceName": {
          "type": "string",
          "description": "Gets or sets the dependency resource name."
        }
      },
      "description": "Deployment dependency information."
    },
    "ParametersLink": {
      "properties": {
        "uri": {
          "type": "string",
          "description": "URI referencing the template."
        },
        "contentVersion": {
          "type": "string",
          "description": "If included it must match the ContentVersion in the template."
        }
      },
      "required": [
        "uri"
      ],
      "description": "Entity representing the reference to the deployment paramaters."
    },
    "Provider": {
      "properties": {
        "id": {
          "type": "string",
          "description": "Gets or sets the provider id."
        },
        "namespace": {
          "type": "string",
          "description": "Gets or sets the namespace of the provider."
        },
        "registrationState": {
          "type": "string",
          "description": "Gets or sets the registration state of the provider."
        },
        "resourceTypes": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProviderResourceType"
          },
          "description": "Gets or sets the collection of provider resource types."
        }
      },
      "description": "Resource provider information."
    },
    "ProviderResourceType": {
      "properties": {
        "resourceType": {
          "type": "string",
          "description": "Gets or sets the resource type."
        },
        "locations": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Gets or sets the collection of locations where this resource type can be created in."
        },
        "apiVersions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Gets or sets the api version."
        },
        "properties": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets the properties."
        }
      },
      "description": "Resource type managed by the resource provider."
    }
  },
  "parameters": {
    "SubscriptionIdParameter": {
      "name": "subscriptionId",
      "in": "path",
      "required": true,
      "type": "string",
      "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
    },
    "ApiVersionParameter": {
      "name": "api-version",
      "in": "query",
      "required": true,
      "type": "string",
      "description": "Client Api Version."
    }
  }
}

---

## File: specs/arm-compute/quickstart-templates/vm-simple-linux.json

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "adminUsername": {
      "type": "string",
      "metadata": {
        "description": "User name for the Virtual Machine."
      }
    },
    "adminPassword": {
      "type": "securestring",
      "metadata": {
        "description": "Password for the Virtual Machine."
      }
    },
    "dnsLabelPrefix": {
      "type": "string",
      "metadata": {
        "description": "Unique DNS Name for the Public IP used to access the Virtual Machine."
      }
    },
    "osVersion": {
      "type": "string",
      "defaultValue": "14.04.2-LTS",
      "allowedValues": [
        "12.04.5-LTS",
        "14.04.2-LTS",
        "15.10"
      ],
      "metadata": {
        "description": "The Ubuntu version for the VM. This will pick a fully patched image of this given Ubuntu version. Allowed values: 12.04.5-LTS, 14.04.2-LTS, 15.10."
      }
    }
  },
  "variables": {
    "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'salinuxvm')]",
    "location": "[resourceGroup().location]",
    "dataDisk1VhdName": "datadisk1",
    "imagePublisher": "Canonical",
    "imageOffer": "UbuntuServer",
    "OSDiskName": "osdiskforlinuxsimple",
    "nicName": "myVMNic",
    "addressPrefix": "10.0.0.0/16",
    "subnetName": "Subnet",
    "subnetPrefix": "10.0.0.0/24",
    "storageAccountType": "Standard_LRS",
    "publicIPAddressName": "myPublicIP",
    "publicIPAddressType": "Dynamic",
    "vmStorageAccountContainerName": "vhds",
    "vmName": "MyUbuntuVM",
    "vmSize": "Standard_D1",
    "virtualNetworkName": "MyVNET",
    "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
    "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
    "apiVersion": "2015-06-15"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[variables('storageAccountName')]",
      "apiVersion": "[variables('apiVersion')]",
      "location": "[variables('location')]",
      "properties": {
        "accountType": "[variables('storageAccountType')]"
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Network/publicIPAddresses",
      "name": "[variables('publicIPAddressName')]",
      "location": "[variables('location')]",
      "properties": {
        "publicIPAllocationMethod": "[variables('publicIPAddressType')]",
        "dnsSettings": {
          "domainNameLabel": "[parameters('dnsLabelPrefix')]"
        }
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Network/virtualNetworks",
      "name": "[variables('virtualNetworkName')]",
      "location": "[variables('location')]",
      "properties": {
        "addressSpace": {
          "addressPrefixes": [
            "[variables('addressPrefix')]"
          ]
        },
        "subnets": [
          {
            "name": "[variables('subnetName')]",
            "properties": {
              "addressPrefix": "[variables('subnetPrefix')]"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Network/networkInterfaces",
      "name": "[variables('nicName')]",
      "location": "[variables('location')]",
      "dependsOn": [
        "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]",
        "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"
      ],
      "properties": {
        "ipConfigurations": [
          {
            "name": "ipconfig1",
            "properties": {
              "privateIPAllocationMethod": "Dynamic",
              "publicIPAddress": {
                "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]"
              },
              "subnet": {
                "id": "[variables('subnetRef')]"
              }
            }
          }
        ]
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Compute/virtualMachines",
      "name": "[variables('vmName')]",
      "location": "[variables('location')]",
      "dependsOn": [
        "[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
        "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
      ],
      "properties": {
        "hardwareProfile": {
          "vmSize": "[variables('vmSize')]"
        },
        "osProfile": {
          "computerName": "[variables('vmName')]",
          "adminUsername": "[parameters('adminUsername')]",
          "adminPassword": "[parameters('adminPassword')]"
        },
        "storageProfile": {
          "imageReference": {
            "publisher": "[variables('imagePublisher')]",
            "offer": "[variables('imageOffer')]",
            "sku": "[parameters('osVersion')]",
            "version": "latest"
          },
          "osDisk": {
            "name": "osdisk",
            "vhd": {
              "uri": "[concat('http://',variables('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('OSDiskName'),'.vhd')]"
            },
            "caching": "ReadWrite",
            "createOption": "FromImage"
          },
          "dataDisks": [
            {
              "name": "datadisk1",
              "diskSizeGB": "100",
              "lun": 0,
              "vhd": {
                "uri": "[concat('http://',variables('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('dataDisk1VhdName'),'.vhd')]"
              },
              "createOption": "Empty"
            }
          ]
        },
        "networkProfile": {
          "networkInterfaces": [
            {
              "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"
            }
          ]
        },
        "diagnosticsProfile": {
          "bootDiagnostics": {
            "enabled": "true",
            "storageUri": "[concat('http://',variables('storageAccountName'),'.blob.core.windows.net')]"
          }
        }
      }
    }
  ]
}

---

## File: specs/arm-compute/quickstart-templates/vm-simple-windows.json

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "adminUsername": {
      "type": "string",
      "metadata": {
        "description": "Username for the Virtual Machine."
      }
    },
    "adminPassword": {
      "type": "securestring",
      "metadata": {
        "description": "Password for the Virtual Machine."
      }
    },
    "dnsLabelPrefix": {
      "type": "string",
      "metadata": {
        "description": "Unique DNS Name for the Public IP used to access the Virtual Machine."
      }
    },
    "osVersion": {
      "type": "string",
      "defaultValue": "2012-R2-Datacenter",
      "allowedValues": [
        "2008-R2-SP1",
        "2012-Datacenter",
        "2012-R2-Datacenter"
      ],
      "metadata": {
        "description": "The Windows version for the VM. This will pick a fully patched image of this given Windows version. Allowed values: 2008-R2-SP1, 2012-Datacenter, 2012-R2-Datacenter."
      }
    }
  },
  "variables": {
    "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'sawinvm')]",
    "sizeOfDiskInGB": "100",
    "dataDisk1VhdName": "datadisk1",
    "location": "[resourceGroup().location]",
    "imagePublisher": "MicrosoftWindowsServer",
    "imageOffer": "WindowsServer",
    "OSDiskName": "osdiskforwindowssimple",
    "nicName": "myVMNic",
    "addressPrefix": "10.0.0.0/16",
    "subnetName": "Subnet",
    "subnetPrefix": "10.0.0.0/24",
    "storageAccountType": "Standard_LRS",
    "publicIPAddressName": "myPublicIP",
    "publicIPAddressType": "Dynamic",
    "vmStorageAccountContainerName": "vhds",
    "vmName": "MyWindowsVM",
    "vmSize": "Standard_D1",
    "virtualNetworkName": "MyVNET",
    "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]",
    "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
    "apiVersion": "2015-06-15"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "name": "[variables('storageAccountName')]",
      "apiVersion": "[variables('apiVersion')]",
      "location": "[variables('location')]",
      "properties": {
        "accountType": "[variables('storageAccountType')]"
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Network/publicIPAddresses",
      "name": "[variables('publicIPAddressName')]",
      "location": "[variables('location')]",
      "properties": {
        "publicIPAllocationMethod": "[variables('publicIPAddressType')]",
        "dnsSettings": {
          "domainNameLabel": "[parameters('dnsLabelPrefix')]"
        }
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Network/virtualNetworks",
      "name": "[variables('virtualNetworkName')]",
      "location": "[variables('location')]",
      "properties": {
        "addressSpace": {
          "addressPrefixes": [
            "[variables('addressPrefix')]"
          ]
        },
        "subnets": [
          {
            "name": "[variables('subnetName')]",
            "properties": {
              "addressPrefix": "[variables('subnetPrefix')]"
            }
          }
        ]
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Network/networkInterfaces",
      "name": "[variables('nicName')]",
      "location": "[variables('location')]",
      "dependsOn": [
        "[concat('Microsoft.Network/publicIPAddresses/', variables('publicIPAddressName'))]",
        "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"
      ],
      "properties": {
        "ipConfigurations": [
          {
            "name": "ipconfig1",
            "properties": {
              "privateIPAllocationMethod": "Dynamic",
              "publicIPAddress": {
                "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('publicIPAddressName'))]"
              },
              "subnet": {
                "id": "[variables('subnetRef')]"
              }
            }
          }
        ]
      }
    },
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Compute/virtualMachines",
      "name": "[variables('vmName')]",
      "location": "[variables('location')]",
      "dependsOn": [
        "[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
        "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
      ],
      "properties": {
        "hardwareProfile": {
          "vmSize": "[variables('vmSize')]"
        },
        "osProfile": {
          "computerName": "[variables('vmName')]",
          "adminUsername": "[parameters('adminUsername')]",
          "adminPassword": "[parameters('adminPassword')]"
        },
        "storageProfile": {
          "imageReference": {
            "publisher": "[variables('imagePublisher')]",
            "offer": "[variables('imageOffer')]",
            "sku": "[parameters('osVersion')]",
            "version": "latest"
          },
          "osDisk": {
            "name": "osdisk",
            "vhd": {
              "uri": "[concat('http://',variables('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('OSDiskName'),'.vhd')]"
            },
            "caching": "ReadWrite",
            "createOption": "FromImage"
          },
          "dataDisks": [
            {
              "name": "datadisk1",
              "diskSizeGB": "[variables('sizeOfDiskInGB')]",
              "lun": 0,
              "vhd": {
                "uri": "[concat('http://',variables('storageAccountName'),'.blob.core.windows.net/',variables('vmStorageAccountContainerName'),'/',variables('dataDisk1VhdName'),'.vhd')]"
              },
              "createOption": "Empty"
            }
          ]
        },
        "networkProfile": {
          "networkInterfaces": [
            {
              "id": "[resourceId('Microsoft.Network/networkInterfaces',variables('nicName'))]"
            }
          ]
        },
        "diagnosticsProfile": {
          "bootDiagnostics": {
            "enabled": "true",
            "storageUri": "[concat('http://',variables('storageAccountName'),'.blob.core.windows.net')]"
          }
        }
      }
    }
  ]
}

---

## File: specs/arm-compute/quickstart-templates/vm-simple.json

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string"
    },
    "newOrExisting": {
      "type": "string",
      "allowedValues": [
        "new",
        "existing"
      ]
    }
  },
  "variables": {
    "templatelink": "[concat('https://raw.githubusercontent.com/rjmax/ArmExamples/master/',parameters('newOrExisting'),'StorageAccount.json')]"
  },
  "resources": [
    {
      "apiVersion": "2015-01-01",
      "name": "nestedTemplate",
      "type": "Microsoft.Resources/deployments",
      "properties": {
        "mode": "incremental",
        "templateLink": {
          "uri": "[variables('templatelink')]",
          "contentVersion": "1.0.0.0"
        },
        "parameters": {
          "StorageAccountName": {
            "value": "[parameters('storageAccountName')]"
          }
        }
      }
    }
  ],
  "outputs": {
    "exampleOutput": {
      "value": "[reference('nestedTemplate')]",
      "type": "object"
    }
  }
}

---

## File: specs/arm-datalake-analytics/job/2015-11-01-preview/swagger/job.json

{
  "swagger": "2.0",
  "info": {
    "title": "DataLakeAnalyticsJobManagementClient",
    "description": "Creates an Azure Data Lake Analytics job client.",
    "version": "2015-11-01-preview",
    "x-ms-code-generation-settings": {
      "useDateTimeOffset": true,
      "internalConstructors": true
    }
  },
  "x-ms-parameterized-host": {
    "hostTemplate": "{accountName}.{adlaJobDnsSuffix}",
    "parameters": [
      {
        "name": "accountName",
        "description": "The Azure Data Lake Analytics account to execute job operations on.",
        "required": true,
        "type": "string",
        "in": "path",
        "x-ms-skip-url-encoding": true
      },
      {
        "$ref": "#/parameters/adlaJobDnsSuffixInPath"
      }
    ]
  },
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json",
    "text/json",
    "application/octet-stream"
  ],
  "produces": [
    "application/json",
    "text/json",
    "application/octet-stream"
  ],
  "paths": {
    "/Jobs/{jobIdentity}/GetStatistics": {
      "post": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_GetStatistics",
        "description": "Gets statistics of the specified job.",
        "parameters": [
          {
            "name": "jobIdentity",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid",
            "description": "JobInfo ID."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobStatistics"
            }
          }
        }
      }
    },
    "/Jobs/{jobIdentity}/GetDebugDataPath": {
      "post": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_GetDebugDataPath",
        "description": "Gets the U-SQL job debug data information specified by the job ID.",
        "parameters": [
          {
            "name": "jobIdentity",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid",
            "description": "JobInfo ID."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobDataPath"
            }
          }
        }
      }
    },
    "/BuildJob": {
      "post": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_Build",
        "description": "Builds (compiles) the specified job in the specified Data Lake Analytics account for job correctness and validation.",
        "parameters": [
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobInformation"
            },
            "description": "The parameters to build a job."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobInformation"
            }
          }
        }
      }
    },
    "/Jobs/{jobIdentity}/CancelJob": {
      "post": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_Cancel",
        "description": "Cancels the running job specified by the job ID.",
        "parameters": [
          {
            "name": "jobIdentity",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid",
            "description": "JobInfo ID to cancel."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        }
      }
    },
    "/Jobs/{jobIdentity}": {
      "get": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_Get",
        "description": "Gets the job information for the specified job ID.",
        "parameters": [
          {
            "name": "jobIdentity",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid",
            "description": "JobInfo ID."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobInformation"
            }
          }
        }
      },
      "put": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_Create",
        "description": "Submits a job to the specified Data Lake Analytics account.",
        "parameters": [
          {
            "name": "jobIdentity",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid",
            "description": "The job ID (a GUID) for the job being submitted."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobInformation"
            },
            "description": "The parameters to submit a job."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobInformation"
            }
          }
        }
      }
    },
    "/Jobs": {
      "get": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_List",
        "description": "Lists the jobs, if any, associated with the specified Data Lake Analytics account. The response includes a link to the next page of results, if any.",
        "parameters": [
          {
            "name": "$filter",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData filter. Optional."
          },
          {
            "name": "$top",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32",
            "description": "The number of items to return. Optional."
          },
          {
            "name": "$skip",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32",
            "description": "The number of items to skip over before returning elements. Optional."
          },
          {
            "name": "$expand",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData expansion. Expand related resources in line with the retrieved resources, e.g. Categories/$expand=Products would expand Product data in line with each Category entry. Optional."
          },
          {
            "name": "$select",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. Categories?$select=CategoryName,Description. Optional."
          },
          {
            "name": "$orderby",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OrderBy clause. One or more comma-separated expressions with an optional \"asc\" (the default) or \"desc\" depending on the order you'd like the values sorted, e.g. Categories?$orderby=CategoryName desc. Optional."
          },
          {
            "name": "$count",
            "in": "query",
            "required": false,
            "type": "boolean",
            "description": "The Boolean value of true or false to request a count of the matching resources included with the resources in the response, e.g. Categories?$count=true. Optional."
          },
          {
            "name": "$search",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "A free form search. A free-text search expression to match for whether a particular entry should be included in the feed, e.g. Categories?$search=blue OR green. Optional."
          },
          {
            "name": "$format",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "The return format. Return the response in particular formatxii without access to request headers for standard content-type negotiation (e.g Orders?$format=json). Optional."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobInfoListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        },
        "x-ms-odata": "#/definitions/JobInformation"
      }
    }
  },
  "definitions": {
    "JobStatisticsVertexStage": {
      "properties": {
        "dataRead": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "Gets the amount of data read, in bytes."
        },
        "dataReadCrossPod": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "Gets the amount of data read across multiple pods, in bytes."
        },
        "dataReadIntraPod": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "Gets the amount of data read in one pod, in bytes."
        },
        "dataToRead": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "Gets the amount of data remaining to be read, in bytes."
        },
        "dataWritten": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "Gets the amount of data written, in bytes."
        },
        "duplicateDiscardCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the number of duplicates that were discarded."
        },
        "failedCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the number of failures that occured in this stage."
        },
        "maxVertexDataRead": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "Gets the maximum amount of data read in a single vertex, in bytes."
        },
        "minVertexDataRead": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "Gets the minimum amount of data read in a single vertex, in bytes."
        },
        "readFailureCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the number of read failures in this stage."
        },
        "revocationCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the number of vertices that were revoked during this stage."
        },
        "runningCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the number of currently running vertices in this stage."
        },
        "scheduledCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the number of currently scheduled vertices in this stage"
        },
        "stageName": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the name of this stage in job execution."
        },
        "succeededCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the number of vertices that succeeded in this stage."
        },
        "tempDataWritten": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "Gets the amount of temporary data written, in bytes."
        },
        "totalCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the total vertex count for this stage."
        },
        "totalFailedTime": {
          "type": "string",
          "readOnly": true,
          "format": "non-iso-duration",
          "description": "Gets the amount of time that failed vertices took up in this stage."
        },
        "totalProgress": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the current progress of this stage, as a percentage."
        },
        "totalSucceededTime": {
          "type": "string",
          "readOnly": true,
          "format": "non-iso-duration",
          "description": "Gets the amount of time all successful vertices took in this stage."
        }
      },
      "description": "The Data Lake Analytics U-SQL job statistics vertex stage information."
    },
    "JobStatistics": {
      "properties": {
        "lastUpdateTimeUtc": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "Gets the last update time for the statistics."
        },
        "stages": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/JobStatisticsVertexStage"
          },
          "description": "Gets the list of stages for the job."
        }
      },
      "description": "The Data Lake Analytics U-SQL job execution statistics."
    },
    "JobDataPath": {
      "properties": {
        "jobId": {
          "type": "string",
          "format": "uuid",
          "readOnly": true,
          "description": "Gets the id of the job this data is for."
        },
        "command": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the command that this job data relates to."
        },
        "paths": {
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "Gets the list of paths to all of the job data."
        }
      },
      "description": "A Data Lake Analytics U-SQL job data path item."
    },
    "JobStateAuditRecord": {
      "properties": {
        "newState": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the new state the job is in."
        },
        "timeStamp": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "Gets the time stamp that the state change took place."
        },
        "requestedByUser": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the user who requests the change."
        },
        "details": {
          "type": "string",
          "readOnly": true,
          "description": "Gets  the details of the audit log."
        }
      },
      "description": "The Data Lake Analytics U-SQL job state audit records for tracking the lifecycle of a job."
    },
    "JobResource": {
      "properties": {
        "name": {
          "type": "string",
          "description": "Gets or set the name of the resource."
        },
        "resourcePath": {
          "type": "string",
          "description": "Gets or sets the path to the resource."
        },
        "type": {
          "type": "string",
          "description": "Gets or sets the job resource type.",
          "enum": [
            "VertexResource",
            "StatisticsResource"
          ],
          "x-ms-enum": {
            "name": "JobResourceType",
            "modelAsString": false
          }
        }
      },
      "description": "The Data Lake Analytics U-SQL job resources."
    },
    "USqlJobProperties": {
      "x-ms-discriminator-value": "USql",
      "allOf": [
        {
          "$ref": "#/definitions/JobProperties"
        }
      ],
      "properties": {
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/JobResource"
          },
          "description": "Gets or sets the list of resources that are required by the job"
        },
        "statistics": {
          "$ref": "#/definitions/JobStatistics",
          "description": "Gets or sets the job specific statistics."
        },
        "debugData": {
          "$ref": "#/definitions/JobDataPath",
          "description": "Gets or sets the job specific debug data locations."
        },
        "algebraFilePath": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the U-SQL algebra file path after the job has completed"
        },
        "totalCompilationTime": {
          "type": "string",
          "format": "non-iso-duration",
          "readOnly": true,
          "description": "Gets the total time this job spent compiling. This value should not be set by the user and will be ignored if it is."
        },
        "totalPauseTime": {
          "type": "string",
          "format": "non-iso-duration",
          "readOnly": true,
          "description": "Gets the total time this job spent paused. This value should not be set by the user and will be ignored if it is."
        },
        "totalQueuedTime": {
          "type": "string",
          "format": "non-iso-duration",
          "readOnly": true,
          "description": "Gets the total time this job spent queued. This value should not be set by the user and will be ignored if it is."
        },
        "totalRunningTime": {
          "type": "string",
          "format": "non-iso-duration",
          "readOnly": true,
          "description": "Gets the total time this job spent executing. This value should not be set by the user and will be ignored if it is."
        },
        "rootProcessNodeId": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the ID used to identify the job manager coordinating job execution. This value should not be set by the user and will be ignored if it is."
        },
        "yarnApplicationId": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the ID used to identify the yarn application executing the job. This value should not be set by the user and will be ignored if it is."
        },
        "yarnApplicationTimeStamp": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "Gets the timestamp (in ticks) for the yarn application executing the job. This value should not be set by the user and will be ignored if it is."
        },
        "compileMode": {
          "type": "string",
          "description": "Gets or sets the compile mode for the job.",
          "enum": [
            "Semantic",
            "Full",
            "SingleBox"
          ],
          "x-ms-enum": {
            "name": "CompileMode",
            "modelAsString": false
          }
        }
      }
    },
    "HiveJobStatementInfo": {
      "properties": {
        "logLocation": {
          "type": "string",
          "description": "Gets or sets the log location for this statement."
        },
        "resultPreviewLocation": {
          "type": "string",
          "description": "Gets or sets the result preview location for this statement."
        },
        "resultLocation": {
          "type": "string",
          "description": "Gets or sets the result location for this statement."
        },
        "errorMessage": {
          "type": "string",
          "description": "Gets or sets the error message for this statement."
        }
      }
    },
    "HiveJobProperties": {
      "x-ms-discriminator-value": "Hive",
      "allOf": [
        {
          "$ref": "#/definitions/JobProperties"
        }
      ],
      "properties": {
        "statementInfo": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/HiveJobStatementInfo"
          },
          "description": "Gets or sets the statement information for each statement in the script"
        },
        "logsLocation": {
          "type": "string",
          "description": "Gets or sets the Hive logs location"
        },
        "warehouseLocation": {
          "type": "string",
          "description": "Gets or sets the runtime version of the U-SQL engine to use"
        },
        "statementCount": {
          "type": "integer",
          "format": "int32",
          "description": "Gets or sets the number of statements that will be run based on the script"
        },
        "executedStatementCount": {
          "type": "integer",
          "format": "int32",
          "description": "Gets or sets the number of statements that have been run based on the script"
        }
      }
    },
    "JobProperties": {
      "discriminator": "type",
      "required": [
        "script",
        "type"
      ],
      "properties": {
        "runtimeVersion": {
          "type": "string",
          "description": "Gets or sets the runtime version of the U-SQL engine to use"
        },
        "script": {
          "type": "string",
          "description": "Gets or sets the U-SQL script to run"
        },
        "type": {
          "type": "string",
          "description": "Gets or sets the job type of the current job (i.e. Hive or U-SQL)."
        }
      },
      "description": "The common Data Lake Analytics job properties."
    },
    "JobErrorDetails": {
      "properties": {
        "description": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the error message description"
        },
        "details": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the details of the error message."
        },
        "endOffset": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the end offset in the job where the error was found."
        },
        "errorId": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the specific identifier for the type of error encountered in the job."
        },
        "filePath": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the path to any supplemental error files, if any."
        },
        "helpLink": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the link to MSDN or Azure help for this type of error, if any."
        },
        "internalDiagnostics": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the internal diagnostic stack trace if the user requesting the job error details has sufficient permissions it will be retrieved, otherwise it will be empty."
        },
        "lineNumber": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the specific line number in the job where the error occured."
        },
        "message": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the user friendly error message for the failure."
        },
        "resolution": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the recommended resolution for the failure, if any."
        },
        "InnerError": {
          "$ref": "#/definitions/JobInnerError",
          "readOnly": true,
          "description": "Gets the inner error of this specific job error message, if any."
        },
        "severity": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the severity level of the failure.",
          "enum": [
            "Warning",
            "Error"
          ],
          "x-ms-enum": {
            "name": "SeverityTypes",
            "modelAsString": false
          }
        },
        "source": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the ultimate source of the failure (usually either SYSTEM or USER)."
        },
        "startOffset": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the start offset in the job where the error was found"
        }
      },
      "description": "The Data Lake Analytics job error details."
    },
    "JobInnerError": {
      "properties": {
        "diagnosticCode": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "Gets the diagnostic error code."
        },
        "severity": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the severity level of the failure.",
          "enum": [
            "Warning",
            "Error"
          ],
          "x-ms-enum": {
            "name": "SeverityTypes",
            "modelAsString": false
          }
        },
        "details": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the details of the error message."
        },
        "component": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the component that failed."
        },
        "errorId": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the specific identifier for the type of error encountered in the job."
        },
        "helpLink": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the link to MSDN or Azure help for this type of error, if any."
        },
        "internalDiagnostics": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the internal diagnostic stack trace if the user requesting the job error details has sufficient permissions it will be retrieved, otherwise it will be empty."
        },
        "message": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the user friendly error message for the failure."
        },
        "resolution": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the recommended resolution for the failure, if any."
        },
        "source": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the ultimate source of the failure (usually either SYSTEM or USER)."
        },
        "description": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the error message description"
        }
      },
      "description": "The Data Lake Analytics job error details."
    },
    "JobInformation": {
      "properties": {
        "jobId": {
          "type": "string",
          "format": "uuid",
          "description": "Gets or sets the job's unique identifier (a GUID)."
        },
        "name": {
          "type": "string",
          "description": "Gets or sets the friendly name of the job."
        },
        "type": {
          "type": "string",
          "description": "Gets or sets the job type of the current job (Hive or USql).",
          "enum": [
            "USql",
            "Hive"
          ],
          "x-ms-enum": {
            "name": "JobType",
            "modelAsString": false
          }
        },
        "submitter": {
          "type": "string",
          "description": "Gets or sets the user or account that submitted the job."
        },
        "errorMessage": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/JobErrorDetails"
          },
          "description": "Gets the error message details for the job, if the job failed."
        },
        "degreeOfParallelism": {
          "type": "integer",
          "format": "int32",
          "description": "Gets or sets the degree of parallelism used for this job. This must be greater than 0."
        },
        "priority": {
          "type": "integer",
          "format": "int32",
          "description": "Gets or sets the priority value for the current job. Lower numbers have a higher priority. By default, a job has a priority of 1000. This must be greater than 0."
        },
        "submitTime": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "Gets the time the job was submitted to the service."
        },
        "startTime": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "Gets the start time of the job."
        },
        "endTime": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "Gets the completion time of the job."
        },
        "state": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the job state. When the job is in the Ended state, refer to Result and ErrorMessage for details.",
          "enum": [
            "Accepted",
            "Compiling",
            "Ended",
            "New",
            "Queued",
            "Running",
            "Scheduling",
            "Starting",
            "Paused",
            "WaitingForCapacity"
          ],
          "x-ms-enum": {
            "name": "JobState",
            "modelAsString": false
          }
        },
        "result": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the result of job execution or the current result of the running job.",
          "enum": [
            "None",
            "Succeeded",
            "Cancelled",
            "Failed"
          ],
          "x-ms-enum": {
            "name": "JobResult",
            "modelAsString": false
          }
        },
        "stateAuditRecords": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/JobStateAuditRecord"
          },
          "description": "Gets the job state audit records, indicating when various operations have been performed on this job."
        },
        "properties": {
          "$ref": "#/definitions/JobProperties",
          "description": "Gets or sets the job specific properties."
        }
      },
      "required": [
        "name",
        "type",
        "properties"
      ],
      "description": "The common Data Lake Analytics job information properties."
    },
    "JobInfoListResult": {
      "properties": {
        "value": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/JobInformation"
          },
          "description": "Gets the list of jobInfo items."
        },
        "nextLink": {
          "type": "string",
          "readOnly": true,
          "description": "Gets the link (url) to the next page of results."
        },
        "count": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "Gets the total count of results that are available, but might not be returned in the current page."
        }
      },
      "description": "List of jobInfo items."
    }
  },
  "parameters": {
    "ApiVersionParameter": {
      "name": "api-version",
      "in": "query",
      "required": true,
      "type": "string",
      "description": "Client Api Version."
    },
    "adlaJobDnsSuffixInPath": {
      "name": "adlaJobDnsSuffix",
      "in": "path",
      "required": true,
      "type": "string",
      "default": "azuredatalakeanalytics.net",
      "x-ms-skip-url-encoding": true,
      "description": "Gets the DNS suffix used as the base for all Azure Data Lake Analytics Job service requests."
    }
  }
}

---

## File: specs/arm-datalake-analytics/job/2016-03-20-preview/swagger/job.json

{
  "swagger": "2.0",
  "info": {
    "title": "DataLakeAnalyticsJobManagementClient",
    "description": "Creates an Azure Data Lake Analytics job client.",
    "version": "2016-03-20-preview",
    "x-ms-code-generation-settings": {
      "useDateTimeOffset": true,
      "internalConstructors": true
    }
  },
  "x-ms-parameterized-host": {
    "hostTemplate": "{accountName}.{adlaJobDnsSuffix}",
    "parameters": [
      {
        "name": "accountName",
        "description": "The Azure Data Lake Analytics account to execute job operations on.",
        "required": true,
        "type": "string",
        "in": "path",
        "x-ms-skip-url-encoding": true
      },
      {
        "$ref": "#/parameters/adlaJobDnsSuffixInPath"
      }
    ]
  },
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json",
    "text/json",
    "application/octet-stream"
  ],
  "produces": [
    "application/json",
    "text/json",
    "application/octet-stream"
  ],
  "paths": {
    "/Jobs/{jobIdentity}/GetStatistics": {
      "get": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_GetStatistics",
        "description": "Gets statistics of the specified job.",
        "parameters": [
          {
            "name": "jobIdentity",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid",
            "description": "JobInfo ID."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobStatistics"
            }
          }
        }
      }
    },
    "/Jobs/{jobIdentity}/GetDebugDataPath": {
      "post": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_GetDebugDataPath",
        "description": "Gets the job debug data information specified by the job ID.",
        "parameters": [
          {
            "name": "jobIdentity",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid",
            "description": "JobInfo ID."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobDataPath"
            }
          }
        }
      }
    },
    "/BuildJob": {
      "post": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_Build",
        "description": "Builds (compiles) the specified job in the specified Data Lake Analytics account for job correctness and validation.",
        "parameters": [
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobInformation"
            },
            "description": "The parameters to build a job."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobInformation"
            }
          }
        }
      }
    },
    "/Jobs/{jobIdentity}/CancelJob": {
      "post": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_Cancel",
        "description": "Cancels the running job specified by the job ID.",
        "parameters": [
          {
            "name": "jobIdentity",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid",
            "description": "JobInfo ID to cancel."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        }
      }
    },
    "/Jobs/{jobIdentity}": {
      "get": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_Get",
        "description": "Gets the job information for the specified job ID.",
        "parameters": [
          {
            "name": "jobIdentity",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid",
            "description": "JobInfo ID."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobInformation"
            }
          }
        }
      },
      "put": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_Create",
        "description": "Submits a job to the specified Data Lake Analytics account.",
        "parameters": [
          {
            "name": "jobIdentity",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid",
            "description": "The job ID (a GUID) for the job being submitted."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/JobInformation"
            },
            "description": "The parameters to submit a job."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobInformation"
            }
          }
        }
      }
    },
    "/Jobs": {
      "get": {
        "tags": [
          "Job"
        ],
        "operationId": "Job_List",
        "description": "Lists the jobs, if any, associated with the specified Data Lake Analytics account. The response includes a link to the next page of results, if any.",
        "parameters": [
          {
            "name": "$filter",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData filter. Optional."
          },
          {
            "name": "$top",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32",
            "description": "The number of items to return. Optional."
          },
          {
            "name": "$skip",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32",
            "description": "The number of items to skip over before returning elements. Optional."
          },
          {
            "name": "$expand",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData expansion. Expand related resources in line with the retrieved resources, e.g. Categories?$expand=Products would expand Product data in line with each Category entry. Optional."
          },
          {
            "name": "$select",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. Categories?$select=CategoryName,Description. Optional."
          },
          {
            "name": "$orderby",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OrderBy clause. One or more comma-separated expressions with an optional \"asc\" (the default) or \"desc\" depending on the order you'd like the values sorted, e.g. Categories?$orderby=CategoryName desc. Optional."
          },
          {
            "name": "$count",
            "in": "query",
            "required": false,
            "type": "boolean",
            "description": "The Boolean value of true or false to request a count of the matching resources included with the resources in the response, e.g. Categories?$count=true. Optional."
          },
          {
            "name": "$search",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "A free form search. A free-text search expression to match for whether a particular entry should be included in the feed, e.g. Categories?$search=blue OR green. Optional."
          },
          {
            "name": "$format",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "The return format. Return the response in particular formatxii without access to request headers for standard content-type negotiation (e.g Orders?$format=json). Optional."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/JobInfoListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        },
        "x-ms-odata": "#/definitions/JobInformation"
      }
    }
  },
  "definitions": {
    "JobStatisticsVertexStage": {
      "properties": {
        "dataRead": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the amount of data read, in bytes."
        },
        "dataReadCrossPod": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the amount of data read across multiple pods, in bytes."
        },
        "dataReadIntraPod": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the amount of data read in one pod, in bytes."
        },
        "dataToRead": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the amount of data remaining to be read, in bytes."
        },
        "dataWritten": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the amount of data written, in bytes."
        },
        "duplicateDiscardCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the number of duplicates that were discarded."
        },
        "failedCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the number of failures that occured in this stage."
        },
        "maxVertexDataRead": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the maximum amount of data read in a single vertex, in bytes."
        },
        "minVertexDataRead": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the minimum amount of data read in a single vertex, in bytes."
        },
        "readFailureCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the number of read failures in this stage."
        },
        "revocationCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the number of vertices that were revoked during this stage."
        },
        "runningCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the number of currently running vertices in this stage."
        },
        "scheduledCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the number of currently scheduled vertices in this stage"
        },
        "stageName": {
          "type": "string",
          "readOnly": true,
          "description": "the name of this stage in job execution."
        },
        "succeededCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the number of vertices that succeeded in this stage."
        },
        "tempDataWritten": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the amount of temporary data written, in bytes."
        },
        "totalCount": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the total vertex count for this stage."
        },
        "totalFailedTime": {
          "type": "string",
          "readOnly": true,
          "format": "duration",
          "description": "the amount of time that failed vertices took up in this stage."
        },
        "totalProgress": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the current progress of this stage, as a percentage."
        },
        "totalSucceededTime": {
          "type": "string",
          "readOnly": true,
          "format": "duration",
          "description": "the amount of time all successful vertices took in this stage."
        }
      },
      "description": "The Data Lake Analytics job statistics vertex stage information."
    },
    "JobStatistics": {
      "properties": {
        "lastUpdateTimeUtc": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "the last update time for the statistics."
        },
        "stages": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/JobStatisticsVertexStage"
          },
          "description": "the list of stages for the job."
        }
      },
      "description": "The Data Lake Analytics job execution statistics."
    },
    "JobDataPath": {
      "properties": {
        "jobId": {
          "type": "string",
          "format": "uuid",
          "readOnly": true,
          "description": "the id of the job this data is for."
        },
        "command": {
          "type": "string",
          "readOnly": true,
          "description": "the command that this job data relates to."
        },
        "paths": {
          "type": "array",
          "readOnly": true,
          "items": {
            "type": "string"
          },
          "description": "the list of paths to all of the job data."
        }
      },
      "description": "A Data Lake Analytics job data path item."
    },
    "JobStateAuditRecord": {
      "properties": {
        "newState": {
          "type": "string",
          "readOnly": true,
          "description": "the new state the job is in."
        },
        "timeStamp": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "the time stamp that the state change took place."
        },
        "requestedByUser": {
          "type": "string",
          "readOnly": true,
          "description": "the user who requests the change."
        },
        "details": {
          "type": "string",
          "readOnly": true,
          "description": " the details of the audit log."
        }
      },
      "description": "The Data Lake Analytics job state audit records for tracking the lifecycle of a job."
    },
    "JobResource": {
      "properties": {
        "name": {
          "type": "string",
          "description": "the name of the resource."
        },
        "resourcePath": {
          "type": "string",
          "description": "the path to the resource."
        },
        "type": {
          "type": "string",
          "description": "the job resource type.",
          "enum": [
            "VertexResource",
            "JobManagerResource",
            "StatisticsResource",
            "VertexResourceInUserFolder",
            "JobManagerResourceInUserFolder",
            "StatisticsResourceInUserFolder"

          ],
          "x-ms-enum": {
            "name": "JobResourceType",
            "modelAsString": false
          }
        }
      },
      "description": "The Data Lake Analytics job resources."
    },
    "USqlJobProperties": {
      "x-ms-discriminator-value": "USql",
      "allOf": [
        {
          "$ref": "#/definitions/JobProperties"
        }
      ],
      "properties": {
        "resources": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/JobResource"
          },
          "description": "the list of resources that are required by the job"
        },
        "statistics": {
          "$ref": "#/definitions/JobStatistics",
          "description": "the job specific statistics."
        },
        "debugData": {
          "$ref": "#/definitions/JobDataPath",
          "description": "the job specific debug data locations."
        },
        "diagnostics": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Diagnostics"
          },
          "description": "the diagnostics for the job."
        },
        "algebraFilePath": {
          "type": "string",
          "readOnly": true,
          "description": "the algebra file path after the job has completed"
        },
        "totalCompilationTime": {
          "type": "string",
          "format": "duration",
          "readOnly": true,
          "description": "the total time this job spent compiling. This value should not be set by the user and will be ignored if it is."
        },
        "totalPauseTime": {
          "type": "string",
          "format": "duration",
          "readOnly": true,
          "description": "the total time this job spent paused. This value should not be set by the user and will be ignored if it is."
        },
        "totalQueuedTime": {
          "type": "string",
          "format": "duration",
          "readOnly": true,
          "description": "the total time this job spent queued. This value should not be set by the user and will be ignored if it is."
        },
        "totalRunningTime": {
          "type": "string",
          "format": "duration",
          "readOnly": true,
          "description": "the total time this job spent executing. This value should not be set by the user and will be ignored if it is."
        },
        "rootProcessNodeId": {
          "type": "string",
          "readOnly": true,
          "description": "the ID used to identify the job manager coordinating job execution. This value should not be set by the user and will be ignored if it is."
        },
        "yarnApplicationId": {
          "type": "string",
          "readOnly": true,
          "description": "the ID used to identify the yarn application executing the job. This value should not be set by the user and will be ignored if it is."
        },
        "yarnApplicationTimeStamp": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the timestamp (in ticks) for the yarn application executing the job. This value should not be set by the user and will be ignored if it is."
        },
        "compileMode": {
          "type": "string",
          "description": "the compile mode for the job.",
          "enum": [
            "Semantic",
            "Full",
            "SingleBox"
          ],
          "x-ms-enum": {
            "name": "CompileMode",
            "modelAsString": false
          }
        }
      }
    },
    "HiveJobStatementInfo": {
      "properties": {
        "logLocation": {
          "type": "string",
          "description": "the log location for this statement."
        },
        "resultPreviewLocation": {
          "type": "string",
          "description": "the result preview location for this statement."
        },
        "resultLocation": {
          "type": "string",
          "description": "the result location for this statement."
        },
        "errorMessage": {
          "type": "string",
          "description": "the error message for this statement."
        }
      }
    },
    "HiveJobProperties": {
      "x-ms-discriminator-value": "Hive",
      "allOf": [
        {
          "$ref": "#/definitions/JobProperties"
        }
      ],
      "properties": {
        "statementInfo": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/HiveJobStatementInfo"
          },
          "description": "the statement information for each statement in the script"
        },
        "logsLocation": {
          "type": "string",
          "description": "the Hive logs location"
        },
        "warehouseLocation": {
          "type": "string",
          "description": "the location of the Hive warehouse"
        },
        "statementCount": {
          "type": "integer",
          "format": "int32",
          "description": "the number of statements that will be run based on the script"
        },
        "executedStatementCount": {
          "type": "integer",
          "format": "int32",
          "description": "the number of statements that have been run based on the script"
        }
      }
    },
    "JobProperties": {
      "discriminator": "type",
      "required": [
        "script",
        "type"
      ],
      "properties": {
        "runtimeVersion": {
          "type": "string",
          "description": "the runtime version of the Data Lake Analytics engine to use for the specific type of job being run."
        },
        "script": {
          "type": "string",
          "description": "the script to run"
        },
        "type": {
          "type": "string",
          "description": "the job type of the current job (i.e. Hive or U-SQL)."
        }
      },
      "description": "The common Data Lake Analytics job properties."
    },
    "Diagnostics" : {
      "properties": {
        "columnNumber" : {
          "description": "the column where the error occured.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "end" : {
          "description": "the ending index of the error.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "lineNumber" : {
          "description": "the line number the error occured on.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        },
        "message" : {
          "description": "the error message.",
          "type": "string",
          "readOnly": true
        },
        "severity" : {
          "description": "the severity of the error.",
          "readOnly": true,
          "type": "string",
          "enum": [
            "Warning",
            "Error",
            "Info"
          ],
          "x-ms-enum": {
            "name": "SeverityTypes",
            "modelAsString": false
          }
        },
        "start" : {
          "description": "the starting index of the error.",
          "type": "integer",
          "format": "int32",
          "readOnly": true
        }
      }
    },
    "JobErrorDetails": {
      "properties": {
        "description": {
          "type": "string",
          "readOnly": true,
          "description": "the error message description"
        },
        "details": {
          "type": "string",
          "readOnly": true,
          "description": "the details of the error message."
        },
        "endOffset": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the end offset in the job where the error was found."
        },
        "errorId": {
          "type": "string",
          "readOnly": true,
          "description": "the specific identifier for the type of error encountered in the job."
        },
        "filePath": {
          "type": "string",
          "readOnly": true,
          "description": "the path to any supplemental error files, if any."
        },
        "helpLink": {
          "type": "string",
          "readOnly": true,
          "description": "the link to MSDN or Azure help for this type of error, if any."
        },
        "internalDiagnostics": {
          "type": "string",
          "readOnly": true,
          "description": "the internal diagnostic stack trace if the user requesting the job error details has sufficient permissions it will be retrieved, otherwise it will be empty."
        },
        "lineNumber": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the specific line number in the job where the error occured."
        },
        "message": {
          "type": "string",
          "readOnly": true,
          "description": "the user friendly error message for the failure."
        },
        "resolution": {
          "type": "string",
          "readOnly": true,
          "description": "the recommended resolution for the failure, if any."
        },
        "innerError": {
          "$ref": "#/definitions/JobInnerError",
          "readOnly": true,
          "description": "the inner error of this specific job error message, if any."
        },
        "severity": {
          "type": "string",
          "readOnly": true,
          "description": "the severity level of the failure.",
          "enum": [
            "Warning",
            "Error",
            "Info"
          ],
          "x-ms-enum": {
            "name": "SeverityTypes",
            "modelAsString": false
          }
        },
        "source": {
          "type": "string",
          "readOnly": true,
          "description": "the ultimate source of the failure (usually either SYSTEM or USER)."
        },
        "startOffset": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the start offset in the job where the error was found"
        }
      },
      "description": "The Data Lake Analytics job error details."
    },
    "JobInnerError": {
      "properties": {
        "diagnosticCode": {
          "type": "integer",
          "readOnly": true,
          "format": "int32",
          "description": "the diagnostic error code."
        },
        "severity": {
          "type": "string",
          "readOnly": true,
          "description": "the severity level of the failure.",
          "enum": [
            "Warning",
            "Error",
            "Info"
          ],
          "x-ms-enum": {
            "name": "SeverityTypes",
            "modelAsString": false
          }
        },
        "details": {
          "type": "string",
          "readOnly": true,
          "description": "the details of the error message."
        },
        "component": {
          "type": "string",
          "readOnly": true,
          "description": "the component that failed."
        },
        "errorId": {
          "type": "string",
          "readOnly": true,
          "description": "the specific identifier for the type of error encountered in the job."
        },
        "helpLink": {
          "type": "string",
          "readOnly": true,
          "description": "the link to MSDN or Azure help for this type of error, if any."
        },
        "internalDiagnostics": {
          "type": "string",
          "readOnly": true,
          "description": "the internal diagnostic stack trace if the user requesting the job error details has sufficient permissions it will be retrieved, otherwise it will be empty."
        },
        "message": {
          "type": "string",
          "readOnly": true,
          "description": "the user friendly error message for the failure."
        },
        "resolution": {
          "type": "string",
          "readOnly": true,
          "description": "the recommended resolution for the failure, if any."
        },
        "source": {
          "type": "string",
          "readOnly": true,
          "description": "the ultimate source of the failure (usually either SYSTEM or USER)."
        },
        "description": {
          "type": "string",
          "readOnly": true,
          "description": "the error message description"
        }
      },
      "description": "The Data Lake Analytics job error details."
    },
    "JobInformation": {
      "properties": {
        "jobId": {
          "type": "string",
          "format": "uuid",
          "description": "the job's unique identifier (a GUID)."
        },
        "name": {
          "type": "string",
          "description": "the friendly name of the job."
        },
        "type": {
          "type": "string",
          "description": "the job type of the current job (Hive or USql).",
          "enum": [
            "USql",
            "Hive"
          ],
          "x-ms-enum": {
            "name": "JobType",
            "modelAsString": false
          }
        },
        "submitter": {
          "type": "string",
          "description": "the user or account that submitted the job."
        },
        "errorMessage": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/JobErrorDetails"
          },
          "description": "the error message details for the job, if the job failed."
        },
        "degreeOfParallelism": {
          "type": "integer",
          "format": "int32",
          "description": "the degree of parallelism used for this job. This must be greater than 0."
        },
        "priority": {
          "type": "integer",
          "format": "int32",
          "description": "the priority value for the current job. Lower numbers have a higher priority. By default, a job has a priority of 1000. This must be greater than 0."
        },
        "submitTime": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "the time the job was submitted to the service."
        },
        "startTime": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "the start time of the job."
        },
        "endTime": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "the completion time of the job."
        },
        "state": {
          "type": "string",
          "readOnly": true,
          "description": "the job state. When the job is in the Ended state, refer to Result and ErrorMessage for details.",
          "enum": [
            "Accepted",
            "Compiling",
            "Ended",
            "New",
            "Queued",
            "Running",
            "Scheduling",
            "Starting",
            "Paused",
            "WaitingForCapacity"
          ],
          "x-ms-enum": {
            "name": "JobState",
            "modelAsString": false
          }
        },
        "result": {
          "type": "string",
          "readOnly": true,
          "description": "the result of job execution or the current result of the running job.",
          "enum": [
            "None",
            "Succeeded",
            "Cancelled",
            "Failed"
          ],
          "x-ms-enum": {
            "name": "JobResult",
            "modelAsString": false
          }
        },
        "logFolder": {
          "type": "string",
          "readOnly": true,
          "description": "the log folder path to use in the following format: adl://<accountName>.azuredatalakestore.net/system/jobservice/jobs/Usql/2016/03/13/17/18/5fe51957-93bc-4de0-8ddc-c5a4753b068b/logs/."
        },
        "logFilePatterns": {
          "type": "array",
          "items": {
            "type": "string"
          },        
          "description": "the list of log file name patterns to find in the logFolder. '*' is the only matching character allowed. Example format: jobExecution*.log or *mylog*.txt"
        },
        "stateAuditRecords": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/JobStateAuditRecord"
          },
          "description": "the job state audit records, indicating when various operations have been performed on this job."
        },
        "properties": {
          "$ref": "#/definitions/JobProperties",
          "description": "the job specific properties."
        }
      },
      "required": [
        "name",
        "type",
        "properties"
      ],
      "description": "The common Data Lake Analytics job information properties."
    },
    "JobInfoListResult": {
      "properties": {
        "value": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/JobInformation"
          },
          "description": "the list of jobInfo items."
        },
        "nextLink": {
          "type": "string",
          "readOnly": true,
          "description": "the link (url) to the next page of results."
        },
        "count": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the total count of results that are available, but might not be returned in the current page."
        }
      },
      "description": "List of jobInfo items."
    }
  },
  "parameters": {
    "ApiVersionParameter": {
      "name": "api-version",
      "in": "query",
      "required": true,
      "type": "string",
      "description": "Client Api Version."
    },
    "adlaJobDnsSuffixInPath": {
      "name": "adlaJobDnsSuffix",
      "in": "path",
      "required": true,
      "type": "string",
      "default": "azuredatalakeanalytics.net",
      "x-ms-skip-url-encoding": true,
      "description": "Gets the DNS suffix used as the base for all Azure Data Lake Analytics Job service requests."
    }
  }
}

---

## File: specs/arm-datalake-store/account/2015-10-01-preview/swagger/account.json

{
  "swagger": "2.0",
  "info": {
    "title": "DataLakeStoreAccountManagementClient",
    "description": "Creates an Azure Data Lake Store account management client.",
    "version": "2015-10-01-preview",
    "x-ms-code-generation-settings": {
      "internalConstructors": true
    }
  },
  "host": "management.azure.com",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json",
    "text/json",
    "application/octet-stream"
  ],
  "produces": [
    "application/json",
    "text/json",
    "application/octet-stream"
  ],
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ],
  "securityDefinitions": {
    "azure_auth": {
      "type": "oauth2",
      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
      "flow": "implicit",
      "description": "Azure Active Directory OAuth2 Flow",
      "scopes": {
        "user_impersonation": "impersonate your user account"
      }
    }
  },
  "paths": {
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts/{accountName}/firewallRules/{firewallRuleName}": {
      "delete": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_DeleteFirewallRule",
        "description": "Deletes the specified firewall rule from the specified Data Lake Store account",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Azure resource group that contains the Data Lake Store account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Data Lake Store account from which to delete the firewall rule."
          },
          {
            "name": "firewallRuleName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the firewall rule to delete."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "204": {
            "description": ""
          }
        }
      },
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_GetFirewallRule",
        "description": "Gets the specified Data Lake Store firewall rule.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Azure resource group that contains the Data Lake Store account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Data Lake Store account from which to get the firewall rule."
          },
          {
            "name": "firewallRuleName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the firewall rule to retrieve."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/FirewallRule"
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts/{accountName}/firewallRules": {
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_ListFirewallRules",
        "description": "Lists the Data Lake Store firewall rules within the specified Data Lake Store account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Azure resource group that contains the Data Lake Store account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Data Lake Store account from which to get the firewall rules."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataLakeStoreFirewallRuleListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts/{accountName}/firewallRules/{name}": {
      "put": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_CreateOrUpdateFirewallRule",
        "description": "Creates or updates the specified firewall rule.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Azure resource group that contains the Data Lake Store account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Data Lake Store account to which to add the firewall rule."
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the firewall rule to create or update."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/FirewallRule"
            },
            "description": "Parameters supplied to create the create firewall rule."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/FirewallRule"
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts/{name}": {
      "put": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_Create",
        "description": "Creates the specified Data Lake Store account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Azure resource group that contains the Data Lake Store account."
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Data Lake Store account to create."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DataLakeStoreAccount"
            },
            "description": "Parameters supplied to create the Data Lake Store account."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataLakeStoreAccount"
            }
          },
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataLakeStoreAccount"
            }
          }
        },
        "x-ms-long-running-operation": true
      },
      "patch": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_Update",
        "description": "Updates the specified Data Lake Store account information.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Azure resource group that contains the Data Lake Store account."
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Data Lake Store account to update."
          },
          {
            "name": "parameters",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DataLakeStoreAccount"
            },
            "description": "Parameters supplied to update the Data Lake Store account."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataLakeStoreAccount"
            }
          },
          "201": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataLakeStoreAccount"
            }
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts/{accountName}": {
      "delete": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_Delete",
        "description": "Deletes the specified Data Lake Store account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Azure resource group that contains the Data Lake Store account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Data Lake Store account to delete."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "404": {
            "description": ""
          },
          "204": {
            "description": ""
          },
          "202": {
            "description": ""
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_Get",
        "description": "Gets the specified Data Lake Store account.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Azure resource group that contains the Data Lake Store account."
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Data Lake Store account to retrieve."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataLakeStoreAccount"
            }
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataLakeStore/accounts": {
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_ListByResourceGroup",
        "description": "Lists the Data Lake Store accounts within a specific resource group. The response includes a link to the next page of results, if any.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the Azure resource group that contains the Data Lake Store account(s)."
          },
          {
            "name": "$filter",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData filter. Optional."
          },
          {
            "name": "$top",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32",
            "description": "The number of items to return. Optional."
          },
          {
            "name": "$skip",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32",
            "description": "The number of items to skip over before returning elements. Optional."
          },
          {
            "name": "$expand",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData expansion. Expand related resources in line with the retrieved resources, e.g. Categories/$expand=Products would expand Product data in line with each Category entry. Optional."
          },
          {
            "name": "$select",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. Categories?$select=CategoryName,Description. Optional."
          },
          {
            "name": "$orderby",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OrderBy clause. One or more comma-separated expressions with an optional \"asc\" (the default) or \"desc\" depending on the order you'd like the values sorted, e.g. Categories?$orderby=CategoryName desc. Optional."
          },
          {
            "name": "$count",
            "in": "query",
            "required": false,
            "type": "boolean",
            "description": "A Boolean value of true or false to request a count of the matching resources included with the resources in the response, e.g. Categories?$count=true. Optional."
          },
          {
            "name": "$search",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "A free form search. A free-text search expression to match for whether a particular entry should be included in the feed, e.g. Categories?$search=blue OR green. Optional."
          },
          {
            "name": "$format",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "The desired return format. Return the response in particular formatxii without access to request headers for standard content-type negotiation (e.g Orders?$format=json). Optional."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataLakeStoreAccountListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        },
        "x-ms-odata": "#/definitions/DataLakeStoreAccount"
      }
    },
    "/subscriptions/{subscriptionId}/providers/Microsoft.DataLakeStore/accounts": {
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "Account_List",
        "description": "Lists the Data Lake Store accounts within the subscription. The response includes a link to the next page of results, if any.",
        "parameters": [
          {
            "name": "$filter",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData filter. Optional."
          },
          {
            "name": "$top",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32",
            "description": "The number of items to return. Optional."
          },
          {
            "name": "$skip",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32",
            "description": "The number of items to skip over before returning elements. Optional."
          },
          {
            "name": "$expand",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData expansion. Expand related resources in line with the retrieved resources, e.g. Categories/$expand=Products would expand Product data in line with each Category entry. Optional."
          },
          {
            "name": "$select",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OData Select statement. Limits the properties on each entry to just those requested, e.g. Categories?$select=CategoryName,Description. Optional."
          },
          {
            "name": "$orderby",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "OrderBy clause. One or more comma-separated expressions with an optional \"asc\" (the default) or \"desc\" depending on the order you'd like the values sorted, e.g. Categories?$orderby=CategoryName desc. Optional."
          },
          {
            "name": "$count",
            "in": "query",
            "required": false,
            "type": "boolean",
            "description": "The Boolean value of true or false to request a count of the matching resources included with the resources in the response, e.g. Categories?$count=true. Optional."
          },
          {
            "name": "$search",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "A free form search. A free-text search expression to match for whether a particular entry should be included in the feed, e.g. Categories?$search=blue OR green. Optional."
          },
          {
            "name": "$format",
            "in": "query",
            "required": false,
            "type": "string",
            "description": "The desired return format. Return the response in particular formatxii without access to request headers for standard content-type negotiation (e.g Orders?$format=json). Optional."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/DataLakeStoreAccountListResult"
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        },
        "x-ms-odata": "#/definitions/DataLakeStoreAccount"
      }
    }
  },
  "definitions": {
    "FirewallRuleProperties": {
      "properties": {
        "startIpAddress": {
          "type": "string",
          "description": "the start IP address for the firewall rule."
        },
        "endIpAddress": {
          "type": "string",
          "description": "the end IP address for the firewall rule."
        }
      },
      "description": "Data Lake Store firewall rule properties information"
    },
    "FirewallRule": {
      "properties": {
        "name": {
          "type": "string",
          "description": "the firewall rule's name."
        },
        "type": {
          "type": "string",
          "readOnly": true,
          "description": "the namespace and type of the firewall Rule."
        },
        "id": {
          "type": "string",
          "description": "the firewall rule's subscription ID."
        },
        "location": {
          "type": "string",
          "description": "the firewall rule's regional location."
        },
        "properties": {
          "$ref": "#/definitions/FirewallRuleProperties",
          "description": "the properties of the firewall rule."
        }
      },
      "description": "Data Lake Store firewall rule information"
    },
    "DataLakeStoreFirewallRuleListResult": {
      "properties": {
        "value": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/FirewallRule"
          },
          "description": "the results of the list operation"
        },
        "nextLink": {
          "type": "string",
          "readOnly": true,
          "description": "the link (url) to the next page of results."
        },
        "count": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the total count of results that are available, but might not be returned in the current page."
        }
      },
      "description": "Data Lake Store firewall rule list information."
    },
    "DataLakeStoreAccountProperties": {
      "properties": {
        "provisioningState": {
          "readOnly": true,
          "type": "string",
          "description": "the status of the Data Lake Store account while being provisioned.",
          "enum": [
            "Failed",
            "Creating",
            "Running",
            "Succeeded",
            "Patching",
            "Suspending",
            "Resuming",
            "Deleting",
            "Deleted"
          ],
          "x-ms-enum": {
            "name": "DataLakeStoreAccountStatus",
            "modelAsString": false
          }
        },
        "state": {
          "readOnly": true,
          "type": "string",
          "description": "the status of the Data Lake Store account after provisioning has completed.",
          "enum": [
            "active",
            "suspended"
          ],
          "x-ms-enum": {
            "name": "DataLakeStoreAccountState",
            "modelAsString": false
          }
        },
        "creationTime": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "the account creation time."
        },
        "lastModifiedTime": {
          "type": "string",
          "readOnly": true,
          "format": "date-time",
          "description": "the account last modified time."
        },
        "endpoint": {
          "type": "string",
          "description": "the gateway host."
        },
        "defaultGroup": {
          "type": "string",
          "description": "the default owner group for all new folders and files created in the Data Lake Store account."
        }
      },
      "description": "Data Lake Store account properties information"
    },
    "DataLakeStoreAccount": {
      "properties": {
        "location": {
          "type": "string",
          "description": "the account regional location."
        },
        "name": {
          "type": "string",
          "description": "the account name."
        },
        "type": {
          "type": "string",
          "readOnly": true,
          "description": "the namespace and type of the account."
        },
        "id": {
          "type": "string",
          "readOnly": true,
          "description": "the account subscription ID."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "the value of custom properties."
        },
        "properties": {
          "$ref": "#/definitions/DataLakeStoreAccountProperties",
          "description": "the Data Lake Store account properties."
        }
      },
      "description": "Data Lake Store account information"
    },
    "DataLakeStoreAccountListResult": {
      "properties": {
        "value": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/DataLakeStoreAccount"
          },
          "description": "the results of the list operation"
        },
        "nextLink": {
          "type": "string",
          "readOnly": true,
          "description": "the link (url) to the next page of results."
        },
        "count": {
          "type": "integer",
          "readOnly": true,
          "format": "int64",
          "description": "the total count of results that are available, but might not be returned in the current page."
        }
      },
      "description": "Data Lake Store account list information response."
    },
    "ErrorDetails": {
      "properties": {
        "code": {
          "type": "string",
          "readOnly": true,
          "description": "the HTTP status code or error code associated with this error"
        },
        "message": {
          "type": "string",
          "readOnly": true,
          "description": "the error message localized based on Accept-Language"
        },
        "target": {
          "type": "string",
          "readOnly": true,
          "description": "the target of the particular error (for example, the name of the property in error)."
        }
      },
      "description": "Data Lake Store error details information"
    },
    "InnerError": {
      "properties": {
        "trace": {
          "type": "string",
          "readOnly": true,
          "description": "the stack trace for the error"
        },
        "context": {
          "type": "string",
          "readOnly": true,
          "description": "the context for the error message"
        }
      },
      "description": "Data Lake Store inner error information"
    },
    "Error": {
      "properties": {
        "code": {
          "type": "string",
          "readOnly": true,
          "description": "the HTTP status code or error code associated with this error"
        },
        "message": {
          "type": "string",
          "readOnly": true,
          "description": "the error message to display."
        },
        "target": {
          "type": "string",
          "readOnly": true,
          "description": "the target of the error."
        },
        "details": {
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/definitions/ErrorDetails"
          },
          "description": "the list of error details"
        },
        "innerError": {
          "$ref": "#/definitions/InnerError",
          "readOnly": true,
          "description": "the inner exceptions or errors, if any"
        }
      },
      "description": "Data Lake Store error information"
    },
    "AzureAsyncOperationResult": {
      "properties": {
        "status": {
          "type": "string",
          "readOnly": true,
          "description": "the status of the AzureAsuncOperation",
          "enum": [
            "InProgress",
            "Succeeded",
            "Failed"
          ],
          "x-ms-enum": {
            "name": "OperationStatus",
            "modelAsString": false
          }
        },
        "error": {
          "readOnly": true,
          "$ref": "#/definitions/Error"
        }
      },
      "description": "The response body contains the status of the specified asynchronous operation, indicating whether it has succeeded, is in progress, or has failed. Note that this status is distinct from the HTTP status code returned for the Get Operation Status operation itself. If the asynchronous operation succeeded, the response body includes the HTTP status code for the successful request. If the asynchronous operation failed, the response body includes the HTTP status code for the failed request and error information regarding the failure."
    }
  },
  "parameters": {
    "SubscriptionIdParameter": {
      "name": "subscriptionId",
      "in": "path",
      "required": true,
      "type": "string",
      "description": "Gets subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call."
    },
    "ApiVersionParameter": {
      "name": "api-version",
      "in": "query",
      "required": true,
      "type": "string",
      "description": "Client Api Version."
    }
  }
}