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 Projects Resource Provider Client
  version: 2018-08-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/2018-08-01-preview/Projects.json
      version: "2.0"
  x-providerName: azure.com
  x-serviceName: visualstudio-Projects
  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:
  "/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: Projects_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: 2018-08-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:
                      pipelineBootstrapConfigurations:
                        - name: ExampleApplicationDeployPipelineConfiguration
                          templateId: ms-portal-extension-nodejsAppOnWindowsWebApp
                          templateParameters:
                            azureAuth: null
                            servicePlanTier: Standard
                            webAppName: ExampleWebApp
                      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: 2018-08-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:
                  pipelineBootstrapConfigurations:
                    - name: ExampleApplicationDeployPipelineConfiguration
                      templateId: ms-portal-extension-nodejsAppOnWindowsWebApp
                      templateParameters:
                        azureAuth: null
                        servicePlanTier: Standard
                        webAppName: ExampleWebApp
                  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: 2018-08-01-preview
            body:
              properties:
                pipelineBootstrapConfigurations:
                  - name: ExampleApplicationDeployPipelineConfiguration2
                    templateId: ms-portal-extension-nodejsAppOnLinuxWebApp
                    templateParameters:
                      azureAuth: <SPN_Details>
                      servicePlanTier: Standard
                      webAppName: ExampleWebApp2
              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:
                  pipelineBootstrapConfigurations:
                    - name: ExampleApplicationDeployPipelineConfiguration
                      templateId: ms-portal-extension-nodejsAppOnWindowsWebApp
                      templateParameters:
                        azureAuth: null
                        servicePlanTier: Standard
                        webAppName: ExampleWebApp
                    - name: ExampleApplicationDeployPipelineConfiguration2
                      templateId: ms-portal-extension-nodejsAppOnLinuxWebApp
                      templateParameters:
                        azureAuth: null
                        servicePlanTier: Standard
                        webAppName: ExampleWebApp2
                  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 or updates 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_CreateOrUpdate
      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/update the team project resource has been queued. The URI to monitor the status of the job is provided in the 'location' header.
      summary: Projects_CreateOrUpdate
      tags:
        - Projects
      x-ms-examples:
        Create a project resource:
          parameters:
            api-version: 2018-08-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:
                pipelineBootstrapConfigurations:
                  - name: ExampleApplicationDeployPipelineConfiguration
                    templateId: ms-portal-extension-nodejsAppOnWindowsWebApp
                    templateParameters:
                      azureAuth: <SPN_Details>
                      servicePlanTier: Standard
                      webAppName: ExampleWebApp
                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:
                  pipelineBootstrapConfigurations:
                    - name: ExampleApplicationDeployPipelineConfiguration
                      templateId: ms-portal-extension-nodejsAppOnWindowsWebApp
                      templateParameters:
                        azureAuth: null
                        servicePlanTier: Standard
                        webAppName: ExampleWebApp
                  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=2018-05-01-preview&jobId=126167d2-d710-4b5d-80a8-a1d58717142d&operation=put
                retry-after: "5"
      x-ms-long-running-operation: true
definitions:
  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
  CodeRepository:
    description: Defines a code repository.
    properties:
      authorization:
        $ref: "#/definitions/Authorization"
        description: Authorization info to access code repository
      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/CodeRepositoryLegacy"
        description: Code repository where the application source resides.
    required:
      - repository
    type: object
    x-ms-discriminator-value: CodeRepository
  CodeRepositoryLegacy:
    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
  CodeTemplateApplicationSource:
    allOf:
      - $ref: "#/definitions/ApplicationSource"
    description: Defines the source application template.
    type: object
    x-ms-discriminator-value: CodeTemplate
  PipelineBootstrapConfiguration:
    description: Defines bootstrap configuration for a CI/CD pipeline.
    properties:
      name:
        description: Name of the bootstrap configuration.
        type: string
      repository:
        $ref: "#/definitions/CodeRepository"
        description: Code repository where the application source resides.
      templateId:
        description: Identifier of the pipeline template used for configuring pipeline.
        type: string
      templateParameters:
        additionalProperties:
          type: string
        description: Dictionary of inputs used for configuring pipeline. The keys for inputs are defined by pipeline template.
        type: object
    required:
      - name
      - templateId
    type: object
  PipelineTemplateLegacy:
    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. A bootStrappedProject is a project which has additional bootstrap information to create a CI/CD pipeline in the project.
        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/PipelineTemplateLegacy"
        description: "Template used to configure a bootstrap pipeline in the VSTS project. Note: this is being deprecated. Use pipelineConfigurationBootstrappers instead."
      ownerUpn:
        description: Optional UPN of the owner, on-behalf-of whom the project is being created.
        type: string
      pipelineBootstrapConfigurations:
        description: Bootstrap configuration for pipelines in Team Project.
        items:
          $ref: "#/definitions/PipelineBootstrapConfiguration"
        type: array
      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:
      properties:
        description: Custom properties of project resource.
        properties:
          pipelineBootstrapConfigurations:
            description: Bootstrap configurations for pipelines in Team Project.
            items:
              $ref: "#/definitions/PipelineBootstrapConfiguration"
            type: array
        type: object
      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.
        readOnly: true
        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
