swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: Use these APIs to manage Visual Studio Team Services resources through the Azure Resource Manager. All task operations conform to the HTTP/1.1 protocol specification and each operation returns an x-ms-request-id header that can be used to obtain information about the request. You must make sure that requests made to these resources are secure. For more information, see https://docs.microsoft.com/en-us/rest/api/index.
  title: Visual Studio Resource Provider Client
  version: 2017-11-01-preview
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/visualstudio/resource-manager/Microsoft.VisualStudio/preview/2017-11-01-preview/Csm.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: visualstudio-Csm
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  apiVersionParameter:
    description: API Version
    in: query
    name: api-version
    required: true
    type: string
  resourceGroupNameParameter:
    description: Name of the resource group within the Azure subscription.
    in: path
    name: resourceGroupName
    required: true
    type: string
    x-ms-parameter-location: method
  subscriptionIdParameter:
    description: The Azure subscription identifier.
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  /providers/microsoft.visualstudio/operations:
    get:
      description: Gets the details of all operations possible on the Microsoft.VisualStudio resource provider.
      operationId: Operations_List
      responses:
        "200":
          description: The operation succeeded. The response contains the possible operations on the Microsoft.VisualStudio resource provider.
          schema:
            $ref: "#/definitions/OperationListResult"
      summary: Operations_List
      tags:
        - Operations
      x-ms-examples:
        Get a list of operations for this resource provider:
          parameters:
            api-version: 2014-04-01-preview
          responses:
            "200":
              body:
                value:
                  - display:
                      description: Set Account
                      operation: Creates or updates the Account
                      provider: Visual Studio
                      resource: Account
                    name: Microsoft.VisualStudio/Account/Write
                  - display:
                      description: Delete Account
                      operation: Deletes the Account
                      provider: Visual Studio
                      resource: Account
                    name: Microsoft.VisualStudio/Account/Delete
                  - display:
                      description: Read Account
                      operation: Reads the Account
                      provider: Visual Studio
                      resource: Account
                    name: Microsoft.VisualStudio/Account/Read
                  - display:
                      description: Set Project
                      operation: Creates or updates the Project
                      provider: Visual Studio
                      resource: Project
                    name: Microsoft.VisualStudio/Project/Write
                  - display:
                      description: Delete Project
                      operation: Deletes the Project
                      provider: Visual Studio
                      resource: Project
                    name: Microsoft.VisualStudio/Project/Delete
                  - display:
                      description: Read Project
                      operation: Reads the Project
                      provider: Visual Studio
                      resource: Project
                    name: Microsoft.VisualStudio/Project/Read
                  - display:
                      description: Set Extension
                      operation: Creates or updates the Extension
                      provider: Visual Studio
                      resource: Extension
                    name: Microsoft.VisualStudio/Extension/Write
                  - display:
                      description: Delete Extension
                      operation: Deletes the Extension
                      provider: Visual Studio
                      resource: Extension
                    name: Microsoft.VisualStudio/Extension/Delete
                  - display:
                      description: Read Extension
                      operation: Reads the Extension
                      provider: Visual Studio
                      resource: Extension
                    name: Microsoft.VisualStudio/Extension/Read
  "/subscriptions/{subscriptionId}/providers/microsoft.visualstudio/checkNameAvailability":
    post:
      description: Checks if the specified Visual Studio Team Services account name is available. Resource name can be either an account name or an account name and PUID.
      operationId: Accounts_CheckNameAvailability
      parameters:
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: Parameters describing the name to check availability for.
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/CheckNameAvailabilityParameter"
      responses:
        "200":
          description: The operation succeeded. The response contains the result of the name availability check.
          schema:
            $ref: "#/definitions/CheckNameAvailabilityResult"
      summary: Accounts_CheckNameAvailability
      tags:
        - Accounts
      x-ms-examples:
        Check availability of an account name:
          parameters:
            api-version: 2014-04-01-preview
            body:
              resourceName: ExampleName
              resourceType: Account
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                nameAvailable: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.visualstudio/account/{rootResourceName}/project":
    get:
      deprecated: true
      description: Gets all Visual Studio Team Services project resources created in the specified Team Services account.
      operationId: Project_ListByAccountResource
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: Name of the Team Services account.
          in: path
          name: rootResourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The response contains the details of the Visual Studio Team Services project resources created in the specified Team Services account.
          schema:
            $ref: "#/definitions/ProjectResourceListResult"
      summary: Projects_ListByAccountResource
      tags:
        - Projects
      x-ms-examples:
        Get a list of project resources in the Team Services account:
          parameters:
            api-version: 2017-11-01-preview
            resourceGroupName: VS-Example-Group
            rootResourceName: ExampleAccount
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/Microsoft.VisualStudio/account/ExampleAccount/project/ExampleProject
                    kind: bootstrappedProject
                    location: Central US
                    name: ExampleProject
                    properties:
                      bootstrapPipelineTemplate:
                        applicationSource:
                          applicationConfiguration:
                            nodeJsVersion: 8.5.0
                          applicationType: NodeJs
                          sourceType: CodeTemplate
                        applicationTarget:
                          resources:
                            - id: /subscriptions/ea99dfc9-1597-48ed-85f6-9bf922591395/resourceGroups/testrg/providers/Microsoft.Web/sites/MyWebSite
                              role: AppService
                          targetType: WindowsAppService
                        authorizationDetails: {}
                      processTemplateId: Scrum
                      tfsUniqueIdentifier: vstfs:///Classification/TeamProject/d921d601-0600-4e45-8600-3914ffc8811a
                      versionControlOption: Git
                    tags: {}
                    type: Microsoft.VisualStudio/account/project
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.visualstudio/account/{rootResourceName}/project/{resourceName}":
    get:
      deprecated: true
      description: Gets the details of a Team Services project resource.
      operationId: Projects_Get
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: Name of the Team Services account.
          in: path
          name: rootResourceName
          required: true
          type: string
        - description: Name of the Team Services project.
          in: path
          name: resourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The response contains the details of the updated team project resource.
          schema:
            $ref: "#/definitions/ProjectResource"
        "404":
          description: The project or Azure subscription was not found.
      summary: Projects_Get
      tags:
        - Projects
      x-ms-examples:
        Get a project resource:
          parameters:
            api-version: 2017-11-01-preview
            resourceGroupName: VS-Example-Group
            resourceName: ExampleProject
            rootResourceName: ExampleAccount
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/microsoft.visualstudio/account/ExampleAccount/project/ExampleProject
                kind: bootstrappedProject
                location: North Central US
                name: ExampleProject
                properties:
                  bootstrapPipelineTemplate:
                    applicationSource:
                      applicationConfiguration:
                        nodeJsVersion: 8.5.0
                      applicationType: NodeJs
                      sourceType: CodeTemplate
                    applicationTarget:
                      resources:
                        - id: /subscriptions/ea99dfc9-1597-48ed-85f6-9bf922591395/resourceGroups/testrg/providers/Microsoft.Web/sites/MyWebSite
                          role: AppService
                      targetType: WindowsAppService
                    authorizationDetails: {}
                  processTemplateId: Scrum
                  tfsUniqueIdentifier: vstfs:///Classification/TeamProject/7a4e6ba5-35bf-4667-86a4-9b598a88fa25
                  versionControlOption: Git
                tags: {}
                type: microsoft.visualstudio/account/project
            "404": {}
    patch:
      deprecated: true
      description: Updates the tags of the specified Team Services project.
      operationId: Projects_Update
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: The request data.
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/ProjectResourceUpdateParameters"
        - description: Name of the Team Services account.
          in: path
          name: rootResourceName
          required: true
          type: string
        - description: Name of the Team Services project.
          in: path
          name: resourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The response contains the details of the updated team project resource.
          schema:
            $ref: "#/definitions/ProjectResource"
      summary: Projects_Update
      tags:
        - Projects
      x-ms-examples:
        Update a project resource:
          parameters:
            api-version: 2017-11-01-preview
            body:
              tags:
                NewTag: NewTagValue
            resourceGroupName: VS-Example-Group
            resourceName: ExampleProject
            rootResourceName: ExampleAccount
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/microsoft.visualstudio/account/ExampleAccount/project/ExampleProject
                kind: bootstrappedProject
                location: North Central US
                name: ExampleProject
                properties:
                  bootstrapPipelineTemplate:
                    applicationSource:
                      applicationConfiguration:
                        nodeJsVersion: 8.5.0
                      applicationType: NodeJs
                      sourceType: CodeTemplate
                    applicationTarget:
                      resources:
                        - id: /subscriptions/ea99dfc9-1597-48ed-85f6-9bf922591395/resourceGroups/testrg/providers/Microsoft.Web/sites/MyWebSite
                          role: AppService
                      targetType: WindowsAppService
                    authorizationDetails: {}
                  processTemplateId: Scrum
                  tfsUniqueIdentifier: vstfs:///Classification/TeamProject/7a4e6ba5-35bf-4667-86a4-9b598a88fa25
                  versionControlOption: Git
                tags:
                  NewTag: NewTagValue
                type: microsoft.visualstudio/account/project
    put:
      deprecated: true
      description: "Creates a Team Services project in the collection with the specified name. 'VersionControlOption' and 'ProcessTemplateId' must be specified in the resource properties. Valid values for VersionControlOption: Git, Tfvc. Valid values for ProcessTemplateId: 6B724908-EF14-45CF-84F8-768B5384DA45, ADCC42AB-9882-485E-A3ED-7678F01F66BC, 27450541-8E31-4150-9947-DC59F998FC01 (these IDs correspond to Scrum, Agile, and CMMI process templates)."
      operationId: Projects_Create
      parameters:
        - description: The request data.
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/ProjectResource"
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: Name of the Team Services account.
          in: path
          name: rootResourceName
          required: true
          type: string
        - description: Name of the Team Services project.
          in: path
          name: resourceName
          required: true
          type: string
        - description: This parameter is ignored and should be set to an empty string.
          in: query
          name: validating
          required: false
          type: string
      responses:
        "200":
          description: The operation succeeded. The response contains the details of the created or updated team project resource.
          schema:
            $ref: "#/definitions/ProjectResource"
        "202":
          description: The operation succeeded. A job to create the team project resource has been queued. The URI to monitor the status of the job is provided in the 'location' header.
      summary: Projects_Create
      tags:
        - Projects
      x-ms-examples:
        Create a project resource:
          parameters:
            api-version: 2017-11-01-preview
            body:
              id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/Microsoft.VisualStudio/account/ExampleAccount/project/ExampleProject
              location: Central US
              name: ExampleProject
              properties:
                bootstrapPipelineTemplate:
                  applicationSource:
                    applicationConfiguration:
                      nodeJsVersion: 8.5.0
                    applicationType: NodeJs
                    sourceType: CodeTemplate
                  applicationTarget:
                    resources:
                      - id: /subscriptions/ea99dfc9-1597-48ed-85f6-9bf922591395/resourceGroups/testrg/providers/Microsoft.Web/sites/MyWebSite
                        role: AppService
                    targetType: WindowsAppService
                  authorizationDetails:
                    azure:
                      authorizationType: authorizationToken
                      parameters:
                        token: AAD_Access_Token_For_VSTS_Resource
                processTemplateId: Scrum
                versionControlOption: Git
              tags: {}
              type: Microsoft.VisualStudio/account/project
            resourceGroupName: VS-Example-Group
            resourceName: ExampleProject
            rootResourceName: ExampleAccount
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/microsoft.visualstudio/account/ExampleAccount/project/ExampleProject
                kind: bootstrappedProject
                location: North Central US
                name: ExampleProject
                properties:
                  bootstrapPipelineTemplate:
                    applicationSource:
                      applicationConfiguration:
                        nodeJsVersion: 8.5.0
                      applicationType: NodeJs
                      sourceType: CodeTemplate
                    applicationTarget:
                      resources:
                        - id: /subscriptions/ea99dfc9-1597-48ed-85f6-9bf922591395/resourceGroups/testrg/providers/Microsoft.Web/sites/MyWebSite
                          role: AppService
                      targetType: WindowsAppService
                    authorizationDetails: {}
                  processTemplateId: Scrum
                  tfsUniqueIdentifier: vstfs:///Classification/TeamProject/7a4e6ba5-35bf-4667-86a4-9b598a88fa25
                  versionControlOption: Git
                tags: {}
                type: microsoft.visualstudio/account/project
            "202":
              headers:
                location: https://management.azure.com/subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/microsoft.visualstudio/account/ExampleAccount/project/ExampleProject/subContainers/ExampleProject/status/?api-version=2017-11-01-preview&jobId=126167d2-d710-4b5d-80a8-a1d58717142d&operation=put
                retry-after: "5"
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.visualstudio/account":
    get:
      description: Gets all Visual Studio Team Services account resources under the resource group linked to the specified Azure subscription.
      operationId: Accounts_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: The operation succeeded. The response contains the details of the Visual Studio Team Services account resources linked to the Azure subscription.
          schema:
            $ref: "#/definitions/AccountResourceListResult"
      summary: Accounts_ListByResourceGroup
      tags:
        - Accounts
      x-ms-examples:
        Get a list of account resources in the resource group:
          parameters:
            api-version: 2014-04-01-preview
            resourceGroupName: VS-Example-Group
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/Microsoft.VisualStudio/account/Example
                    location: Central US
                    name: VS-Example-Group
                    properties:
                      AccountURL: ""
                    tags: {}
                    type: Microsoft.VisualStudio/account
  "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.visualstudio/account/{accountResourceName}/extension":
    get:
      description: Gets the details of the extension resources created within the resource group.
      operationId: Extensions_ListByAccount
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: The name of the Visual Studio Team Services account resource.
          in: path
          name: accountResourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The response contains all extension resource details for the specified account.
          schema:
            $ref: "#/definitions/ExtensionResourceListResult"
      summary: Extensions_ListByAccount
      tags:
        - Extensions
      x-ms-examples:
        Get a list of extension resources within the resource group:
          parameters:
            accountResourceName: ExampleAccount
            api-version: 2014-04-01-preview
            resourceGroupName: VS-Example-Group
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/Microsoft.VisualStudio/account/ExampleAccount/extension/ms.example
                    location: Central US
                    name: ms.example
                    plan:
                      name: ExamplePlan
                      product: ExampleExtensionName
                      promotionCode: ""
                      publisher: ExampleExtensionPublisher
                      version: "1.0"
                    properties: {}
                    tags: {}
                    type: Microsoft.VisualStudio/account/extension
  "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.visualstudio/account/{accountResourceName}/extension/{extensionResourceName}":
    delete:
      description: Removes an extension resource registration for a Visual Studio Team Services account.
      operationId: Extensions_Delete
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: The name of the Visual Studio Team Services account resource.
          in: path
          name: accountResourceName
          required: true
          type: string
        - description: The name of the extension.
          in: path
          name: extensionResourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The extension resource has been deleted for the specified account.
      summary: Extensions_Delete
      tags:
        - Extensions
      x-ms-examples:
        Delete an extension resource:
          parameters:
            accountResourceName: Example
            api-version: 2014-04-01-preview
            extensionResourceName: ms.example
            resourceGroupName: VS-Example-Group
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200": {}
    get:
      description: Gets the details of an extension associated with a Visual Studio Team Services account resource.
      operationId: Extensions_Get
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: The name of the Visual Studio Team Services account resource.
          in: path
          name: accountResourceName
          required: true
          type: string
        - description: The name of the extension.
          in: path
          name: extensionResourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The response contains the extension resource details for the specified account.
          schema:
            $ref: "#/definitions/ExtensionResource"
        "404":
          description: The specified extension has no plans defined.
      summary: Extensions_Get
      tags:
        - Extensions
      x-ms-examples:
        Get an extension resource:
          parameters:
            accountResourceName: ExampleAccount
            api-version: 2014-04-01-preview
            extensionResourceName: ms.example
            resourceGroupName: VS-Example-Group
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/Microsoft.VisualStudio/account/ExampleAccount/extension/ms.example
                location: Central US
                name: ms.example
                plan:
                  name: ExamplePlan
                  product: ExampleExtensionName
                  promotionCode: ""
                  publisher: ExampleExtensionPublisher
                  version: "1.0"
                properties: {}
                tags: {}
                type: Microsoft.VisualStudio/account/extension
            "404": {}
    patch:
      description: Updates an existing extension registration for the Visual Studio Team Services account.
      operationId: Extensions_Update
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: An object containing additional information related to the extension request.
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/ExtensionResourceRequest"
        - description: The name of the Visual Studio Team Services account resource.
          in: path
          name: accountResourceName
          required: true
          type: string
        - description: The name of the extension.
          in: path
          name: extensionResourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The extension resource was updated for the specified account.
          schema:
            $ref: "#/definitions/ExtensionResource"
      summary: Extensions_Update
      tags:
        - Extensions
      x-ms-examples:
        Update an extension resource:
          parameters:
            accountResourceName: ExampleAccount
            api-version: 2014-04-01-preview
            body:
              location: Central US
              plan:
                name: ExamplePlan
                product: ExampleExtensionName
                promotionCode: ""
                publisher: ExampleExtensionPublisher
                version: "1.0"
              properties: {}
              tags: {}
            extensionResourceName: Example
            resourceGroupName: VS-Example-Group
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/Microsoft.VisualStudio/account/ExampleAccount/extension/ms.example
                location: Central US
                name: ms.example
                plan:
                  name: ExamplePlan
                  product: ExampleExtensionName
                  promotionCode: ""
                  publisher: ExampleExtensionPublisher
                  version: "1.0"
                properties: {}
                tags: {}
                type: Microsoft.VisualStudio/account/extension
    put:
      description: Registers the extension with a Visual Studio Team Services account.
      operationId: Extensions_Create
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: An object containing additional information related to the extension request.
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/ExtensionResourceRequest"
        - description: The name of the Visual Studio Team Services account resource.
          in: path
          name: accountResourceName
          required: true
          type: string
        - description: The name of the extension.
          in: path
          name: extensionResourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The extension resource was created for the specified account.
          schema:
            $ref: "#/definitions/ExtensionResource"
      summary: Extensions_Create
      tags:
        - Extensions
      x-ms-examples:
        Create an extension resource:
          parameters:
            accountResourceName: ExampleAccount
            api-version: 2014-04-01-preview
            body:
              location: Central US
              plan:
                name: ExamplePlan
                product: ExampleExtensionName
                promotionCode: ""
                publisher: ExampleExtensionPublisher
                version: "1.0"
              properties: {}
              tags: {}
            extensionResourceName: ms.example
            resourceGroupName: VS-Example-Group
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/Microsoft.VisualStudio/account/ExampleAccount/extension/ms.example
                location: Central US
                name: ms.example
                plan:
                  name: ExamplePlan
                  product: ExampleExtensionName
                  promotionCode: ""
                  publisher: ExampleExtensionPublisher
                  version: "1.0"
                properties: {}
                tags: {}
                type: Microsoft.VisualStudio/account/extension
  "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.visualstudio/account/{resourceName}":
    delete:
      description: Deletes a Visual Studio Team Services account resource.
      operationId: Accounts_Delete
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: Name of the resource.
          in: path
          name: resourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The Visual Studio Team Services account resource was deleted.
      summary: Accounts_Delete
      tags:
        - Accounts
      x-ms-examples:
        Delete an account resource:
          parameters:
            api-version: 2014-04-01-preview
            resourceGroupName: VS-Example-Group
            resourceName: Example
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200": {}
    get:
      description: Gets the Visual Studio Team Services account resource details.
      operationId: Accounts_Get
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: Name of the resource.
          in: path
          name: resourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The response contains the details of the Visual Studio Team Services account resource.
          schema:
            $ref: "#/definitions/AccountResource"
        "404":
          description: The Visual Studio Team Services account does not exist.
      summary: Accounts_Get
      tags:
        - Accounts
      x-ms-examples:
        Get an account resource:
          parameters:
            api-version: 2014-04-01-preview
            resourceGroupName: VS-Example-Group
            resourceName: Example
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/Microsoft.VisualStudio/account/Example
                location: Central US
                name: VS-Example-Group
                properties:
                  AccountURL: ""
                tags: {}
                type: Microsoft.VisualStudio/account
            "404": {}
    put:
      description: Creates or updates a Visual Studio Team Services account resource.
      operationId: Accounts_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - description: The request data.
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/AccountResourceRequest"
        - description: Name of the resource.
          in: path
          name: resourceName
          required: true
          type: string
      responses:
        "200":
          description: The operation succeeded. The Visual Studio Team Services account resource was created or updated.
          schema:
            $ref: "#/definitions/AccountResource"
        "404":
          description: The Visual Studio Team Services account does not exist.
      summary: Accounts_CreateOrUpdate
      tags:
        - Accounts
      x-ms-examples:
        Create an account resource:
          parameters:
            api-version: 2014-04-01-preview
            body:
              accountName: Example
              location: Central US
              operationType: create
              properties: {}
              tags: {}
            resourceGroupName: VS-Example-Group
            resourceName: Example
            subscriptionId: 0de7f055-dbea-498d-8e9e-da287eedca90
          responses:
            "200":
              body:
                id: /subscriptions/0de7f055-dbea-498d-8e9e-da287eedca90/resourceGroups/VS-Example-Group/providers/Microsoft.VisualStudio/account/Example
                location: Central US
                name: VS-Example-Group
                properties:
                  AccountURL: ""
                tags: {}
                type: Microsoft.VisualStudio/account
            "404": {}
