{ "swagger": "2.0", "info": { "title": "Visual Studio Projects Resource Provider Client", "version": "2018-08-01-preview", "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." }, "host": "management.azure.com", "schemes": [ "https" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "securityDefinitions": { "azure_auth": { "type": "oauth2", "description": "Azure Active Directory OAuth2 Flow", "flow": "implicit", "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, "security": [ { "azure_auth": [ "user_impersonation" ] } ], "paths": { "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.visualstudio/account/{rootResourceName}/project": { "get": { "deprecated": true, "tags": [ "Projects" ], "summary": "Projects_ListByAccountResource", "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" }, { "in": "path", "name": "rootResourceName", "description": "Name of the Team Services account.", "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" } } }, "x-ms-examples": { "Get a list of project resources in the Team Services account": { "$ref": "./examples/GetProjectResources_List.json" } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.visualstudio/account/{rootResourceName}/project/{resourceName}": { "put": { "deprecated": true, "tags": [ "Projects" ], "summary": "Projects_CreateOrUpdate", "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": [ { "in": "body", "name": "body", "description": "The request data.", "required": true, "schema": { "$ref": "#/definitions/ProjectResource" } }, { "$ref": "#/parameters/resourceGroupNameParameter" }, { "$ref": "#/parameters/subscriptionIdParameter" }, { "$ref": "#/parameters/apiVersionParameter" }, { "in": "path", "name": "rootResourceName", "description": "Name of the Team Services account.", "required": true, "type": "string" }, { "in": "path", "name": "resourceName", "description": "Name of the Team Services project.", "required": true, "type": "string" }, { "in": "query", "name": "validating", "description": "This parameter is ignored and should be set to an empty string.", "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." } }, "x-ms-long-running-operation": true, "x-ms-examples": { "Create a project resource": { "$ref": "./examples/CreateProjectResource.json" } } }, "get": { "deprecated": true, "tags": [ "Projects" ], "summary": "Projects_Get", "description": "Gets the details of a Team Services project resource.", "operationId": "Projects_Get", "parameters": [ { "$ref": "#/parameters/resourceGroupNameParameter" }, { "$ref": "#/parameters/subscriptionIdParameter" }, { "$ref": "#/parameters/apiVersionParameter" }, { "in": "path", "name": "rootResourceName", "description": "Name of the Team Services account.", "required": true, "type": "string" }, { "in": "path", "name": "resourceName", "description": "Name of the Team Services project.", "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." } }, "x-ms-examples": { "Get a project resource": { "$ref": "./examples/GetProjectResource.json" } } }, "patch": { "deprecated": true, "tags": [ "Projects" ], "summary": "Projects_Update", "description": "Updates the tags of the specified Team Services project.", "operationId": "Projects_Update", "parameters": [ { "$ref": "#/parameters/resourceGroupNameParameter" }, { "$ref": "#/parameters/subscriptionIdParameter" }, { "$ref": "#/parameters/apiVersionParameter" }, { "in": "body", "name": "body", "description": "The request data.", "required": true, "schema": { "$ref": "#/definitions/ProjectResourceUpdateParameters" } }, { "in": "path", "name": "rootResourceName", "description": "Name of the Team Services account.", "required": true, "type": "string" }, { "in": "path", "name": "resourceName", "description": "Name of the Team Services project.", "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" } } }, "x-ms-examples": { "Update a project resource": { "$ref": "./examples/UpdateProjectResource.json" } } } } }, "definitions": { "PipelineBootstrapConfiguration": { "description": "Defines bootstrap configuration for a CI/CD pipeline.", "type": "object", "properties": { "name": { "description": "Name of the bootstrap configuration.", "type": "string" }, "templateId": { "description": "Identifier of the pipeline template used for configuring pipeline.", "type": "string" }, "templateParameters": { "description": "Dictionary of inputs used for configuring pipeline. The keys for inputs are defined by pipeline template.", "type": "object", "additionalProperties": { "type": "string" } }, "repository": { "description": "Code repository where the application source resides.", "$ref": "#/definitions/CodeRepository" } }, "required": [ "name", "templateId" ] }, "Resource": { "description": "A generic Azure Resource Manager resource.", "x-ms-azure-resource": true, "type": "object", "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": { "description": "Resource tags.", "type": "object", "additionalProperties": { "type": "string" } }, "type": { "description": "Resource type.", "readOnly": true, "type": "string" } } }, "ProjectResource": { "description": "A Visual Studio Team Services project resource.", "type": "object", "allOf": [ { "$ref": "#/definitions/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.", "type": "string", "enum": [ "project", "bootstrappedProject" ], "x-ms-enum": { "name": "ProjectResourceKind", "modelAsString": true } }, "properties": { "description": "Custom properties of project resource.", "$ref": "#/definitions/ProjectResourceProperties", "x-ms-client-flatten": true } } }, "ProjectResourceProperties": { "description": "Defines the custom properties of project resource.", "type": "object", "properties": { "processTemplateId": { "description": "Process template to use in the project.", "type": "string", "enum": [ "Scrum", "Agile", "Cmmi" ], "x-ms-enum": { "name": "ProcessTemplate", "modelAsString": true } }, "versionControlOption": { "description": "Version control to use for the default repo created in the project.", "type": "string", "enum": [ "Git", "Tfvc" ], "x-ms-enum": { "name": "VersionControlOption", "modelAsString": true } }, "ownerUpn": { "description": "Optional UPN of the owner, on-behalf-of whom the project is being created.", "type": "string" }, "tfsUniqueIdentifier": { "description": "Unique identifier of the VSTS project.", "readOnly": true, "type": "string" }, "bootstrapPipelineTemplate": { "description": "Template used to configure a bootstrap pipeline in the VSTS project. Note: this is being deprecated. Use pipelineConfigurationBootstrappers instead.", "$ref": "#/definitions/PipelineTemplateLegacy" }, "pipelineBootstrapConfigurations": { "description": "Bootstrap configuration for pipelines in Team Project.", "type": "array", "items": { "$ref": "#/definitions/PipelineBootstrapConfiguration" } } } }, "PipelineTemplateLegacy": { "description": "Defines a VSTS pipeline template.", "type": "object", "properties": { "applicationSource": { "description": "Source application for the VSTS pipeline.", "$ref": "#/definitions/ApplicationSource" }, "applicationTarget": { "description": "Target resources for the VSTS pipeline.", "$ref": "#/definitions/ApplicationTarget" }, "authorizationDetails": { "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", "additionalProperties": { "$ref": "#/definitions/Authorization" } } }, "required": [ "applicationSource", "applicationTarget", "authorizationDetails" ] }, "ApplicationSource": { "description": "Defines the source application for a VSTS pipeline.", "type": "object", "discriminator": "sourceType", "properties": { "sourceType": { "description": "Type of application source.", "type": "string", "enum": [ "CodeTemplate", "CodeRepository" ], "x-ms-enum": { "name": "ApplicationSourceType", "modelAsString": true } }, "applicationType": { "description": "Type of application.", "type": "string", "enum": [ "AspDotNet", "AspDotNetCore", "NodeJs" ], "x-ms-enum": { "name": "ApplicationType", "modelAsString": true } }, "applicationConfiguration": { "description": "Application specific properties.", "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "sourceType", "applicationType" ] }, "CodeTemplateApplicationSource": { "x-ms-discriminator-value": "CodeTemplate", "description": "Defines the source application template.", "type": "object", "allOf": [ { "$ref": "#/definitions/ApplicationSource" } ] }, "CodeRepositoryApplicationSource": { "x-ms-discriminator-value": "CodeRepository", "description": "Defines the source application, when it resides in a code repository.", "type": "object", "properties": { "repository": { "description": "Code repository where the application source resides.", "$ref": "#/definitions/CodeRepositoryLegacy" } }, "allOf": [ { "$ref": "#/definitions/ApplicationSource" } ], "required": [ "repository" ] }, "CodeRepository": { "description": "Defines a code repository.", "type": "object", "properties": { "repositoryType": { "description": "Type of code repository.", "type": "string", "enum": [ "gitHub", "vstsGit" ], "x-ms-enum": { "name": "CodeRepositoryType", "modelAsString": true } }, "id": { "description": "Unique identifier of the code repository.", "type": "string" }, "defaultBranch": { "description": "Default branch for which continuous integration should be configured in the VSTS pipeline.", "type": "string" }, "authorization": { "description": "Authorization info to access code repository", "$ref": "#/definitions/Authorization" }, "properties": { "description": "Repository-specific properties.", "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "repositoryType", "id", "defaultBranch" ] }, "CodeRepositoryLegacy": { "description": "Defines a code repository.", "type": "object", "properties": { "repositoryType": { "description": "Type of code repository.", "type": "string", "enum": [ "gitHub", "vstsGit" ], "x-ms-enum": { "name": "CodeRepositoryType", "modelAsString": true } }, "id": { "description": "Unique identifier of the code repository.", "type": "string" }, "defaultBranch": { "description": "Default branch for which continuous integration should be configured in the VSTS pipeline.", "type": "string" }, "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" }, "properties": { "description": "Repository-specific properties.", "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "repositoryType", "id", "defaultBranch" ] }, "ApplicationTarget": { "description": "Defines the target resources for a VSTS pipeline.", "type": "object", "properties": { "targetType": { "description": "Type of target.", "type": "string", "enum": [ "WindowsAppService" ], "x-ms-enum": { "name": "ApplicationTargetType", "modelAsString": true } }, "resources": { "description": "List of target resources.", "type": "array", "items": { "$ref": "#/definitions/TargetResource" } } }, "required": [ "targetType", "resources" ] }, "TargetResource": { "description": "Defines a single resource used as target for a VSTS pipeline.", "type": "object", "properties": { "id": { "description": "Unique identifier of the target resource.", "type": "string" }, "role": { "description": "Role of the target resource.", "type": "string" }, "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" } }, "required": [ "id", "role" ] }, "Authorization": { "description": "Defines the authorization type and its parameters.", "type": "object", "properties": { "authorizationType": { "description": "Type of authorization.", "type": "string", "enum": [ "authorizationToken", "personalAccessToken" ], "x-ms-enum": { "name": "AuthorizationType", "modelAsString": true } }, "parameters": { "description": "Authorization parameters corresponding to the authorization type.", "type": "object", "additionalProperties": { "type": "string" } } }, "required": [ "authorizationType" ] }, "ProjectResourceListResult": { "description": "The response to a request to list Team Services project resources in a resource group/account.", "type": "object", "properties": { "value": { "description": "List of project resource details.", "type": "array", "items": { "$ref": "#/definitions/ProjectResource" } } } }, "ProjectResourceUpdateParameters": { "description": "The parameters to update a project resource.", "type": "object", "properties": { "tags": { "description": "The custom tags to be set on the resource.", "type": "object", "additionalProperties": { "type": "string" } }, "properties": { "description": "Custom properties of project resource.", "type": "object", "properties": { "pipelineBootstrapConfigurations": { "description": "Bootstrap configurations for pipelines in Team Project.", "type": "array", "items": { "$ref": "#/definitions/PipelineBootstrapConfiguration" } } } } } } }, "parameters": { "subscriptionIdParameter": { "name": "subscriptionId", "in": "path", "description": "The Azure subscription identifier.", "required": true, "type": "string" }, "resourceGroupNameParameter": { "name": "resourceGroupName", "in": "path", "required": true, "type": "string", "x-ms-parameter-location": "method", "description": "Name of the resource group within the Azure subscription." }, "apiVersionParameter": { "name": "api-version", "in": "query", "description": "API Version", "required": true, "type": "string" } } }