definitions:
  AccountResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The response to an account resource GET request.
    properties:
      properties:
        additionalProperties:
          type: string
        description: Resource properties.
        type: object
        x-ms-client-flatten: true
    type: object
  AccountResourceListResult:
    description: The response to an account resource list GET request.
    properties:
      value:
        description: Array of resource details.
        items:
          $ref: "#/definitions/AccountResource"
        type: array
    type: object
  AccountResourceRequest:
    description: The body of a PUT request to modify a Visual Studio account resource.
    properties:
      accountName:
        description: The account name.
        type: string
      location:
        description: The Azure instance location.
        type: string
      operationType:
        description: The type of the operation.
        enum:
          - unknown
          - create
          - update
          - link
        x-ms-enum:
          name: AccountResourceRequestOperationType
      properties:
        additionalProperties:
          type: string
        description: The custom properties of the resource.
        type: object
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: The custom tags of the resource.
        type: object
    type: object
  ApplicationSource:
    description: Defines the source application for a VSTS pipeline.
    discriminator: sourceType
    properties:
      applicationConfiguration:
        additionalProperties:
          type: string
        description: Application specific properties.
        type: object
      applicationType:
        description: Type of application.
        enum:
          - AspDotNet
          - AspDotNetCore
          - NodeJs
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationType
      sourceType:
        description: Type of application source.
        enum:
          - CodeTemplate
          - CodeRepository
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationSourceType
    required:
      - sourceType
      - applicationType
    type: object
  ApplicationTarget:
    description: Defines the target resources for a VSTS pipeline.
    properties:
      resources:
        description: List of target resources.
        items:
          $ref: "#/definitions/TargetResource"
        type: array
      targetType:
        description: Type of target.
        enum:
          - WindowsAppService
        type: string
        x-ms-enum:
          modelAsString: true
          name: ApplicationTargetType
    required:
      - targetType
      - resources
    type: object
  Authorization:
    description: Defines the authorization type and its parameters.
    properties:
      authorizationType:
        description: Type of authorization.
        enum:
          - authorizationToken
          - personalAccessToken
        type: string
        x-ms-enum:
          modelAsString: true
          name: AuthorizationType
      parameters:
        additionalProperties:
          type: string
        description: Authorization parameters corresponding to the authorization type.
        type: object
    required:
      - authorizationType
    type: object
  CheckNameAvailabilityParameter:
    description: The body of a POST request to check name availability.
    properties:
      resourceName:
        description: The name of the resource to check availability for.
        type: string
      resourceType:
        description: The type of resource to check availability for.
        type: string
    type: object
  CheckNameAvailabilityResult:
    description: The response to a name availability request.
    properties:
      message:
        description: The message describing the detailed reason.
        type: string
      nameAvailable:
        description: The value which indicates whether the provided name is available.
        type: boolean
    type: object
  CodeRepository:
    description: Defines a code repository.
    properties:
      authorizationReference:
        description: Reference to the authorization info used to access the code repository. This value is used as a key into the global authorization details dictionary.
        type: string
      defaultBranch:
        description: Default branch for which continuous integration should be configured in the VSTS pipeline.
        type: string
      id:
        description: Unique identifier of the code repository.
        type: string
      properties:
        additionalProperties:
          type: string
        description: Repository-specific properties.
        type: object
      repositoryType:
        description: Type of code repository.
        enum:
          - gitHub
          - vstsGit
        type: string
        x-ms-enum:
          modelAsString: true
          name: CodeRepositoryType
    required:
      - repositoryType
      - id
      - defaultBranch
    type: object
  CodeRepositoryApplicationSource:
    allOf:
      - $ref: "#/definitions/ApplicationSource"
    description: Defines the source application, when it resides in a code repository.
    properties:
      repository:
        $ref: "#/definitions/CodeRepository"
        description: Code repository where the application source resides.
    required:
      - repository
    type: object
    x-ms-discriminator-value: CodeRepository
  CodeTemplateApplicationSource:
    allOf:
      - $ref: "#/definitions/ApplicationSource"
    description: Defines the source application template.
    type: object
    x-ms-discriminator-value: CodeTemplate
  ExtensionResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: The response to an extension resource GET request.
    properties:
      plan:
        $ref: "#/definitions/ExtensionResourcePlan"
        description: The extension plan that was purchased.
      properties:
        additionalProperties:
          type: string
        description: Resource properties.
        type: object
    type: object
  ExtensionResourceListResult:
    description: The response to an extension resource list GET request.
    properties:
      value:
        description: Array of extension resource details.
        items:
          $ref: "#/definitions/ExtensionResource"
        type: array
    type: object
  ExtensionResourcePlan:
    description: Plan data for an extension resource.
    properties:
      name:
        description: Name of the plan.
        type: string
      product:
        description: Product name.
        type: string
      promotionCode:
        description: "Optional: the promotion code associated with the plan."
        type: string
      publisher:
        description: Name of the extension publisher.
        type: string
      version:
        description: A string that uniquely identifies the plan version.
        type: string
    type: object
  ExtensionResourceRequest:
    description: The body of an extension resource PUT request.
    properties:
      location:
        description: The Azure region of the Visual Studio account associated with this request (i.e 'southcentralus'.)
        type: string
      plan:
        $ref: "#/definitions/ExtensionResourcePlan"
        description: Extended information about the plan being purchased for this extension resource.
      properties:
        additionalProperties:
          type: string
        description: A dictionary of extended properties. This property is currently unused.
        type: object
        x-ms-client-flatten: true
      tags:
        additionalProperties:
          type: string
        description: A dictionary of user-defined tags to be stored with the extension resource.
        type: object
    type: object
  Operation:
    description: Properties of an operation supported by the resource provider.
    properties:
      display:
        $ref: "#/definitions/OperationProperties"
        description: The properties of the resource operation.
      name:
        description: The name of the resource operation.
        type: string
    type: object
  OperationListResult:
    description: Container for a list of operations supported by a resource provider.
    properties:
      value:
        description: A list of operations supported by a resource provider.
        items:
          $ref: "#/definitions/Operation"
        type: array
    type: object
  OperationProperties:
    description: Properties of an operation supported by the resource provider.
    properties:
      description:
        description: The description of the resource operation.
        type: string
      operation:
        description: The operation name.
        type: string
      provider:
        description: The provider name.
        type: string
      resource:
        description: The resource name.
        type: string
    type: object
  PipelineTemplate:
    description: Defines a VSTS pipeline template.
    properties:
      applicationSource:
        $ref: "#/definitions/ApplicationSource"
        description: Source application for the VSTS pipeline.
      applicationTarget:
        $ref: "#/definitions/ApplicationTarget"
        description: Target resources for the VSTS pipeline.
      authorizationDetails:
        additionalProperties:
          $ref: "#/definitions/Authorization"
        description: Global dictionary of authorization details used by the pipeline, with a friendly name as key. Individual resource in the pipeline can reference to a specific authorization info using the friendly name.
        type: object
    required:
      - applicationSource
      - applicationTarget
      - authorizationDetails
    type: object
  ProjectResource:
    allOf:
      - $ref: "#/definitions/Resource"
    description: A Visual Studio Team Services project resource.
    properties:
      kind:
        description: Kind of project resource
        enum:
          - project
          - bootstrappedProject
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProjectResourceKind
      properties:
        $ref: "#/definitions/ProjectResourceProperties"
        description: Custom properties of project resource.
        x-ms-client-flatten: true
    type: object
  ProjectResourceListResult:
    description: The response to a request to list Team Services project resources in a resource group/account.
    properties:
      value:
        description: List of project resource details.
        items:
          $ref: "#/definitions/ProjectResource"
        type: array
    type: object
  ProjectResourceProperties:
    description: Defines the custom properties of project resource.
    properties:
      bootstrapPipelineTemplate:
        $ref: "#/definitions/PipelineTemplate"
        description: Template used to configure a bootstrap pipeline in the VSTS project.
      ownerUpn:
        description: Optional UPN of the owner, on-behalf-of whom the project is being created.
        type: string
      processTemplateId:
        description: Process template to use in the project.
        enum:
          - Scrum
          - Agile
          - Cmmi
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProcessTemplate
      tfsUniqueIdentifier:
        description: Unique identifier of the VSTS project.
        readOnly: true
        type: string
      versionControlOption:
        description: Version control to use for the default repo created in the project.
        enum:
          - Git
          - Tfvc
        type: string
        x-ms-enum:
          modelAsString: true
          name: VersionControlOption
    type: object
  ProjectResourceUpdateParameters:
    description: The parameters to update a project resource.
    properties:
      tags:
        additionalProperties:
          type: string
        description: The custom tags to be set on the resource.
        type: object
    type: object
  Resource:
    description: A generic Azure Resource Manager resource.
    properties:
      id:
        description: Unique identifier of the resource.
        readOnly: true
        type: string
      location:
        description: Resource location.
        type: string
      name:
        description: Resource name.
        readOnly: true
        type: string
      tags:
        additionalProperties:
          type: string
        description: Resource tags.
        type: object
      type:
        description: Resource type.
        readOnly: true
        type: string
    type: object
    x-ms-azure-resource: true
  TargetResource:
    description: Defines a single resource used as target for a VSTS pipeline.
    properties:
      authorizationReference:
        description: Reference to the authorization info used to access the target resource. This value is used as a key into the global authorization details dictionary.
        type: string
      id:
        description: Unique identifier of the target resource.
        type: string
      role:
        description: Role of the target resource.
        type: string
    required:
      - id
      - role
    type: object
