Azure DevOps Work Item Tracking 7.2-preview

This reference is readable without JavaScript. Download the OpenAPI document.

Runtime

/api/purple-suite/{instanceId}/contracts/pm/azuredevops
[
  {
    "method": "get",
    "path": "/:organization/_apis/wit/artifactlinktypes",
    "operationId": "Artifact Link Types_List"
  },
  {
    "method": "get",
    "path": "/:organization/_apis/wit/workitemicons",
    "operationId": "Work Item Icons_List"
  },
  {
    "method": "get",
    "path": "/:organization/_apis/wit/workitemicons/:icon",
    "operationId": "Work Item Icons_Get"
  },
  {
    "method": "get",
    "path": "/:organization/_apis/wit/workitemrelationtypes",
    "operationId": "Work Item Relation Types_List"
  },
  {
    "method": "get",
    "path": "/:organization/_apis/wit/workitemrelationtypes/:relation",
    "operationId": "Work Item Relation Types_Get"
  },
  {
    "method": "get",
    "path": "/:organization/_apis/wit/workitemtransitions",
    "operationId": "Work Item Transitions_List"
  },
  {
    "method": "get",
    "path": "/:organization/_apis/work/accountmyworkrecentactivity",
    "operationId": "Account My Work Recent Activity_List"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/githubconnections",
    "operationId": "Github Connections_Get Github Connections"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/githubconnections/:connectionId/repos",
    "operationId": "Github Connections_Get Github Connection Repositories"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/githubconnections/:connectionId/reposBatch",
    "operationId": "Github Connections_Update"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/artifacturiquery",
    "operationId": "Artifact Uri Query_Query"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/attachments",
    "operationId": "Attachments_Create"
  },
  {
    "method": "delete",
    "path": "/:organization/:project/_apis/wit/attachments/:id",
    "operationId": "Attachments_Delete"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/attachments/:id",
    "operationId": "Attachments_Get"
  },
  {
    "method": "put",
    "path": "/:organization/:project/_apis/wit/attachments/:id",
    "operationId": "Attachments_Upload Chunk"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/classificationnodes",
    "operationId": "Classification Nodes_Get Root Nodes"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/classificationnodes/:structureGroup/:path",
    "operationId": "Classification Nodes_Create Or Update"
  },
  {
    "method": "delete",
    "path": "/:organization/:project/_apis/wit/classificationnodes/:structureGroup/:path",
    "operationId": "Classification Nodes_Delete"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/classificationnodes/:structureGroup/:path",
    "operationId": "Classification Nodes_Get"
  },
  {
    "method": "patch",
    "path": "/:organization/:project/_apis/wit/classificationnodes/:structureGroup/:path",
    "operationId": "Classification Nodes_Update"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/fields",
    "operationId": "Fields_Create"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/fields",
    "operationId": "Fields_List"
  },
  {
    "method": "delete",
    "path": "/:organization/:project/_apis/wit/fields/:fieldNameOrRefName",
    "operationId": "Fields_Delete"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/fields/:fieldNameOrRefName",
    "operationId": "Fields_Get"
  },
  {
    "method": "patch",
    "path": "/:organization/:project/_apis/wit/fields/:fieldNameOrRefName",
    "operationId": "Fields_Update"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/projectprocessmigration",
    "operationId": "Project Process Migration_Migrate Projects Process"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/queries",
    "operationId": "Queries_List"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/queries/:query",
    "operationId": "Queries_Create"
  },
  {
    "method": "delete",
    "path": "/:organization/:project/_apis/wit/queries/:query",
    "operationId": "Queries_Delete"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/queries/:query",
    "operationId": "Queries_Get"
  },
  {
    "method": "patch",
    "path": "/:organization/:project/_apis/wit/queries/:query",
    "operationId": "Queries_Update"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/queriesbatch",
    "operationId": "Queries_Get Queries Batch"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/recyclebin",
    "operationId": "Recyclebin_Get Deleted Work Item Shallow References"
  },
  {
    "method": "delete",
    "path": "/:organization/:project/_apis/wit/recyclebin/:id",
    "operationId": "Recyclebin_Destroy Work Item"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/recyclebin/:id",
    "operationId": "Recyclebin_Get"
  },
  {
    "method": "patch",
    "path": "/:organization/:project/_apis/wit/recyclebin/:id",
    "operationId": "Recyclebin_Restore Work Item"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/reporting/workitemlinks",
    "operationId": "Reporting Work Item Links_Get"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/reporting/workitemrevisions",
    "operationId": "Reporting Work Item Revisions_Read Reporting Revisions Get"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/reporting/workitemrevisions",
    "operationId": "Reporting Work Item Revisions_Read Reporting Revisions Post"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/reporting/workItemRevisions/discussions",
    "operationId": "Work Item Revisions Discussions_Read Reporting Discussions"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/sendmail",
    "operationId": "Send Mail_Send Mail"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/tags",
    "operationId": "Tags_List"
  },
  {
    "method": "delete",
    "path": "/:organization/:project/_apis/wit/tags/:tagIdOrName",
    "operationId": "Tags_Delete"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/tags/:tagIdOrName",
    "operationId": "Tags_Get"
  },
  {
    "method": "patch",
    "path": "/:organization/:project/_apis/wit/tags/:tagIdOrName",
    "operationId": "Tags_Update"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/tempqueries",
    "operationId": "Temp Queries_Create"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workitems",
    "operationId": "Work Items_List"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/workitems/$:type",
    "operationId": "Work Items_Create"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workitems/$:type",
    "operationId": "Work Items_Get Work Item Template"
  },
  {
    "method": "delete",
    "path": "/:organization/:project/_apis/wit/workitems/:id",
    "operationId": "Work Items_Delete"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workitems/:id",
    "operationId": "Work Items_Get Work Item"
  },
  {
    "method": "patch",
    "path": "/:organization/:project/_apis/wit/workitems/:id",
    "operationId": "Work Items_Update"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workItems/:id/revisions",
    "operationId": "Revisions_List"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workItems/:id/revisions/:revisionNumber",
    "operationId": "Revisions_Get"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workItems/:id/updates",
    "operationId": "Updates_List"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workItems/:id/updates/:updateNumber",
    "operationId": "Updates_Get"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments",
    "operationId": "Comments_Add Comment"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments",
    "operationId": "Comments_Get Comments Batch"
  },
  {
    "method": "delete",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments/:commentId",
    "operationId": "Comments_Delete"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments/:commentId",
    "operationId": "Comments_Get Comment"
  },
  {
    "method": "patch",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments/:commentId",
    "operationId": "Comments_Update Comment"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments/:commentId/reactions",
    "operationId": "Comments Reactions_List"
  },
  {
    "method": "put",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments/:commentId/reactions/:reactionType",
    "operationId": "Comments Reactions_Create"
  },
  {
    "method": "delete",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments/:commentId/reactions/:reactionType",
    "operationId": "Comments Reactions_Delete"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments/:commentId/reactions/:reactionType/users",
    "operationId": "Comment Reactions Engaged Users_List"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments/:commentId/versions",
    "operationId": "Comments Versions_List"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workItems/:workItemId/comments/:commentId/versions/:version",
    "operationId": "Comments Versions_Get"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/workitemsbatch",
    "operationId": "Work Items_Get Work Items Batch"
  },
  {
    "method": "post",
    "path": "/:organization/:project/_apis/wit/workitemsdelete",
    "operationId": "Work Items_Delete Work Items"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workitemtypecategories",
    "operationId": "Work Item Type Categories_List"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workitemtypecategories/:category",
    "operationId": "Work Item Type Categories_Get"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workitemtypes",
    "operationId": "Work Item Types_List"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workitemtypes/:type",
    "operationId": "Work Item Types_Get"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workitemtypes/:type/fields",
    "operationId": "Work Item Types Field_List"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workitemtypes/:type/fields/:field",
    "operationId": "Work Item Types Field_Get"
  },
  {
    "method": "get",
    "path": "/:organization/:project/_apis/wit/workitemtypes/:type/states",
    "operationId": "Work Item Type States_List"
  },
  {
    "method": "post",
    "path": "/:organization/:project/:team/_apis/wit/templates",
    "operationId": "Templates_Create"
  },
  {
    "method": "get",
    "path": "/:organization/:project/:team/_apis/wit/templates",
    "operationId": "Templates_List"
  },
  {
    "method": "delete",
    "path": "/:organization/:project/:team/_apis/wit/templates/:templateId",
    "operationId": "Templates_Delete"
  },
  {
    "method": "get",
    "path": "/:organization/:project/:team/_apis/wit/templates/:templateId",
    "operationId": "Templates_Get"
  },
  {
    "method": "put",
    "path": "/:organization/:project/:team/_apis/wit/templates/:templateId",
    "operationId": "Templates_Replace Template"
  },
  {
    "method": "post",
    "path": "/:organization/:project/:team/_apis/wit/wiql",
    "operationId": "Wiql_Query By Wiql"
  },
  {
    "method": "head",
    "path": "/:organization/:project/:team/_apis/wit/wiql/:id",
    "operationId": "Wiql_Get"
  },
  {
    "method": "get",
    "path": "/:organization/:project/:team/_apis/wit/wiql/:id",
    "operationId": "Wiql_Query By Id"
  }
]

Credentials

Coverage and limitations

{
  "documentScope": "full",
  "runtimeFidelity": "mixed",
  "counts": {
    "operations": 84,
    "types": 105
  },
  "notes": [
    "All 84 operations in the pinned 7.2-preview document are published and mounted: 67 modeled, 12 modeled-core, 5 unavailable. Nothing is omitted to make exactness pass.",
    "The five unavailable operations (send mail, project process migration, and the three GitHub connection operations) reach services outside PurpleSuite. Each validates its request and returns the vendor's error envelope; none fabricates a success or mutates state.",
    "Multi-segment values for the {path} and {query} route parameters must be percent-encoded. Azure DevOps also accepts them unencoded across path segments; a painted route is one Express path and cannot express both.",
    "An instance hosts one organization, one project and one team. The {organization}, {project} and {team} route parameters are validated against them; any other value is a 404, never an empty 200.",
    "Queries_Update renames a query and, for a folder, moves its descendants with it in one transaction; a rename onto an existing sibling path is a 409. Reparenting a query by supplying a new path is not modeled.",
    "A chunked attachment upload requires a Content-Range on every chunk and validates it against the bytes actually sent, the declared total, and the total the upload started from. The attachment stays unreadable until exactly that many bytes have arrived.",
    "The UI and the API share one persistent per-instance work item store and use the vendor's Basic transport, paths and api-version gating."
  ]
}

Servers

[
  {
    "url": "/api/purple-suite/{instanceId}/contracts/pm/azuredevops",
    "variables": {
      "instanceId": {
        "default": "instance-id"
      }
    }
  }
]

Authentication schemes

{
  "accessToken": {
    "type": "http",
    "scheme": "basic",
    "description": "Personal access token. Use any value for the user name and the token as the password. In PurpleSuite the instance key takes the personal access token's place; the transport is the vendor's."
  },
  "oauth2": {
    "type": "oauth2",
    "description": "Microsoft's OAuth 2.0 authorization code flow. The authorization and token endpoints belong to Microsoft's identity service and are not hosted by PurpleSuite; this scheme is published for contract completeness and cannot be used against this paint.",
    "flows": {
      "authorizationCode": {
        "authorizationUrl": "https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion",
        "tokenUrl": "https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer",
        "scopes": {
          "vso.githubconnections_manage": "Grants the ability to read and manage github connections and github repositories data",
          "vso.githubconnections": "Grants the ability to read github connections and github repositories data",
          "vso.work": "Grants the ability to read work items, queries, boards, area and iterations paths, and other work item tracking related metadata. Also grants the ability to execute queries, search work items and to receive notifications about work item events via service hooks.",
          "vso.work_write": "Grants the ability to read, create, and update work items and queries, update board metadata, read area and iterations paths other work item tracking related metadata, execute queries, and to receive notifications about work item events via service hooks.",
          "vso.work_full": "Grants full access to work items, queries, backlogs, plans, and work item tracking metadata. Also provides the ability to receive notifications about work item events via service hooks."
        }
      }
    }
  }
}

Each operation lists its security requirements. An empty security array permits an unauthenticated request. Use the scheme and headers declared for the selected contract.

Operations

GET /{organization}/_apis/wit/artifactlinktypes

Get the list of work item tracking outbound artifact link types.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Artifact Link Types"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "artifactLinkTypes",
  "x-ms-vss-method": "GetWorkArtifactLinkTypes",
  "x-ms-preview": true,
  "description": "Get the list of work item tracking outbound artifact link types.",
  "operationId": "Artifact Link Types_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkArtifactLink"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/_apis/wit/workitemicons

Get a list of all work item icons.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Icons"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "workItemIcons",
  "x-ms-vss-method": "GetWorkItemIcons",
  "x-ms-preview": true,
  "description": "Get a list of all work item icons.",
  "operationId": "Work Item Icons_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemIcon"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/_apis/wit/workitemicons/{icon}

Get a work item icon given the friendly name and icon color.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Icons"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "workItemIcons",
  "x-ms-vss-method": "GetWorkItemIcon",
  "x-ms-preview": true,
  "description": "Get a work item icon given the friendly name and icon color.",
  "operationId": "Work Item Icons_Get",
  "parameters": [
    {
      "in": "path",
      "name": "icon",
      "description": "The name of the icon",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "color",
      "description": "The 6-digit hex color for the icon",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "v",
      "description": "The version of the icon (used only for cache invalidation)",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "image/svg+xml": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemIcon"
          }
        },
        "image/xaml+xml": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemIcon"
          }
        },
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemIcon"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/_apis/wit/workitemrelationtypes

Gets the work item relation types.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Relation Types"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "workItemRelationTypes",
  "x-ms-vss-method": "GetRelationTypes",
  "x-ms-preview": true,
  "description": "Gets the work item relation types.",
  "operationId": "Work Item Relation Types_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemRelationType"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/_apis/wit/workitemrelationtypes/{relation}

Gets the work item relation type definition.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Relation Types"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "workItemRelationTypes",
  "x-ms-vss-method": "GetRelationType",
  "x-ms-preview": true,
  "description": "Gets the work item relation type definition.",
  "operationId": "Work Item Relation Types_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "relation",
      "description": "The relation name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemRelationType"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/_apis/wit/workitemtransitions

Returns the next state on the given work item IDs.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Transitions"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "workItemTransitions",
  "x-ms-vss-method": "GetWorkItemNextStatesOnCheckinAction",
  "x-ms-preview": true,
  "description": "Returns the next state on the given work item IDs.",
  "operationId": "Work Item Transitions_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "ids",
      "description": "list of work item ids",
      "required": true,
      "schema": {
        "type": "string",
        "description": "Vendor format: array (int32)"
      }
    },
    {
      "in": "query",
      "name": "action",
      "description": "possible actions. Currently only supports checkin",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemNextStateOnTransition"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/_apis/work/accountmyworkrecentactivity

Gets recent work item activities **PurpleSuite executable core.** Derived from the authenticated user's activity inside this instance. The vendor aggregates across every organization the user belongs to, which has no local equivalent. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Account My Work Recent Activity"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "accountMyWorkRecentActivity",
  "x-ms-vss-method": "GetRecentActivityData",
  "x-ms-preview": true,
  "description": "Gets recent work item activities\n\n**PurpleSuite executable core.** Derived from the authenticated user's activity inside this instance. The vendor aggregates across every organization the user belongs to, which has no local equivalent. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Account My Work Recent Activity_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AccountRecentActivityWorkItemModel2"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core"
}

GET /{organization}/{project}/_apis/githubconnections

Gets a list of github connections **Not available in PurpleSuite.** GitHub connections are read from GitHub through an organization's GitHub App installation, which is external to PurpleSuite. The request is still validated and the vendor's error envelope is returned; no state changes and no success is fabricated.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Github Connections"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "githubConnections",
  "x-ms-vss-method": "GetGithubConnections",
  "x-ms-preview": true,
  "description": "Gets a list of github connections\n\n**Not available in PurpleSuite.** GitHub connections are read from GitHub through an organization's GitHub App installation, which is external to PurpleSuite. The request is still validated and the vendor's error envelope is returned; no state changes and no success is fabricated.",
  "operationId": "Github Connections_Get Github Connections",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GitHubConnectionModel"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "unavailable"
}

GET /{organization}/{project}/_apis/githubconnections/{connectionId}/repos

Gets a list of repos within specified github connection. **Not available in PurpleSuite.** Repositories behind a GitHub connection are read from GitHub, which is external to PurpleSuite. The request is still validated and the vendor's error envelope is returned; no state changes and no success is fabricated.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Github Connections"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "githubConnections",
  "x-ms-vss-method": "GetGithubConnectionRepositories",
  "x-ms-preview": true,
  "description": "Gets a list of repos within specified github connection.\n\n**Not available in PurpleSuite.** Repositories behind a GitHub connection are read from GitHub, which is external to PurpleSuite. The request is still validated and the vendor's error envelope is returned; no state changes and no success is fabricated.",
  "operationId": "Github Connections_Get Github Connection Repositories",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "connectionId",
      "description": "",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GitHubConnectionRepoModel"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "unavailable"
}

POST /{organization}/{project}/_apis/githubconnections/{connectionId}/reposBatch

Add/remove list of repos within specified github connection. **Not available in PurpleSuite.** Changing the repository set of a GitHub connection mutates state held by GitHub, which is external to PurpleSuite. The request is still validated and the vendor's error envelope is returned; no state changes and no success is fabricated.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Github Connections"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "githubConnections",
  "x-ms-vss-method": "UpdateGithubConnectionRepos",
  "x-ms-preview": true,
  "description": "Add/remove list of repos within specified github connection.\n\n**Not available in PurpleSuite.** Changing the repository set of a GitHub connection mutates state held by GitHub, which is external to PurpleSuite. The request is still validated and the vendor's error envelope is returned; no state changes and no success is fabricated.",
  "operationId": "Github Connections_Update",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "connectionId",
      "description": "",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/GitHubConnectionRepoModel"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "unavailable",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/GitHubConnectionReposBatchRequest"
        }
      }
    }
  }
}

POST /{organization}/{project}/_apis/wit/artifacturiquery

Queries work items linked to a given list of artifact URI. **PurpleSuite executable core.** Resolves vstfs:///Git/Commit and vstfs:///Build/Build artifact URIs; other artifact kinds have no local source and are rejected. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Artifact Uri Query"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "artifactUriQuery",
  "x-ms-vss-method": "QueryWorkItemsForArtifactUris",
  "x-ms-preview": true,
  "description": "Queries work items linked to a given list of artifact URI.\n\n**PurpleSuite executable core.** Resolves vstfs:///Git/Commit and vstfs:///Build/Build artifact URIs; other artifact kinds have no local source and are rejected. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Artifact Uri Query_Query",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ArtifactUriQueryResult"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core",
  "requestBody": {
    "required": true,
    "description": "The artifact URIs to resolve to work items.",
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "artifactUris"
          ],
          "additionalProperties": false,
          "properties": {
            "artifactUris": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string",
                "pattern": "^vstfs:///(Git/Commit|Build/Build)/.+$"
              }
            }
          }
        }
      }
    }
  }
}

POST /{organization}/{project}/_apis/wit/attachments

Uploads an attachment. On accounts with higher attachment upload limits (>130MB), you will need to use chunked upload. To upload an attachment in multiple chunks, you first need to [**Start a Chunked Upload**](#start_a_chunked_upload) and then follow the example from the **Upload Chunk** section.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Attachments"
  ],
  "x-ms-docs-override-version": "7.2-preview.4",
  "x-ms-vss-resource": "attachments",
  "x-ms-vss-method": "CreateAttachment",
  "x-ms-preview": true,
  "description": "Uploads an attachment.\n\nOn accounts with higher attachment upload limits (>130MB), you will need to use chunked upload.\nTo upload an attachment in multiple chunks, you first need to [**Start a Chunked Upload**](#start_a_chunked_upload) and then follow the example from the **Upload Chunk** section.",
  "operationId": "Attachments_Create",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "fileName",
      "description": "The name of the file",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "uploadType",
      "description": "Attachment upload type: Simple or Chunked",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "areaPath",
      "description": "Target project Area Path",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.4"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AttachmentReference"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "Stream to upload",
    "required": true,
    "content": {
      "application/octet-stream": {
        "schema": {
          "type": "string",
          "format": "Stream"
        }
      }
    }
  }
}

DELETE /{organization}/{project}/_apis/wit/attachments/{id}

Permanently delete an attachment.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Attachments"
  ],
  "x-ms-docs-override-version": "7.2-preview.4",
  "x-ms-vss-resource": "attachments",
  "x-ms-vss-method": "DeleteAttachment",
  "x-ms-preview": true,
  "description": "Permanently delete an attachment.",
  "operationId": "Attachments_Delete",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "Attachment ID",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.4"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/DestroyedAttachment"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/attachments/{id}

Downloads an attachment.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Attachments"
  ],
  "x-ms-docs-override-version": "7.2-preview.4",
  "x-ms-vss-resource": "attachments",
  "x-ms-vss-method": "GetAttachment",
  "x-ms-preview": true,
  "description": "Downloads an attachment.",
  "operationId": "Attachments_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "Attachment ID",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "fileName",
      "description": "Name of the file",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "download",
      "description": "If set to <c>true</c> always download attachment",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.4"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/octet-stream": {
          "schema": {
            "type": "string",
            "format": "Stream"
          }
        },
        "application/zip": {
          "schema": {
            "type": "string",
            "format": "Stream"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

PUT /{organization}/{project}/_apis/wit/attachments/{id}

Uploads an attachment chunk. Before performing [**Upload a Chunk**](#upload-a-chunk), make sure to have an attachment id returned in **Start a Chunked Upload** example on **Create** section. Specify the byte range of the chunk using Content-Length. For example: "Content - Length": "bytes 0 - 39999 / 50000" for the first 40000 bytes of a 50000 byte file.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Attachments"
  ],
  "x-ms-docs-override-version": "7.2-preview.4",
  "x-ms-vss-resource": "attachments",
  "x-ms-vss-method": "UploadAttachment",
  "x-ms-preview": true,
  "description": "Uploads an attachment chunk.\n\nBefore performing [**Upload a Chunk**](#upload-a-chunk), make sure to have an attachment id returned in **Start a Chunked Upload** example on **Create** section. Specify the byte range of the chunk using Content-Length. For example: \"Content - Length\": \"bytes 0 - 39999 / 50000\" for the first 40000 bytes of a 50000 byte file.",
  "operationId": "Attachments_Upload Chunk",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "The id of the attachment",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "in": "header",
      "name": "contentRangeHeader",
      "description": "starting and ending byte positions for chunked file upload, format is \"Content-Range\": \"bytes 0-10000/50000\"",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "fileName",
      "description": "",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.4"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AttachmentReference"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "Stream to upload",
    "required": true,
    "content": {
      "application/octet-stream": {
        "schema": {
          "type": "string",
          "format": "Stream"
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/classificationnodes

Gets root classification nodes under the project.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Classification Nodes"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "classificationNodes",
  "x-ms-vss-method": "GetRootNodes",
  "x-ms-preview": true,
  "description": "Gets root classification nodes under the project.",
  "operationId": "Classification Nodes_Get Root Nodes",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$depth",
      "description": "Depth of children to fetch.",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemClassificationNode"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

POST /{organization}/{project}/_apis/wit/classificationnodes/{structureGroup}/{path}

Create new or update an existing classification node.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Classification Nodes"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "classificationNodes",
  "x-ms-vss-method": "CreateOrUpdateClassificationNode",
  "x-ms-preview": true,
  "description": "Create new or update an existing classification node.",
  "operationId": "Classification Nodes_Create Or Update",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "structureGroup",
      "description": "Structure group of the classification node, area or iteration.",
      "required": true,
      "x-ms-enum": {
        "name": "TreeStructureGroup",
        "values": [
          {
            "value": "areas",
            "description": ""
          },
          {
            "value": "iterations",
            "description": ""
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "areas",
          "iterations"
        ]
      }
    },
    {
      "in": "path",
      "name": "path",
      "description": "Path of the classification node.",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemClassificationNode"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "Node to create or update.",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WorkItemClassificationNode"
        }
      }
    }
  }
}

DELETE /{organization}/{project}/_apis/wit/classificationnodes/{structureGroup}/{path}

Delete an existing classification node.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Classification Nodes"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "classificationNodes",
  "x-ms-vss-method": "DeleteClassificationNode",
  "x-ms-preview": true,
  "description": "Delete an existing classification node.",
  "operationId": "Classification Nodes_Delete",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "structureGroup",
      "description": "Structure group of the classification node, area or iteration.",
      "required": true,
      "x-ms-enum": {
        "name": "TreeStructureGroup",
        "values": [
          {
            "value": "areas",
            "description": ""
          },
          {
            "value": "iterations",
            "description": ""
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "areas",
          "iterations"
        ]
      }
    },
    {
      "in": "path",
      "name": "path",
      "description": "Path of the classification node.",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$reclassifyId",
      "description": "Id of the target classification node for reclassification.",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation"
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/classificationnodes/{structureGroup}/{path}

Gets the classification node for a given node path.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Classification Nodes"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "classificationNodes",
  "x-ms-vss-method": "GetClassificationNode",
  "x-ms-preview": true,
  "description": "Gets the classification node for a given node path.",
  "operationId": "Classification Nodes_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "structureGroup",
      "description": "Structure group of the classification node, area or iteration.",
      "required": true,
      "x-ms-enum": {
        "name": "TreeStructureGroup",
        "values": [
          {
            "value": "areas",
            "description": ""
          },
          {
            "value": "iterations",
            "description": ""
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "areas",
          "iterations"
        ]
      }
    },
    {
      "in": "path",
      "name": "path",
      "description": "Path of the classification node.",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$depth",
      "description": "Depth of children to fetch.",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemClassificationNode"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

PATCH /{organization}/{project}/_apis/wit/classificationnodes/{structureGroup}/{path}

Update an existing classification node.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Classification Nodes"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "classificationNodes",
  "x-ms-vss-method": "UpdateClassificationNode",
  "x-ms-preview": true,
  "description": "Update an existing classification node.",
  "operationId": "Classification Nodes_Update",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "structureGroup",
      "description": "Structure group of the classification node, area or iteration.",
      "required": true,
      "x-ms-enum": {
        "name": "TreeStructureGroup",
        "values": [
          {
            "value": "areas",
            "description": ""
          },
          {
            "value": "iterations",
            "description": ""
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "areas",
          "iterations"
        ]
      }
    },
    {
      "in": "path",
      "name": "path",
      "description": "Path of the classification node.",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemClassificationNode"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "Node to create or update.",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WorkItemClassificationNode"
        }
      }
    }
  }
}

POST /{organization}/{project}/_apis/wit/fields

Create a new field.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Fields"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "fields",
  "x-ms-vss-method": "CreateWorkItemField",
  "x-ms-preview": true,
  "description": "Create a new field.",
  "operationId": "Fields_Create",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemField2"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "New field definition",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WorkItemField2"
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/fields

Returns information for all fields. The project ID/name parameter is optional.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Fields"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "fields",
  "x-ms-vss-method": "GetWorkItemFields",
  "x-ms-preview": true,
  "description": "Returns information for all fields. The project ID/name parameter is optional.",
  "operationId": "Fields_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "Use ExtensionFields to include extension fields, otherwise exclude them. Unless the feature flag for this parameter is enabled, extension fields are always included.",
      "required": false,
      "x-ms-enum": {
        "name": "GetFieldsExpand",
        "values": [
          {
            "value": "none",
            "description": "Default behavior."
          },
          {
            "value": "extensionFields",
            "description": "Adds extension fields to the response."
          },
          {
            "value": "includeDeleted",
            "description": "Includes fields that have been deleted."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "extensionFields",
          "includeDeleted"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemField2"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

DELETE /{organization}/{project}/_apis/wit/fields/{fieldNameOrRefName}

Deletes the field. To undelete a filed, see "Update Field" API.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Fields"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "fields",
  "x-ms-vss-method": "DeleteWorkItemField",
  "x-ms-preview": true,
  "description": "Deletes the field. To undelete a filed, see \"Update Field\" API.",
  "operationId": "Fields_Delete",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "fieldNameOrRefName",
      "description": "Field simple name or reference name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation"
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/fields/{fieldNameOrRefName}

Gets information on a specific field.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Fields"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "fields",
  "x-ms-vss-method": "GetWorkItemField",
  "x-ms-preview": true,
  "description": "Gets information on a specific field.",
  "operationId": "Fields_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "fieldNameOrRefName",
      "description": "Field simple name or reference name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemField2"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

PATCH /{organization}/{project}/_apis/wit/fields/{fieldNameOrRefName}

Update a field.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Fields"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "fields",
  "x-ms-vss-method": "UpdateWorkItemField",
  "x-ms-preview": true,
  "description": "Update a field.",
  "operationId": "Fields_Update",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "fieldNameOrRefName",
      "description": "Name/reference name of the field to be updated",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemField2"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "Payload contains desired value of the field's properties",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/FieldUpdate"
        }
      }
    }
  }
}

POST /{organization}/{project}/_apis/wit/projectprocessmigration

Migrates a project to a different process within the same OOB type. For example, you can only migrate a project from agile/custom-agile to agile/custom-agile. **Not available in PurpleSuite.** Migrating a project to another process is a tenant-wide asynchronous operation on Microsoft's hosted work item tracking backend. The request is still validated and the vendor's error envelope is returned; no state changes and no success is fabricated.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Project Process Migration"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "projectProcessMigration",
  "x-ms-vss-method": "MigrateProjectsProcess",
  "x-ms-preview": true,
  "description": "Migrates a project to a different process within the same OOB type. For example, you can only migrate a project from agile/custom-agile to agile/custom-agile.\n\n**Not available in PurpleSuite.** Migrating a project to another process is a tenant-wide asynchronous operation on Microsoft's hosted work item tracking backend. The request is still validated and the vendor's error envelope is returned; no state changes and no success is fabricated.",
  "operationId": "Project Process Migration_Migrate Projects Process",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProcessMigrationResultModel"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "unavailable",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProcessIdModel"
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/queries

Gets the root queries and their children

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Queries"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "queries",
  "x-ms-vss-method": "GetQueries",
  "x-ms-preview": true,
  "description": "Gets the root queries and their children",
  "operationId": "Queries_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "Include the query string (wiql), clauses, query result columns, and sort options in the results.",
      "required": false,
      "x-ms-enum": {
        "name": "QueryExpand",
        "values": [
          {
            "value": "none",
            "description": "Expands Columns, Links and ChangeInfo"
          },
          {
            "value": "wiql",
            "description": "Expands Columns, Links,  ChangeInfo and WIQL text"
          },
          {
            "value": "clauses",
            "description": "Expands Columns, Links, ChangeInfo, WIQL text and clauses"
          },
          {
            "value": "all",
            "description": "Expands all properties"
          },
          {
            "value": "minimal",
            "description": "Displays minimal properties and the WIQL text"
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "wiql",
          "clauses",
          "all",
          "minimal"
        ]
      }
    },
    {
      "in": "query",
      "name": "$depth",
      "description": "In the folder of queries, return child queries and folders to this depth.",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "query",
      "name": "$includeDeleted",
      "description": "Include deleted queries and folders",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/QueryHierarchyItem"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

POST /{organization}/{project}/_apis/wit/queries/{query}

Creates a query, or moves a query. Learn more about Work Item Query Language (WIQL) syntax [here](https://docs.microsoft.com/en-us/vsts/collaborate/wiql-syntax?toc=/vsts/work/track/toc.json&bc=/vsts/work/track/breadcrumb/toc.json&view=vsts).

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Queries"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "queries",
  "x-ms-vss-method": "CreateQuery",
  "x-ms-preview": true,
  "description": "Creates a query, or moves a query.\n\nLearn more about Work Item Query Language (WIQL) syntax [here](https://docs.microsoft.com/en-us/vsts/collaborate/wiql-syntax?toc=/vsts/work/track/toc.json&bc=/vsts/work/track/breadcrumb/toc.json&view=vsts).",
  "operationId": "Queries_Create",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "query",
      "description": "The parent id or path under which the query is to be created.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "validateWiqlOnly",
      "description": "If you only want to validate your WIQL query without actually creating one, set it to true. Default is false.",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/QueryHierarchyItem"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "The query to create.",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/QueryHierarchyItem"
        }
      }
    }
  }
}

DELETE /{organization}/{project}/_apis/wit/queries/{query}

Delete a query or a folder. This deletes any permission change on the deleted query or folder and any of its descendants if it is a folder. It is important to note that the deleted permission changes cannot be recovered upon undeleting the query or folder.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Queries"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "queries",
  "x-ms-vss-method": "DeleteQuery",
  "x-ms-preview": true,
  "description": "Delete a query or a folder. This deletes any permission change on the deleted query or folder and any of its descendants if it is a folder. It is important to note that the deleted permission changes cannot be recovered upon undeleting the query or folder.",
  "operationId": "Queries_Delete",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "query",
      "description": "ID or path of the query or folder to delete.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation"
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/queries/{query}

Retrieves an individual query and its children

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Queries"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "queries",
  "x-ms-vss-method": "GetQuery",
  "x-ms-preview": true,
  "description": "Retrieves an individual query and its children",
  "operationId": "Queries_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "query",
      "description": "ID or path of the query.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "Include the query string (wiql), clauses, query result columns, and sort options in the results.",
      "required": false,
      "x-ms-enum": {
        "name": "QueryExpand",
        "values": [
          {
            "value": "none",
            "description": "Expands Columns, Links and ChangeInfo"
          },
          {
            "value": "wiql",
            "description": "Expands Columns, Links,  ChangeInfo and WIQL text"
          },
          {
            "value": "clauses",
            "description": "Expands Columns, Links, ChangeInfo, WIQL text and clauses"
          },
          {
            "value": "all",
            "description": "Expands all properties"
          },
          {
            "value": "minimal",
            "description": "Displays minimal properties and the WIQL text"
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "wiql",
          "clauses",
          "all",
          "minimal"
        ]
      }
    },
    {
      "in": "query",
      "name": "$depth",
      "description": "In the folder of queries, return child queries and folders to this depth.",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "query",
      "name": "$includeDeleted",
      "description": "Include deleted queries and folders",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "$useIsoDateFormat",
      "description": "DateTime query clauses will be formatted using a ISO 8601 compliant format",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/QueryHierarchyItem"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

PATCH /{organization}/{project}/_apis/wit/queries/{query}

Update a query or a folder. This allows you to update, rename and move queries and folders.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Queries"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "queries",
  "x-ms-vss-method": "UpdateQuery",
  "x-ms-preview": true,
  "description": "Update a query or a folder. This allows you to update, rename and move queries and folders.",
  "operationId": "Queries_Update",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "query",
      "description": "The ID or path for the query to update.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$undeleteDescendants",
      "description": "Undelete the children of this folder. It is important to note that this will not bring back the permission changes that were previously applied to the descendants.",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/QueryHierarchyItem"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "The query to update.",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/QueryHierarchyItem"
        }
      }
    }
  }
}

POST /{organization}/{project}/_apis/wit/queriesbatch

Gets a list of queries by ids (Maximum 1000) **PurpleSuite executable core.** $expand is limited to none and all; the wiql, clauses and minimal projections are not implemented. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Queries"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "queriesBatch",
  "x-ms-vss-method": "GetQueriesBatch",
  "x-ms-preview": true,
  "description": "Gets a list of queries by ids (Maximum 1000)\n\n**PurpleSuite executable core.** $expand is limited to none and all; the wiql, clauses and minimal projections are not implemented. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Queries_Get Queries Batch",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/QueryHierarchyItem"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core",
  "requestBody": {
    "required": true,
    "description": "The queries to fetch.",
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "ids"
          ],
          "additionalProperties": false,
          "properties": {
            "ids": {
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "string"
              }
            },
            "$expand": {
              "type": "string",
              "enum": [
                "none",
                "all"
              ]
            },
            "errorPolicy": {
              "type": "string",
              "enum": [
                "fail",
                "omit"
              ]
            }
          }
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/recyclebin

Gets a list of the IDs and the URLs of the deleted the work items in the Recycle Bin.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Recyclebin"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "recyclebin",
  "x-ms-vss-method": "GetDeletedWorkItemShallowReferences",
  "x-ms-preview": true,
  "description": "Gets a list of the IDs and the URLs of the deleted the work items in the Recycle Bin.",
  "operationId": "Recyclebin_Get Deleted Work Item Shallow References",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemDeleteShallowReference"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

DELETE /{organization}/{project}/_apis/wit/recyclebin/{id}

Destroys the specified work item permanently from the Recycle Bin. This action can not be undone.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Recyclebin"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "recyclebin",
  "x-ms-vss-method": "DestroyWorkItem",
  "x-ms-preview": true,
  "description": "Destroys the specified work item permanently from the Recycle Bin. This action can not be undone.",
  "operationId": "Recyclebin_Destroy Work Item",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "ID of the work item to be destroyed permanently",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation"
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/recyclebin/{id}

Gets a deleted work item from Recycle Bin.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Recyclebin"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "recyclebin",
  "x-ms-vss-method": "GetDeletedWorkItem",
  "x-ms-preview": true,
  "description": "Gets a deleted work item from Recycle Bin.",
  "operationId": "Recyclebin_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "ID of the work item to be returned",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemDelete"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

PATCH /{organization}/{project}/_apis/wit/recyclebin/{id}

Restores the deleted work item from Recycle Bin.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Recyclebin"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "recyclebin",
  "x-ms-vss-method": "RestoreWorkItem",
  "x-ms-preview": true,
  "description": "Restores the deleted work item from Recycle Bin.",
  "operationId": "Recyclebin_Restore Work Item",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "ID of the work item to be restored",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemDelete"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "Paylod with instructions to update the IsDeleted flag to false",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WorkItemDeleteUpdate"
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/reporting/workitemrevisions

Get a batch of work item revisions with the option of including deleted items **PurpleSuite executable core.** Identity and tag expansion, $expand and discussion-only filtering are not implemented and are withdrawn from the contract. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Reporting Work Item Revisions"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "workItemRevisions",
  "x-ms-vss-method": "ReadReportingRevisionsGet",
  "x-ms-preview": true,
  "description": "Get a batch of work item revisions with the option of including deleted items\n\n**PurpleSuite executable core.** Identity and tag expansion, $expand and discussion-only filtering are not implemented and are withdrawn from the contract. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Reporting Work Item Revisions_Read Reporting Revisions Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "fields",
      "description": "A list of fields to return in work item revisions. Omit this parameter to get all reportable fields.",
      "required": false,
      "schema": {
        "type": "string",
        "description": "Vendor format: array (string)"
      }
    },
    {
      "in": "query",
      "name": "types",
      "description": "A list of types to filter the results to specific work item types. Omit this parameter to get work item revisions of all work item types.",
      "required": false,
      "schema": {
        "type": "string",
        "description": "Vendor format: array (string)"
      }
    },
    {
      "in": "query",
      "name": "continuationToken",
      "description": "Specifies the watermark to start the batch from. Omit this parameter to get the first batch of revisions.",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "startDateTime",
      "description": "Date/time to use as a starting point for revisions, all revisions will occur after this date/time. Cannot be used in conjunction with 'watermark' parameter.",
      "required": false,
      "schema": {
        "type": "string",
        "format": "date-time"
      }
    },
    {
      "in": "query",
      "name": "includeDeleted",
      "description": "Specify if the deleted item should be returned.",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "includeLatestOnly",
      "description": "Return only the latest revisions of work items, skipping all historical revisions",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "$maxPageSize",
      "description": "The maximum number of results to return in this batch",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReportingWorkItemRevisionsBatch"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core"
}

POST /{organization}/{project}/_apis/wit/reporting/workitemrevisions

Get a batch of work item revisions. This request may be used if your list of fields is large enough that it may run the URL over the length limit. **PurpleSuite executable core.** includeIdentityRef and includeTagRef are not implemented and are withdrawn from the filter. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Reporting Work Item Revisions"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "workItemRevisions",
  "x-ms-vss-method": "ReadReportingRevisionsPost",
  "x-ms-preview": true,
  "description": "Get a batch of work item revisions. This request may be used if your list of fields is large enough that it may run the URL over the length limit.\n\n**PurpleSuite executable core.** includeIdentityRef and includeTagRef are not implemented and are withdrawn from the filter. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Reporting Work Item Revisions_Read Reporting Revisions Post",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "continuationToken",
      "description": "Specifies the watermark to start the batch from. Omit this parameter to get the first batch of revisions.",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "startDateTime",
      "description": "Date/time to use as a starting point for revisions, all revisions will occur after this date/time. Cannot be used in conjunction with 'watermark' parameter.",
      "required": false,
      "schema": {
        "type": "string",
        "format": "date-time"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReportingWorkItemRevisionsBatch"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core",
  "requestBody": {
    "required": true,
    "description": "The revision filter.",
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "fields": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "types": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "includeDeleted": {
              "type": "boolean"
            },
            "includeLatestOnly": {
              "type": "boolean"
            }
          }
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/reporting/workItemRevisions/discussions

**PurpleSuite executable core.** Returns this instance's comment revisions as a single watermarked batch; the vendor's multi-batch warehouse pacing is not reproduced. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Revisions Discussions"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "workItemRevisionsDiscussions",
  "x-ms-vss-method": "ReadReportingDiscussions",
  "x-ms-preview": true,
  "description": "**PurpleSuite executable core.** Returns this instance's comment revisions as a single watermarked batch; the vendor's multi-batch warehouse pacing is not reproduced. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Work Item Revisions Discussions_Read Reporting Discussions",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "continuationToken",
      "description": "",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$maxPageSize",
      "description": "",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ReportingWorkItemRevisionsBatch"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core"
}

POST /{organization}/{project}/_apis/wit/sendmail

RESTful method to send mail for selected/queried work items. **Not available in PurpleSuite.** Sending mail requires Microsoft's hosted notification service. PurpleSuite has no mail transport and will not report a delivery that did not happen. The request is still validated and the vendor's error envelope is returned; no state changes and no success is fabricated.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Send Mail"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "sendMail",
  "x-ms-vss-method": "SendMailAsync",
  "x-ms-preview": true,
  "description": "RESTful method to send mail for selected/queried work items.\n\n**Not available in PurpleSuite.** Sending mail requires Microsoft's hosted notification service. PurpleSuite has no mail transport and will not report a delivery that did not happen. The request is still validated and the vendor's error envelope is returned; no state changes and no success is fabricated.",
  "operationId": "Send Mail_Send Mail",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation"
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "unavailable",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SendMailBody"
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/tags

Get all the tags for the project.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Tags"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "tags",
  "x-ms-vss-method": "GetTags",
  "x-ms-preview": true,
  "description": "Get all the tags for the project.",
  "operationId": "Tags_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemTagDefinition"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

DELETE /{organization}/{project}/_apis/wit/tags/{tagIdOrName}

Delete the tag for the project. Please note, that the deleted tag will be removed from all Work Items as well as Pull Requests.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Tags"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "tags",
  "x-ms-vss-method": "DeleteTag",
  "x-ms-preview": true,
  "description": "Delete the tag for the project. Please note, that the deleted tag will be removed from all Work Items as well as Pull Requests.",
  "operationId": "Tags_Delete",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "tagIdOrName",
      "description": "Tag ID or tag name.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation"
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/tags/{tagIdOrName}

Get the tag for the project.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Tags"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "tags",
  "x-ms-vss-method": "GetTag",
  "x-ms-preview": true,
  "description": "Get the tag for the project.",
  "operationId": "Tags_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "tagIdOrName",
      "description": "Tag ID or tag name.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemTagDefinition"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

PATCH /{organization}/{project}/_apis/wit/tags/{tagIdOrName}

Update the tag for the project.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Tags"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "tags",
  "x-ms-vss-method": "UpdateTag",
  "x-ms-preview": true,
  "description": "Update the tag for the project.",
  "operationId": "Tags_Update",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "tagIdOrName",
      "description": "Tag ID or tag name.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemTagDefinition"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WorkItemTagDefinition"
        }
      }
    }
  }
}

POST /{organization}/{project}/_apis/wit/tempqueries

Creates a temporary query Learn more about Work Item Query Language (WIQL) syntax [here](https://docs.microsoft.com/en-us/vsts/collaborate/wiql-syntax?toc=/vsts/work/track/toc.json&bc=/vsts/work/track/breadcrumb/toc.json&view=vsts).

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Temp Queries"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "tempQueries",
  "x-ms-vss-method": "CreateTempQuery",
  "x-ms-preview": true,
  "description": "Creates a temporary query\n\nLearn more about Work Item Query Language (WIQL) syntax [here](https://docs.microsoft.com/en-us/vsts/collaborate/wiql-syntax?toc=/vsts/work/track/toc.json&bc=/vsts/work/track/breadcrumb/toc.json&view=vsts).",
  "operationId": "Temp Queries_Create",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TemporaryQueryResponseModel"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "The temporary query to create",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TemporaryQueryRequestModel"
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/workitems

Returns a list of work items (Maximum 200)

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Items"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "workItems",
  "x-ms-vss-method": "GetWorkItems",
  "x-ms-preview": true,
  "description": "Returns a list of work items (Maximum 200)",
  "operationId": "Work Items_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "ids",
      "description": "The comma-separated list of requested work item ids. (Maximum 200 ids allowed).",
      "required": true,
      "schema": {
        "type": "string",
        "description": "Vendor format: array (int32)"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "fields",
      "description": "Comma-separated list of requested fields",
      "required": false,
      "schema": {
        "type": "string",
        "description": "Vendor format: array (string)"
      }
    },
    {
      "in": "query",
      "name": "asOf",
      "description": "AsOf UTC date time string",
      "required": false,
      "schema": {
        "type": "string",
        "format": "date-time"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.",
      "required": false,
      "x-ms-enum": {
        "name": "WorkItemExpand",
        "values": [
          {
            "value": "none",
            "description": "Default behavior."
          },
          {
            "value": "relations",
            "description": "Relations work item expand."
          },
          {
            "value": "fields",
            "description": "Fields work item expand."
          },
          {
            "value": "links",
            "description": "Links work item expand."
          },
          {
            "value": "all",
            "description": "Expands all."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "relations",
          "fields",
          "links",
          "all"
        ]
      }
    },
    {
      "in": "query",
      "name": "errorPolicy",
      "description": "The flag to control error policy in a bulk get work items request. Possible options are {Fail, Omit}.",
      "required": false,
      "x-ms-enum": {
        "name": "WorkItemErrorPolicy",
        "values": [
          {
            "value": "fail",
            "description": "Fail work error policy."
          },
          {
            "value": "omit",
            "description": "Omit work error policy."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "fail",
          "omit"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItem"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

POST /{organization}/{project}/_apis/wit/workitems/${type}

Creates a single work item. **PurpleSuite executable core.** JSON Patch is limited to add, replace, remove and test over /fields/*, /relations/* and /id; move and copy are rejected. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Items"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "workItems",
  "x-ms-vss-method": "CreateWorkItem",
  "x-ms-preview": true,
  "description": "Creates a single work item.\n\n**PurpleSuite executable core.** JSON Patch is limited to add, replace, remove and test over /fields/*, /relations/* and /id; move and copy are rejected. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Work Items_Create",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "type",
      "description": "The work item type of the work item to create",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "validateOnly",
      "description": "Indicate if you only want to validate the changes without saving the work item",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "bypassRules",
      "description": "Do not enforce the work item type rules on this update",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "suppressNotifications",
      "description": "Do not fire any notifications for this change",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.",
      "required": false,
      "x-ms-enum": {
        "name": "WorkItemExpand",
        "values": [
          {
            "value": "none",
            "description": "Default behavior."
          },
          {
            "value": "relations",
            "description": "Relations work item expand."
          },
          {
            "value": "fields",
            "description": "Fields work item expand."
          },
          {
            "value": "links",
            "description": "Links work item expand."
          },
          {
            "value": "all",
            "description": "Expands all."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "relations",
          "fields",
          "links",
          "all"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItem"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core",
  "requestBody": {
    "required": true,
    "description": "Fields and relations to set on the new work item.",
    "content": {
      "application/json-patch+json": {
        "schema": {
          "type": "array",
          "minItems": 1,
          "description": "JSON Patch document. This paint implements add, replace, remove and test against /fields/*, /relations/* and /id.",
          "items": {
            "type": "object",
            "required": [
              "op",
              "path"
            ],
            "additionalProperties": false,
            "properties": {
              "op": {
                "type": "string",
                "enum": [
                  "add",
                  "replace",
                  "remove",
                  "test"
                ],
                "description": "move and copy are declared by the vendor but not implemented here, so they are withdrawn rather than accepted and ignored."
              },
              "path": {
                "type": "string",
                "pattern": "^/(fields/.+|relations/(-|\\d+)(/.*)?|id)$"
              },
              "value": {},
              "from": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/workitems/${type}

Returns a single work item from a template.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Items"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "workItems",
  "x-ms-vss-method": "GetWorkItemTemplate",
  "x-ms-preview": true,
  "description": "Returns a single work item from a template.",
  "operationId": "Work Items_Get Work Item Template",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "type",
      "description": "The work item type name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "fields",
      "description": "Comma-separated list of requested fields",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "asOf",
      "description": "AsOf UTC date time string",
      "required": false,
      "schema": {
        "type": "string",
        "format": "date-time"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.",
      "required": false,
      "x-ms-enum": {
        "name": "WorkItemExpand",
        "values": [
          {
            "value": "none",
            "description": "Default behavior."
          },
          {
            "value": "relations",
            "description": "Relations work item expand."
          },
          {
            "value": "fields",
            "description": "Fields work item expand."
          },
          {
            "value": "links",
            "description": "Links work item expand."
          },
          {
            "value": "all",
            "description": "Expands all."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "relations",
          "fields",
          "links",
          "all"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItem"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

DELETE /{organization}/{project}/_apis/wit/workitems/{id}

Deletes the specified work item and sends it to the Recycle Bin, so that it can be restored back, if required. Optionally, if the destroy parameter has been set to true, it destroys the work item permanently. WARNING: If the destroy parameter is set to true, work items deleted by this command will NOT go to recycle-bin and there is no way to restore/recover them after deletion. It is recommended NOT to use this parameter. If you do, please use this parameter with extreme caution.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Items"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "workItems",
  "x-ms-vss-method": "DeleteWorkItem",
  "x-ms-preview": true,
  "description": "Deletes the specified work item and sends it to the Recycle Bin, so that it can be restored back, if required. Optionally, if the destroy parameter has been set to true, it destroys the work item permanently. WARNING: If the destroy parameter is set to true, work items deleted by this command will NOT go to recycle-bin and there is no way to restore/recover them after deletion. It is recommended NOT to use this parameter. If you do, please use this parameter with extreme caution.",
  "operationId": "Work Items_Delete",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "ID of the work item to be deleted",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "destroy",
      "description": "Optional parameter, if set to true, the work item is deleted permanently. Please note: the destroy action is PERMANENT and cannot be undone.",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemDelete"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workitems/{id}

Returns a single work item.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Items"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "workItems",
  "x-ms-vss-method": "GetWorkItem",
  "x-ms-preview": true,
  "description": "Returns a single work item.",
  "operationId": "Work Items_Get Work Item",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "The work item id",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "fields",
      "description": "Comma-separated list of requested fields",
      "required": false,
      "schema": {
        "type": "string",
        "description": "Vendor format: array (string)"
      }
    },
    {
      "in": "query",
      "name": "asOf",
      "description": "AsOf UTC date time string",
      "required": false,
      "schema": {
        "type": "string",
        "format": "date-time"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.",
      "required": false,
      "x-ms-enum": {
        "name": "WorkItemExpand",
        "values": [
          {
            "value": "none",
            "description": "Default behavior."
          },
          {
            "value": "relations",
            "description": "Relations work item expand."
          },
          {
            "value": "fields",
            "description": "Fields work item expand."
          },
          {
            "value": "links",
            "description": "Links work item expand."
          },
          {
            "value": "all",
            "description": "Expands all."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "relations",
          "fields",
          "links",
          "all"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItem"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

PATCH /{organization}/{project}/_apis/wit/workitems/{id}

Updates a single work item. **PurpleSuite executable core.** JSON Patch is limited to add, replace, remove and test over /fields/*, /relations/* and /id; move and copy are rejected. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Items"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "workItems",
  "x-ms-vss-method": "UpdateWorkItem",
  "x-ms-preview": true,
  "description": "Updates a single work item.\n\n**PurpleSuite executable core.** JSON Patch is limited to add, replace, remove and test over /fields/*, /relations/* and /id; move and copy are rejected. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Work Items_Update",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "The id of the work item to update",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "validateOnly",
      "description": "Indicate if you only want to validate the changes without saving the work item",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "bypassRules",
      "description": "Do not enforce the work item type rules on this update",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "suppressNotifications",
      "description": "Do not fire any notifications for this change",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }.",
      "required": false,
      "x-ms-enum": {
        "name": "WorkItemExpand",
        "values": [
          {
            "value": "none",
            "description": "Default behavior."
          },
          {
            "value": "relations",
            "description": "Relations work item expand."
          },
          {
            "value": "fields",
            "description": "Fields work item expand."
          },
          {
            "value": "links",
            "description": "Links work item expand."
          },
          {
            "value": "all",
            "description": "Expands all."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "relations",
          "fields",
          "links",
          "all"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItem"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core",
  "requestBody": {
    "required": true,
    "description": "Fields and relations to change on the work item.",
    "content": {
      "application/json-patch+json": {
        "schema": {
          "type": "array",
          "minItems": 1,
          "description": "JSON Patch document. This paint implements add, replace, remove and test against /fields/*, /relations/* and /id.",
          "items": {
            "type": "object",
            "required": [
              "op",
              "path"
            ],
            "additionalProperties": false,
            "properties": {
              "op": {
                "type": "string",
                "enum": [
                  "add",
                  "replace",
                  "remove",
                  "test"
                ],
                "description": "move and copy are declared by the vendor but not implemented here, so they are withdrawn rather than accepted and ignored."
              },
              "path": {
                "type": "string",
                "pattern": "^/(fields/.+|relations/(-|\\d+)(/.*)?|id)$"
              },
              "value": {},
              "from": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/workItems/{id}/revisions

Returns the list of fully hydrated work item revisions, paged.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Revisions"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "revisions",
  "x-ms-vss-method": "GetRevisions",
  "x-ms-preview": true,
  "description": "Returns the list of fully hydrated work item revisions, paged.",
  "operationId": "Revisions_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$top",
      "description": "",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "query",
      "name": "$skip",
      "description": "",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "",
      "required": false,
      "x-ms-enum": {
        "name": "WorkItemExpand",
        "values": [
          {
            "value": "none",
            "description": "Default behavior."
          },
          {
            "value": "relations",
            "description": "Relations work item expand."
          },
          {
            "value": "fields",
            "description": "Fields work item expand."
          },
          {
            "value": "links",
            "description": "Links work item expand."
          },
          {
            "value": "all",
            "description": "Expands all."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "relations",
          "fields",
          "links",
          "all"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItem"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workItems/{id}/revisions/{revisionNumber}

Returns a fully hydrated work item for the requested revision

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Revisions"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "revisions",
  "x-ms-vss-method": "GetRevision",
  "x-ms-preview": true,
  "description": "Returns a fully hydrated work item for the requested revision",
  "operationId": "Revisions_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "revisionNumber",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "",
      "required": false,
      "x-ms-enum": {
        "name": "WorkItemExpand",
        "values": [
          {
            "value": "none",
            "description": "Default behavior."
          },
          {
            "value": "relations",
            "description": "Relations work item expand."
          },
          {
            "value": "fields",
            "description": "Fields work item expand."
          },
          {
            "value": "links",
            "description": "Links work item expand."
          },
          {
            "value": "all",
            "description": "Expands all."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "relations",
          "fields",
          "links",
          "all"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItem"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workItems/{id}/updates

Returns the deltas between work item revisions

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Updates"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "updates",
  "x-ms-vss-method": "GetUpdates",
  "x-ms-preview": true,
  "description": "Returns the deltas between work item revisions",
  "operationId": "Updates_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$top",
      "description": "",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "query",
      "name": "$skip",
      "description": "",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemUpdate"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workItems/{id}/updates/{updateNumber}

Returns a single update for a work item

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Updates"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "updates",
  "x-ms-vss-method": "GetUpdate",
  "x-ms-preview": true,
  "description": "Returns a single update for a work item",
  "operationId": "Updates_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "updateNumber",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemUpdate"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

POST /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments

Add a comment on a work item.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comments"
  ],
  "x-ms-docs-override-version": "7.2-preview.4",
  "x-ms-vss-resource": "comments",
  "x-ms-vss-method": "AddComment",
  "x-ms-preview": true,
  "description": "Add a comment on a work item.",
  "operationId": "Comments_Add Comment",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "Id of a work item.",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.4"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Comment"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "Comment create request.",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CommentCreate"
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments

Returns a list of work item comments by ids.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comments"
  ],
  "x-ms-docs-override-version": "7.2-preview.4",
  "x-ms-vss-resource": "comments",
  "x-ms-vss-method": "GetCommentsBatch",
  "x-ms-preview": true,
  "description": "Returns a list of work item comments by ids.",
  "operationId": "Comments_Get Comments Batch",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "Id of a work item to get comments for.",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "query",
      "name": "ids",
      "description": "Comma-separated list of comment ids to return.",
      "required": true,
      "schema": {
        "type": "string",
        "description": "Vendor format: array (int32)"
      }
    },
    {
      "in": "query",
      "name": "includeDeleted",
      "description": "Specify if the deleted comments should be retrieved.",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "Specifies the additional data retrieval options for work item comments.",
      "required": false,
      "x-ms-enum": {
        "name": "CommentExpandOptions",
        "values": [
          {
            "value": "none",
            "description": ""
          },
          {
            "value": "reactions",
            "description": "Include comment reactions."
          },
          {
            "value": "renderedText",
            "description": "Include the rendered text (html) in addition to MD text."
          },
          {
            "value": "renderedTextOnly",
            "description": "If specified, then ONLY rendered text (html) will be returned, w/o markdown. Supposed to be used internally from data provides for optimization purposes."
          },
          {
            "value": "all",
            "description": ""
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "reactions",
          "renderedText",
          "renderedTextOnly",
          "all"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.4"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CommentList"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

DELETE /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments/{commentId}

Delete a comment on a work item.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comments"
  ],
  "x-ms-docs-override-version": "7.2-preview.4",
  "x-ms-vss-resource": "comments",
  "x-ms-vss-method": "DeleteComment",
  "x-ms-preview": true,
  "description": "Delete a comment on a work item.",
  "operationId": "Comments_Delete",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "Id of a work item.",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "commentId",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.4"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation"
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments/{commentId}

Returns a work item comment.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comments"
  ],
  "x-ms-docs-override-version": "7.2-preview.4",
  "x-ms-vss-resource": "comments",
  "x-ms-vss-method": "GetComment",
  "x-ms-preview": true,
  "description": "Returns a work item comment.",
  "operationId": "Comments_Get Comment",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "Id of a work item to get the comment.",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "commentId",
      "description": "Id of the comment to return.",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "query",
      "name": "includeDeleted",
      "description": "Specify if the deleted comment should be retrieved.",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "Specifies the additional data retrieval options for work item comments.",
      "required": false,
      "x-ms-enum": {
        "name": "CommentExpandOptions",
        "values": [
          {
            "value": "none",
            "description": ""
          },
          {
            "value": "reactions",
            "description": "Include comment reactions."
          },
          {
            "value": "renderedText",
            "description": "Include the rendered text (html) in addition to MD text."
          },
          {
            "value": "renderedTextOnly",
            "description": "If specified, then ONLY rendered text (html) will be returned, w/o markdown. Supposed to be used internally from data provides for optimization purposes."
          },
          {
            "value": "all",
            "description": ""
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "reactions",
          "renderedText",
          "renderedTextOnly",
          "all"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.4"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Comment"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

PATCH /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments/{commentId}

Update a comment on a work item.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comments"
  ],
  "x-ms-docs-override-version": "7.2-preview.4",
  "x-ms-vss-resource": "comments",
  "x-ms-vss-method": "UpdateComment",
  "x-ms-preview": true,
  "description": "Update a comment on a work item.",
  "operationId": "Comments_Update Comment",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "Id of a work item.",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "commentId",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.4"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Comment"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "Comment update request.",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CommentUpdate"
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments/{commentId}/reactions

Gets reactions of a comment.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comments Reactions"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "commentsReactions",
  "x-ms-vss-method": "GetCommentReactions",
  "x-ms-preview": true,
  "description": "Gets reactions of a comment.",
  "operationId": "Comments Reactions_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "WorkItem ID",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "commentId",
      "description": "Comment ID",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CommentReaction"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

PUT /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments/{commentId}/reactions/{reactionType}

Adds a new reaction to a comment.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comments Reactions"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "commentsReactions",
  "x-ms-vss-method": "CreateCommentReaction",
  "x-ms-preview": true,
  "description": "Adds a new reaction to a comment.",
  "operationId": "Comments Reactions_Create",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "WorkItem ID",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "commentId",
      "description": "Comment ID",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "reactionType",
      "description": "Type of the reaction",
      "required": true,
      "x-ms-enum": {
        "name": "CommentReactionType",
        "values": [
          {
            "value": "like",
            "description": ""
          },
          {
            "value": "dislike",
            "description": ""
          },
          {
            "value": "heart",
            "description": ""
          },
          {
            "value": "hooray",
            "description": ""
          },
          {
            "value": "smile",
            "description": ""
          },
          {
            "value": "confused",
            "description": ""
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "like",
          "dislike",
          "heart",
          "hooray",
          "smile",
          "confused"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CommentReaction"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

DELETE /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments/{commentId}/reactions/{reactionType}

Deletes an existing reaction on a comment.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comments Reactions"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "commentsReactions",
  "x-ms-vss-method": "DeleteCommentReaction",
  "x-ms-preview": true,
  "description": "Deletes an existing reaction on a comment.",
  "operationId": "Comments Reactions_Delete",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "WorkItem ID",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "commentId",
      "description": "Comment ID",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "reactionType",
      "description": "Type of the reaction",
      "required": true,
      "x-ms-enum": {
        "name": "CommentReactionType",
        "values": [
          {
            "value": "like",
            "description": ""
          },
          {
            "value": "dislike",
            "description": ""
          },
          {
            "value": "heart",
            "description": ""
          },
          {
            "value": "hooray",
            "description": ""
          },
          {
            "value": "smile",
            "description": ""
          },
          {
            "value": "confused",
            "description": ""
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "like",
          "dislike",
          "heart",
          "hooray",
          "smile",
          "confused"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CommentReaction"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments/{commentId}/reactions/{reactionType}/users

Get users who reacted on the comment.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comment Reactions Engaged Users"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "commentReactionsEngagedUsers",
  "x-ms-vss-method": "GetEngagedUsers",
  "x-ms-preview": true,
  "description": "Get users who reacted on the comment.",
  "operationId": "Comment Reactions Engaged Users_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "WorkItem ID.",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "commentId",
      "description": "Comment ID.",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "reactionType",
      "description": "Type of the reaction.",
      "required": true,
      "x-ms-enum": {
        "name": "CommentReactionType",
        "values": [
          {
            "value": "like",
            "description": ""
          },
          {
            "value": "dislike",
            "description": ""
          },
          {
            "value": "heart",
            "description": ""
          },
          {
            "value": "hooray",
            "description": ""
          },
          {
            "value": "smile",
            "description": ""
          },
          {
            "value": "confused",
            "description": ""
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "like",
          "dislike",
          "heart",
          "hooray",
          "smile",
          "confused"
        ]
      }
    },
    {
      "in": "query",
      "name": "$top",
      "description": "",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "query",
      "name": "$skip",
      "description": "",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/IdentityRef"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments/{commentId}/versions

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comments Versions"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "commentsVersions",
  "x-ms-vss-method": "GetCommentVersions",
  "x-ms-preview": true,
  "description": "",
  "operationId": "Comments Versions_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "commentId",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CommentVersion"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workItems/{workItemId}/comments/{commentId}/versions/{version}

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Comments Versions"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "commentsVersions",
  "x-ms-vss-method": "GetCommentVersion",
  "x-ms-preview": true,
  "description": "",
  "operationId": "Comments Versions_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "workItemId",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "commentId",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "in": "path",
      "name": "version",
      "description": "",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CommentVersion"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

POST /{organization}/{project}/_apis/wit/workitemsbatch

Gets work items for a list of work item ids (Maximum 200)

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Items"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "workItemsBatch",
  "x-ms-vss-method": "GetWorkItemsBatch",
  "x-ms-preview": true,
  "description": "Gets work items for a list of work item ids (Maximum 200)",
  "operationId": "Work Items_Get Work Items Batch",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItem"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WorkItemBatchGetRequest"
        }
      }
    }
  }
}

POST /{organization}/{project}/_apis/wit/workitemsdelete

Deletes specified work items and sends them to the Recycle Bin, so that it can be restored back, if required. Optionally, if the destroy parameter has been set to true, it destroys the work item permanently. WARNING: If the destroy parameter is set to true, work items deleted by this command will NOT go to recycle-bin and there is no way to restore/recover them after deletion.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Items"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "workItemsDelete",
  "x-ms-vss-method": "DeleteWorkItems",
  "x-ms-preview": true,
  "description": "Deletes specified work items and sends them to the Recycle Bin, so that it can be restored back, if required. Optionally, if the destroy parameter has been set to true, it destroys the work item permanently. WARNING: If the destroy parameter is set to true, work items deleted by this command will NOT go to recycle-bin and there is no way to restore/recover them after deletion.",
  "operationId": "Work Items_Delete Work Items",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemDeleteBatch"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WorkItemDeleteBatchRequest"
        }
      }
    }
  }
}

GET /{organization}/{project}/_apis/wit/workitemtypecategories

Get all work item type categories.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Type Categories"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "workItemTypeCategories",
  "x-ms-vss-method": "GetWorkItemTypeCategories",
  "x-ms-preview": true,
  "description": "Get all work item type categories.",
  "operationId": "Work Item Type Categories_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemTypeCategory"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workitemtypecategories/{category}

Get specific work item type category by name.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Type Categories"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "workItemTypeCategories",
  "x-ms-vss-method": "GetWorkItemTypeCategory",
  "x-ms-preview": true,
  "description": "Get specific work item type category by name.",
  "operationId": "Work Item Type Categories_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "category",
      "description": "The category name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemTypeCategory"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workitemtypes

Returns the list of work item types

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Types"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "workItemTypes",
  "x-ms-vss-method": "GetWorkItemTypes",
  "x-ms-preview": true,
  "description": "Returns the list of work item types",
  "operationId": "Work Item Types_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemType"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workitemtypes/{type}

Returns a work item type definition.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Types"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "workItemTypes",
  "x-ms-vss-method": "GetWorkItemType",
  "x-ms-preview": true,
  "description": "Returns a work item type definition.",
  "operationId": "Work Item Types_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "type",
      "description": "Work item type name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemType"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workitemtypes/{type}/fields

Get a list of fields for a work item type with detailed references.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Types Field"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "workItemTypesField",
  "x-ms-vss-method": "GetWorkItemTypeFieldsWithReferences",
  "x-ms-preview": true,
  "description": "Get a list of fields for a work item type with detailed references.",
  "operationId": "Work Item Types Field_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "type",
      "description": "Work item type.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "Expand level for the API response. Properties: to include allowedvalues, default value, isRequired etc. as a part of response; None: to skip these properties.",
      "required": false,
      "x-ms-enum": {
        "name": "WorkItemTypeFieldsExpandLevel",
        "values": [
          {
            "value": "none",
            "description": "Includes only basic properties of the field."
          },
          {
            "value": "allowedValues",
            "description": "Includes allowed values for the field."
          },
          {
            "value": "dependentFields",
            "description": "Includes dependent fields of the field."
          },
          {
            "value": "all",
            "description": "Includes allowed values and dependent fields of the field."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "allowedValues",
          "dependentFields",
          "all"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemTypeFieldWithReferences"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workitemtypes/{type}/fields/{field}

Get a field for a work item type with detailed references.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Types Field"
  ],
  "x-ms-docs-override-version": "7.2-preview.3",
  "x-ms-vss-resource": "workItemTypesField",
  "x-ms-vss-method": "GetWorkItemTypeFieldWithReferences",
  "x-ms-preview": true,
  "description": "Get a field for a work item type with detailed references.",
  "operationId": "Work Item Types Field_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "type",
      "description": "Work item type.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "field",
      "description": "",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "$expand",
      "description": "Expand level for the API response. Properties: to include allowedvalues, default value, isRequired etc. as a part of response; None: to skip these properties.",
      "required": false,
      "x-ms-enum": {
        "name": "WorkItemTypeFieldsExpandLevel",
        "values": [
          {
            "value": "none",
            "description": "Includes only basic properties of the field."
          },
          {
            "value": "allowedValues",
            "description": "Includes allowed values for the field."
          },
          {
            "value": "dependentFields",
            "description": "Includes dependent fields of the field."
          },
          {
            "value": "all",
            "description": "Includes allowed values and dependent fields of the field."
          }
        ]
      },
      "schema": {
        "type": "string",
        "enum": [
          "none",
          "allowedValues",
          "dependentFields",
          "all"
        ]
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.3"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemTypeFieldWithReferences"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/_apis/wit/workitemtypes/{type}/states

Returns the state names and colors for a work item type.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Work Item Type States"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "workItemTypeStates",
  "x-ms-vss-method": "GetWorkItemTypeStates",
  "x-ms-preview": true,
  "description": "Returns the state names and colors for a work item type.",
  "operationId": "Work Item Type States_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "type",
      "description": "The state name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemStateColor"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

POST /{organization}/{project}/{team}/_apis/wit/templates

Creates a template

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Templates"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "templates",
  "x-ms-vss-method": "CreateTemplate",
  "x-ms-preview": true,
  "description": "Creates a template",
  "operationId": "Templates_Create",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "team",
      "description": "Team ID or team name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemTemplate"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "Template contents",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WorkItemTemplate"
        }
      }
    }
  }
}

GET /{organization}/{project}/{team}/_apis/wit/templates

Gets template

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Templates"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "templates",
  "x-ms-vss-method": "GetTemplates",
  "x-ms-preview": true,
  "description": "Gets template",
  "operationId": "Templates_List",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "team",
      "description": "Team ID or team name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "workitemtypename",
      "description": "Optional, When specified returns templates for given Work item type.",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "required": [
              "count",
              "value"
            ],
            "description": "VssJsonCollectionWrapper. Azure DevOps never returns a bare JSON array; the pinned Swagger types this as an array because of its generator.",
            "properties": {
              "count": {
                "type": "integer",
                "format": "int32"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkItemTemplateReference"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

DELETE /{organization}/{project}/{team}/_apis/wit/templates/{templateId}

Deletes the template with given id

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Templates"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "templates",
  "x-ms-vss-method": "DeleteTemplate",
  "x-ms-preview": true,
  "description": "Deletes the template with given id",
  "operationId": "Templates_Delete",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "team",
      "description": "Team ID or team name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "templateId",
      "description": "Template id",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation"
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

GET /{organization}/{project}/{team}/_apis/wit/templates/{templateId}

Gets the template with specified id

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Templates"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "templates",
  "x-ms-vss-method": "GetTemplate",
  "x-ms-preview": true,
  "description": "Gets the template with specified id",
  "operationId": "Templates_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "team",
      "description": "Team ID or team name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "templateId",
      "description": "Template Id",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemTemplate"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled"
}

PUT /{organization}/{project}/{team}/_apis/wit/templates/{templateId}

Replace template contents

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Templates"
  ],
  "x-ms-docs-override-version": "7.2-preview.1",
  "x-ms-vss-resource": "templates",
  "x-ms-vss-method": "ReplaceTemplate",
  "x-ms-preview": true,
  "description": "Replace template contents",
  "operationId": "Templates_Replace Template",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "team",
      "description": "Team ID or team name",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "templateId",
      "description": "Template id",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.1"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemTemplate"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled",
  "requestBody": {
    "description": "Template contents to replace with",
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/WorkItemTemplate"
        }
      }
    }
  }
}

POST /{organization}/{project}/{team}/_apis/wit/wiql

Gets the results of the query given its WIQL. **PurpleSuite executable core.** Flat WorkItems queries only. FROM WorkItemLinks, MODE clauses and tree queries are rejected rather than silently flattened. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Wiql"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "wiql",
  "x-ms-vss-method": "QueryByWiql",
  "x-ms-preview": true,
  "description": "Gets the results of the query given its WIQL.\n\n**PurpleSuite executable core.** Flat WorkItems queries only. FROM WorkItemLinks, MODE clauses and tree queries are rejected rather than silently flattened. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Wiql_Query By Wiql",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "team",
      "description": "Team ID or team name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "timePrecision",
      "description": "Whether or not to use time precision.",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "$top",
      "description": "The max number of results to return.",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemQueryResult"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core",
  "requestBody": {
    "required": true,
    "description": "The WIQL query to run.",
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "query"
          ],
          "additionalProperties": false,
          "properties": {
            "query": {
              "type": "string",
              "minLength": 1,
              "description": "Flat WIQL: SELECT <fields> FROM WorkItems [WHERE <clauses>] [ORDER BY <fields>]. Supports AND/OR, = <> > < >= <=, IN, CONTAINS, EVER, the @Me and @Today macros, and [Field] bracket syntax."
            }
          }
        }
      }
    }
  }
}

HEAD /{organization}/{project}/{team}/_apis/wit/wiql/{id}

Gets the results of the query given the query ID. **PurpleSuite executable core.** Returns the stored query's result count through the same flat-query subset. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Wiql"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "wiql",
  "x-ms-vss-method": "QueryById",
  "x-ms-preview": true,
  "description": "Gets the results of the query given the query ID.\n\n**PurpleSuite executable core.** Returns the stored query's result count through the same flat-query subset. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Wiql_Get",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "The query ID.",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "team",
      "description": "Team ID or team name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "timePrecision",
      "description": "Whether or not to use time precision.",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "$top",
      "description": "The max number of results to return.",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "type": "integer",
            "format": "int32"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core"
}

GET /{organization}/{project}/{team}/_apis/wit/wiql/{id}

Gets the results of the query given the query ID. **PurpleSuite executable core.** Runs the stored query's WIQL through the same flat-query subset; a stored link or tree query is rejected. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.

Authentication

[
  {
    "accessToken": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Wiql"
  ],
  "x-ms-docs-override-version": "7.2-preview.2",
  "x-ms-vss-resource": "wiql",
  "x-ms-vss-method": "QueryById",
  "x-ms-preview": true,
  "description": "Gets the results of the query given the query ID.\n\n**PurpleSuite executable core.** Runs the stored query's WIQL through the same flat-query subset; a stored link or tree query is rejected. The request published here is exactly what this paint executes; anything outside it is rejected rather than silently ignored.",
  "operationId": "Wiql_Query By Id",
  "parameters": [
    {
      "in": "path",
      "name": "organization",
      "description": "The name of the Azure DevOps organization.",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "id",
      "description": "The query ID.",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "in": "path",
      "name": "project",
      "description": "Project ID or project name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "path",
      "name": "team",
      "description": "Team ID or team name",
      "required": true,
      "x-ms-required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "timePrecision",
      "description": "Whether or not to use time precision.",
      "required": false,
      "schema": {
        "type": "boolean"
      }
    },
    {
      "in": "query",
      "name": "$top",
      "description": "The max number of results to return.",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "$ref": "#/components/parameters/api-Version-preview.2"
    }
  ],
  "responses": {
    "200": {
      "description": "successful operation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WorkItemQueryResult"
          }
        }
      }
    },
    "400": {
      "description": "The request is not valid for this operation.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "401": {
      "description": "The request is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "404": {
      "description": "The requested resource does not exist.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "405": {
      "description": "The operation is not supported by this PurpleSuite paint.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "409": {
      "description": "The request conflicts with the current state of the resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    },
    "415": {
      "description": "The request Content-Type is not the one this operation declares.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/WrappedException"
          }
        }
      }
    }
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "x-purplesuite-classification": "modeled-core"
}

Schemas and reusable components

schemas

AccountMyWorkResult

{
  "description": "",
  "type": "object",
  "properties": {
    "querySizeLimitExceeded": {
      "description": "True, when length of WorkItemDetails is same as the limit",
      "type": "boolean"
    },
    "workItemDetails": {
      "description": "WorkItem Details",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AccountWorkWorkItemModel"
      }
    }
  }
}

AccountRecentActivityWorkItemModel

{
  "description": "Represents Work Item Recent Activity",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/AccountRecentActivityWorkItemModelBase"
    }
  ],
  "properties": {
    "assignedTo": {
      "description": "Assigned To",
      "type": "string"
    }
  }
}

AccountRecentActivityWorkItemModel2

{
  "description": "Represents Work Item Recent Activity",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/AccountRecentActivityWorkItemModelBase"
    }
  ],
  "properties": {
    "assignedTo": {
      "description": "Assigned To",
      "$ref": "#/components/schemas/IdentityRef"
    }
  }
}

AccountRecentActivityWorkItemModelBase

{
  "description": "Represents Work Item Recent Activity",
  "type": "object",
  "properties": {
    "activityDate": {
      "description": "Date of the last Activity by the user",
      "type": "string",
      "format": "date-time"
    },
    "activityType": {
      "description": "Type of the activity",
      "enum": [
        "visited",
        "edited",
        "deleted",
        "restored"
      ],
      "x-ms-enum": {
        "name": "WorkItemRecentActivityType",
        "values": [
          {
            "value": "visited",
            "description": ""
          },
          {
            "value": "edited",
            "description": ""
          },
          {
            "value": "deleted",
            "description": ""
          },
          {
            "value": "restored",
            "description": ""
          }
        ]
      }
    },
    "changedDate": {
      "description": "Last changed date of the work item",
      "type": "string",
      "format": "date-time"
    },
    "id": {
      "description": "Work Item Id",
      "type": "integer",
      "format": "int32"
    },
    "identityId": {
      "description": "TeamFoundationId of the user this activity belongs to",
      "type": "string",
      "format": "uuid"
    },
    "state": {
      "description": "State of the work item",
      "type": "string"
    },
    "teamProject": {
      "description": "Team project the work item belongs to",
      "type": "string"
    },
    "title": {
      "description": "Title of the work item",
      "type": "string"
    },
    "workItemType": {
      "description": "Type of Work Item",
      "type": "string"
    }
  }
}

AccountRecentMentionWorkItemModel

{
  "description": "Represents Recent Mention Work Item",
  "type": "object",
  "properties": {
    "assignedTo": {
      "description": "Assigned To",
      "type": "string"
    },
    "id": {
      "description": "Work Item Id",
      "type": "integer",
      "format": "int32"
    },
    "mentionedDateField": {
      "description": "Latest date that the user were mentioned",
      "type": "string",
      "format": "date-time"
    },
    "state": {
      "description": "State of the work item",
      "type": "string"
    },
    "teamProject": {
      "description": "Team project the work item belongs to",
      "type": "string"
    },
    "title": {
      "description": "Title of the work item",
      "type": "string"
    },
    "workItemType": {
      "description": "Type of Work Item",
      "type": "string"
    }
  }
}

AccountWorkWorkItemModel

{
  "description": "",
  "type": "object",
  "properties": {
    "assignedTo": {
      "type": "string"
    },
    "changedDate": {
      "type": "string",
      "format": "date-time"
    },
    "id": {
      "type": "integer",
      "format": "int32"
    },
    "state": {
      "type": "string"
    },
    "teamProject": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "workItemType": {
      "type": "string"
    }
  }
}

ArtifactUriQuery

{
  "description": "Contains criteria for querying work items based on artifact URI.",
  "type": "object",
  "properties": {
    "artifactUris": {
      "description": "List of artifact URIs to use for querying work items.",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}

ArtifactUriQueryResult

{
  "description": "Defines result of artifact URI query on work items. Contains mapping of work item IDs to artifact URI.",
  "type": "object",
  "properties": {
    "artifactUrisQueryResult": {
      "description": "A Dictionary that maps a list of work item references to the given list of artifact URI.",
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/WorkItemReference"
        }
      }
    }
  }
}

AttachmentReference

{
  "description": "",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "url": {
      "type": "string"
    }
  }
}

Comment

{
  "description": "Comment on a Work Item.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "createdBy": {
      "description": "IdentityRef of the creator of the comment.",
      "$ref": "#/components/schemas/IdentityRef"
    },
    "createdDate": {
      "description": "The creation date of the comment.",
      "type": "string",
      "format": "date-time"
    },
    "createdOnBehalfDate": {
      "description": "Effective Date/time value for adding the comment. Can be optionally different from CreatedDate.",
      "type": "string",
      "format": "date-time"
    },
    "createdOnBehalfOf": {
      "description": "Identity on whose behalf this comment has been added. Can be optionally different from CreatedBy.",
      "$ref": "#/components/schemas/IdentityRef"
    },
    "format": {
      "description": "Represents the possible types for the comment format.",
      "enum": [
        "markdown",
        "html"
      ],
      "x-ms-enum": {
        "name": "CommentFormat",
        "values": [
          {
            "value": "markdown",
            "description": ""
          },
          {
            "value": "html",
            "description": ""
          }
        ]
      }
    },
    "id": {
      "description": "The id assigned to the comment.",
      "type": "integer",
      "format": "int32"
    },
    "isDeleted": {
      "description": "Indicates if the comment has been deleted.",
      "type": "boolean"
    },
    "mentions": {
      "description": "The mentions of the comment.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CommentMention"
      }
    },
    "modifiedBy": {
      "description": "IdentityRef of the user who last modified the comment.",
      "$ref": "#/components/schemas/IdentityRef"
    },
    "modifiedDate": {
      "description": "The last modification date of the comment.",
      "type": "string",
      "format": "date-time"
    },
    "reactions": {
      "description": "The reactions of the comment.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/CommentReaction"
      }
    },
    "renderedText": {
      "description": "The text of the comment in HTML format.",
      "type": "string"
    },
    "text": {
      "description": "The text of the comment.",
      "type": "string"
    },
    "version": {
      "description": "The current version of the comment.",
      "type": "integer",
      "format": "int32"
    },
    "workItemId": {
      "description": "The id of the work item this comment belongs to.",
      "type": "integer",
      "format": "int32"
    }
  }
}

CommentCreate

{
  "description": "Represents a request to create a work item comment.",
  "type": "object",
  "properties": {
    "text": {
      "description": "The text of the comment.",
      "type": "string"
    }
  }
}

CommentList

{
  "description": "Represents a list of work item comments.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "comments": {
      "description": "List of comments in the current batch.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Comment"
      }
    },
    "continuationToken": {
      "description": "A string token that can be used to retrieving next page of comments if available. Otherwise null.",
      "type": "string"
    },
    "count": {
      "description": "The count of comments in the current batch.",
      "type": "integer",
      "format": "int32"
    },
    "nextPage": {
      "description": "Uri to the next page of comments if it is available. Otherwise null.",
      "type": "string"
    },
    "totalCount": {
      "description": "Total count of comments on a work item.",
      "type": "integer",
      "format": "int32"
    }
  }
}

CommentMention

{
  "description": "",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "artifactId": {
      "description": "The artifact portion of the parsed text. (i.e. the work item's id)",
      "type": "string"
    },
    "artifactType": {
      "description": "The type the parser assigned to the mention. (i.e. person, work item, etc)",
      "type": "string"
    },
    "commentId": {
      "description": "The comment id of the mention.",
      "type": "integer",
      "format": "int32"
    },
    "targetId": {
      "description": "The resolved target of the mention. An example of this could be a user's tfid",
      "type": "string"
    }
  }
}

CommentReaction

{
  "description": "Contains information about work item comment reaction for a particular reaction type.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "commentId": {
      "description": "The id of the comment this reaction belongs to.",
      "type": "integer",
      "format": "int32"
    },
    "count": {
      "description": "Total number of reactions for the CommentReactionType.",
      "type": "integer",
      "format": "int32"
    },
    "isCurrentUserEngaged": {
      "description": "Flag to indicate if the current user has engaged on this particular EngagementType (e.g. if they liked the associated comment).",
      "type": "boolean"
    },
    "type": {
      "description": "Type of the reaction.",
      "enum": [
        "like",
        "dislike",
        "heart",
        "hooray",
        "smile",
        "confused"
      ],
      "x-ms-enum": {
        "name": "CommentReactionType",
        "values": [
          {
            "value": "like",
            "description": ""
          },
          {
            "value": "dislike",
            "description": ""
          },
          {
            "value": "heart",
            "description": ""
          },
          {
            "value": "hooray",
            "description": ""
          },
          {
            "value": "smile",
            "description": ""
          },
          {
            "value": "confused",
            "description": ""
          }
        ]
      }
    }
  }
}

CommentUpdate

{
  "description": "Represents a request to update a work item comment.",
  "type": "object",
  "properties": {
    "text": {
      "description": "The updated text of the comment.",
      "type": "string"
    }
  }
}

CommentVersion

{
  "description": "Represents a specific version of a comment on a work item.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "createdBy": {
      "description": "IdentityRef of the creator of the comment.",
      "$ref": "#/components/schemas/IdentityRef"
    },
    "createdDate": {
      "description": "The creation date of the comment.",
      "type": "string",
      "format": "date-time"
    },
    "createdOnBehalfDate": {
      "description": "Effective Date/time value for adding the comment. Can be optionally different from CreatedDate.",
      "type": "string",
      "format": "date-time"
    },
    "createdOnBehalfOf": {
      "description": "Identity on whose behalf this comment has been added. Can be optionally different from CreatedBy.",
      "$ref": "#/components/schemas/IdentityRef"
    },
    "id": {
      "description": "The id assigned to the comment.",
      "type": "integer",
      "format": "int32"
    },
    "isDeleted": {
      "description": "Indicates if the comment has been deleted at this version.",
      "type": "boolean"
    },
    "modifiedBy": {
      "description": "IdentityRef of the user who modified the comment at this version.",
      "$ref": "#/components/schemas/IdentityRef"
    },
    "modifiedDate": {
      "description": "The modification date of the comment for this version.",
      "type": "string",
      "format": "date-time"
    },
    "renderedText": {
      "description": "The rendered content of the comment at this version.",
      "type": "string"
    },
    "text": {
      "description": "The text of the comment at this version.",
      "type": "string"
    },
    "version": {
      "description": "The version number.",
      "type": "integer",
      "format": "int32"
    }
  }
}

DestroyedAttachment

{
  "description": "Describes permanently deleted attachment and work items that had links to this attachment.",
  "type": "object",
  "properties": {
    "affectedWorkItems": {
      "description": "Work items with attachment references that have been marked as deleted.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemReference"
      }
    },
    "attachment": {
      "description": "Permanently deleted attachment.",
      "$ref": "#/components/schemas/AttachmentReference"
    }
  }
}

EmailRecipients

{
  "description": "",
  "type": "object",
  "properties": {
    "emailAddresses": {
      "description": "Plaintext email addresses.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "tfIds": {
      "description": "TfIds",
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "unresolvedEntityIds": {
      "description": "Unresolved entity ids",
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    }
  }
}

ExternalDeployment

{
  "description": "",
  "type": "object",
  "properties": {
    "artifactId": {
      "type": "string",
      "format": "uuid"
    },
    "createdBy": {
      "type": "string",
      "format": "uuid"
    },
    "description": {
      "type": "string"
    },
    "displayName": {
      "type": "string"
    },
    "environment": {
      "$ref": "#/components/schemas/ExternalEnvironment"
    },
    "group": {
      "type": "string"
    },
    "pipeline": {
      "$ref": "#/components/schemas/ExternalPipeline"
    },
    "relatedWorkItemIds": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      }
    },
    "runId": {
      "type": "integer",
      "format": "int32"
    },
    "sequenceNumber": {
      "type": "integer",
      "format": "int32"
    },
    "status": {
      "type": "string"
    },
    "statusDate": {
      "type": "string",
      "format": "date-time"
    },
    "url": {
      "type": "string"
    }
  }
}

ExternalEnvironment

{
  "description": "",
  "type": "object",
  "properties": {
    "displayName": {
      "type": "string"
    },
    "id": {
      "type": "integer",
      "format": "int32"
    },
    "type": {
      "type": "string"
    }
  }
}

ExternalPipeline

{
  "description": "",
  "type": "object",
  "properties": {
    "displayName": {
      "type": "string"
    },
    "id": {
      "type": "integer",
      "format": "int32"
    },
    "url": {
      "type": "string"
    }
  }
}

FieldDependentRule

{
  "description": "Describes a list of dependent fields for a rule.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "dependentFields": {
      "description": "The dependent fields.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemFieldReference"
      }
    }
  }
}

FieldUpdate

{
  "description": "Describes an update request for a work item field.",
  "type": "object",
  "properties": {
    "isDeleted": {
      "description": "Indicates whether the user wants to restore the field.",
      "type": "boolean"
    },
    "isLocked": {
      "description": "Indicates whether the user wants to lock the field.",
      "type": "boolean"
    }
  }
}

GitHubConnectionCreateRequest

{
  "description": "Request model for creating a new GitHub connection. Requires a pre-existing ServiceEndpoint (use the ServiceEndpoint API to create one first).",
  "type": "object",
  "properties": {
    "gitHubRepositoryUrls": {
      "description": "List of GitHub repository URLs to include in the connection. Example: [\"https://github.com/owner/repo1\", \"https://github.com/owner/repo2\"]",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/GitHubConnectionRepoModel"
      }
    },
    "gitHubUserToken": {
      "description": "A fine-grained GH User Token with write access to repositories being added to the connection.",
      "type": "string"
    },
    "serviceEndpointId": {
      "description": "The ID of an existing service endpoint to use for authentication. Create the ServiceEndpoint first using the ServiceEndpoint API with InstallationToken scheme for Boards connections.",
      "type": "string",
      "format": "uuid"
    }
  }
}

GitHubConnectionCreateResponse

{
  "description": "Response model for GitHub connection creation",
  "type": "object",
  "properties": {
    "connection": {
      "description": "The created GitHub connection",
      "$ref": "#/components/schemas/GitHubConnectionModel"
    },
    "repositoryResults": {
      "description": "Results for each repository that was attempted to be added to the connection. Includes repository URL and any error messages.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/GitHubConnectionRepoModel"
      }
    },
    "serviceEndpointId": {
      "description": "The ID of the ServiceEndpoint that was used for this connection",
      "type": "string",
      "format": "uuid"
    }
  }
}

GitHubConnectionModel

{
  "description": "Describes Github connection.",
  "type": "object",
  "properties": {
    "authorizationType": {
      "description": "Github connection authorization type (f. e. PAT, OAuth)",
      "type": "string"
    },
    "createdBy": {
      "description": "Github connection created by",
      "$ref": "#/components/schemas/IdentityRef"
    },
    "id": {
      "description": "Github connection id",
      "type": "string",
      "format": "uuid"
    },
    "isConnectionValid": {
      "description": "Whether current Github connection is valid or not",
      "type": "boolean"
    },
    "name": {
      "description": "Github connection name (should contain organization/user name)",
      "type": "string"
    }
  }
}

GitHubConnectionRepoModel

{
  "description": "Describes Github connection's repo.",
  "type": "object",
  "properties": {
    "errorMessage": {
      "description": "Error message",
      "type": "string"
    },
    "gitHubRepositoryUrl": {
      "description": "Repository web url",
      "type": "string"
    }
  }
}

GitHubConnectionReposBatchRequest

{
  "description": "Describes Github connection's repo bulk request",
  "type": "object",
  "properties": {
    "gitHubRepositoryUrls": {
      "description": "Requested repos urls",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/GitHubConnectionRepoModel"
      }
    },
    "operationType": {
      "description": "Operation type (f. e. add, remove)",
      "type": "string"
    }
  }
}

GraphSubjectBase

{
  "description": "",
  "type": "object",
  "properties": {
    "_links": {
      "description": "This field contains zero or more interesting links about the graph subject. These links may be invoked to obtain additional relationships or more detailed information about this graph subject.",
      "$ref": "#/components/schemas/ReferenceLinks"
    },
    "descriptor": {
      "description": "The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations.",
      "type": "string"
    },
    "displayName": {
      "description": "This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider.",
      "type": "string"
    },
    "url": {
      "description": "This url is the full route to the source resource of this graph subject.",
      "type": "string"
    }
  }
}

IdentityRef

{
  "description": "",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/GraphSubjectBase"
    }
  ],
  "properties": {
    "directoryAlias": {
      "description": "Deprecated - Can be retrieved by querying the Graph user referenced in the \"self\" entry of the IdentityRef \"_links\" dictionary",
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "imageUrl": {
      "description": "Deprecated - Available in the \"avatar\" entry of the IdentityRef \"_links\" dictionary",
      "type": "string"
    },
    "inactive": {
      "description": "Deprecated - Can be retrieved by querying the Graph membership state referenced in the \"membershipState\" entry of the GraphUser \"_links\" dictionary",
      "type": "boolean"
    },
    "isAadIdentity": {
      "description": "Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsAadUserType/Descriptor.IsAadGroupType)",
      "type": "boolean"
    },
    "isContainer": {
      "description": "Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsGroupType)",
      "type": "boolean"
    },
    "isDeletedInOrigin": {
      "type": "boolean"
    },
    "profileUrl": {
      "description": "Deprecated - not in use in most preexisting implementations of ToIdentityRef",
      "type": "string"
    },
    "uniqueName": {
      "description": "Deprecated - use Domain+PrincipalName instead",
      "type": "string"
    }
  }
}

IdentityReference

{
  "description": "Describes a reference to an identity.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/IdentityRef"
    }
  ],
  "properties": {
    "id": {
      "description": "Gets or sets the identifier of the identity.",
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "description": "Legacy back-compat property. This has been the WIT specific value from Constants. Will be hidden (but exists) on the client unless they are targeting the newest version",
      "type": "string"
    }
  }
}

JsonPatchDocument

{
  "description": "The JSON model for JSON Patch Operations",
  "type": "object",
  "allOf": [
    {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/JsonPatchOperation"
      }
    }
  ],
  "properties": {}
}

JsonPatchOperation

{
  "description": "The JSON model for a JSON Patch operation",
  "type": "object",
  "properties": {
    "from": {
      "description": "The path to copy from for the Move/Copy operation.",
      "type": "string"
    },
    "op": {
      "description": "The patch operation",
      "enum": [
        "add",
        "remove",
        "replace",
        "move",
        "copy",
        "test"
      ],
      "x-ms-enum": {
        "name": "Operation",
        "values": [
          {
            "value": "add",
            "description": ""
          },
          {
            "value": "remove",
            "description": ""
          },
          {
            "value": "replace",
            "description": ""
          },
          {
            "value": "move",
            "description": ""
          },
          {
            "value": "copy",
            "description": ""
          },
          {
            "value": "test",
            "description": ""
          }
        ]
      }
    },
    "path": {
      "description": "The path for the operation. In the case of an array, a zero based index can be used to specify the position in the array (e.g. /biscuits/0/name). The \"-\" character can be used instead of an index to insert at the end of the array (e.g. /biscuits/-).",
      "type": "string"
    },
    "value": {
      "description": "The value for the operation. This is either a primitive or a JToken. Any JSON value. The pinned Swagger types this `object` because its generator renders a CLR `object` that way; the wire carries primitives here too."
    }
  }
}

MailMessage

{
  "description": "",
  "type": "object",
  "properties": {
    "body": {
      "description": "The mail body in HTML format.",
      "type": "string"
    },
    "cc": {
      "description": "CC recipients.",
      "$ref": "#/components/schemas/EmailRecipients"
    },
    "inReplyTo": {
      "description": "The in-reply-to header value",
      "type": "string"
    },
    "messageId": {
      "description": "The Message Id value",
      "type": "string"
    },
    "replyTo": {
      "description": "Reply To recipients.",
      "$ref": "#/components/schemas/EmailRecipients"
    },
    "subject": {
      "description": "The mail subject.",
      "type": "string"
    },
    "to": {
      "description": "To recipients",
      "$ref": "#/components/schemas/EmailRecipients"
    }
  }
}

ProcessIdModel

{
  "description": "Stores process ID.",
  "type": "object",
  "properties": {
    "typeId": {
      "description": "The ID of the process.",
      "type": "string",
      "format": "uuid"
    }
  }
}

ProcessMigrationResultModel

{
  "description": "Stores project ID and its process ID.",
  "type": "object",
  "properties": {
    "processId": {
      "description": "The ID of the process.",
      "type": "string",
      "format": "uuid"
    },
    "projectId": {
      "description": "The ID of the project.",
      "type": "string",
      "format": "uuid"
    }
  }
}

ProjectWorkItemStateColors

{
  "description": "Project work item type state colors",
  "type": "object",
  "properties": {
    "projectName": {
      "description": "Project name",
      "type": "string"
    },
    "workItemTypeStateColors": {
      "description": "State colors for all work item type in a project",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemTypeStateColors"
      }
    }
  }
}

ProvisioningResult

{
  "description": "Result of an update work item type XML update operation.",
  "type": "object",
  "properties": {
    "provisioningImportEvents": {
      "description": "Details about of the provisioning import events.",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}

QueryBatchGetRequest

{
  "description": "Describes a request to get a list of queries",
  "type": "object",
  "properties": {
    "$expand": {
      "description": "The expand parameters for queries. Possible options are { None, Wiql, Clauses, All, Minimal }",
      "enum": [
        "none",
        "wiql",
        "clauses",
        "all",
        "minimal"
      ],
      "x-ms-enum": {
        "name": "QueryExpand",
        "values": [
          {
            "value": "none",
            "description": "Expands Columns, Links and ChangeInfo"
          },
          {
            "value": "wiql",
            "description": "Expands Columns, Links,  ChangeInfo and WIQL text"
          },
          {
            "value": "clauses",
            "description": "Expands Columns, Links, ChangeInfo, WIQL text and clauses"
          },
          {
            "value": "all",
            "description": "Expands all properties"
          },
          {
            "value": "minimal",
            "description": "Displays minimal properties and the WIQL text"
          }
        ]
      }
    },
    "errorPolicy": {
      "description": "The flag to control error policy in a query batch request. Possible options are { Fail, Omit }.",
      "enum": [
        "fail",
        "omit"
      ],
      "x-ms-enum": {
        "name": "QueryErrorPolicy",
        "values": [
          {
            "value": "fail",
            "description": ""
          },
          {
            "value": "omit",
            "description": ""
          }
        ]
      }
    },
    "ids": {
      "description": "The requested query ids",
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    }
  }
}

QueryHierarchyItem

{
  "description": "Represents an item in the work item query hierarchy. This can be either a query or a folder.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "children": {
      "description": "The child query items inside a query folder.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/QueryHierarchyItem"
      }
    },
    "clauses": {
      "description": "The clauses for a flat query.",
      "$ref": "#/components/schemas/WorkItemQueryClause"
    },
    "columns": {
      "description": "The columns of the query.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemFieldReference"
      }
    },
    "createdBy": {
      "description": "The identity who created the query item.",
      "$ref": "#/components/schemas/IdentityReference"
    },
    "createdDate": {
      "description": "When the query item was created.",
      "type": "string",
      "format": "date-time"
    },
    "filterOptions": {
      "description": "The link query mode.",
      "enum": [
        "workItems",
        "linksOneHopMustContain",
        "linksOneHopMayContain",
        "linksOneHopDoesNotContain",
        "linksRecursiveMustContain",
        "linksRecursiveMayContain",
        "linksRecursiveDoesNotContain"
      ],
      "x-ms-enum": {
        "name": "LinkQueryMode",
        "values": [
          {
            "value": "workItems",
            "description": "Returns flat list of work items."
          },
          {
            "value": "linksOneHopMustContain",
            "description": "Returns work items where the source, target, and link criteria are all satisfied."
          },
          {
            "value": "linksOneHopMayContain",
            "description": "Returns work items that satisfy the source and link criteria, even if no linked work item satisfies the target criteria."
          },
          {
            "value": "linksOneHopDoesNotContain",
            "description": "Returns work items that satisfy the source, only if no linked work item satisfies the link and target criteria."
          },
          {
            "value": "linksRecursiveMustContain",
            "description": ""
          },
          {
            "value": "linksRecursiveMayContain",
            "description": "Returns work items a hierarchy of work items that by default satisfy the source"
          },
          {
            "value": "linksRecursiveDoesNotContain",
            "description": ""
          }
        ]
      }
    },
    "hasChildren": {
      "description": "If this is a query folder, indicates if it contains any children.",
      "type": "boolean"
    },
    "id": {
      "description": "The id of the query item.",
      "type": "string",
      "format": "uuid"
    },
    "isDeleted": {
      "description": "Indicates if this query item is deleted. Setting this to false on a deleted query item will undelete it. Undeleting a query or folder will not bring back the permission changes that were previously applied to it.",
      "type": "boolean"
    },
    "isFolder": {
      "description": "Indicates if this is a query folder or a query.",
      "type": "boolean"
    },
    "isInvalidSyntax": {
      "description": "Indicates if the WIQL of this query is invalid. This could be due to invalid syntax or a no longer valid area/iteration path.",
      "type": "boolean"
    },
    "isPublic": {
      "description": "Indicates if this query item is public or private.",
      "type": "boolean"
    },
    "lastExecutedBy": {
      "description": "The identity who last ran the query.",
      "$ref": "#/components/schemas/IdentityReference"
    },
    "lastExecutedDate": {
      "description": "When the query was last run.",
      "type": "string",
      "format": "date-time"
    },
    "lastModifiedBy": {
      "description": "The identity who last modified the query item.",
      "$ref": "#/components/schemas/IdentityReference"
    },
    "lastModifiedDate": {
      "description": "When the query item was last modified.",
      "type": "string",
      "format": "date-time"
    },
    "linkClauses": {
      "description": "The link query clause.",
      "$ref": "#/components/schemas/WorkItemQueryClause"
    },
    "name": {
      "description": "The name of the query item.",
      "type": "string"
    },
    "path": {
      "description": "The path of the query item.",
      "type": "string"
    },
    "queryRecursionOption": {
      "description": "The recursion option for use in a tree query.",
      "enum": [
        "parentFirst",
        "childFirst"
      ],
      "x-ms-enum": {
        "name": "QueryRecursionOption",
        "values": [
          {
            "value": "parentFirst",
            "description": "Returns work items that satisfy the source, even if no linked work item satisfies the target and link criteria."
          },
          {
            "value": "childFirst",
            "description": "Returns work items that satisfy the target criteria, even if no work item satisfies the source and link criteria."
          }
        ]
      }
    },
    "queryType": {
      "description": "The type of query.",
      "enum": [
        "flat",
        "tree",
        "oneHop"
      ],
      "x-ms-enum": {
        "name": "QueryType",
        "values": [
          {
            "value": "flat",
            "description": "Gets a flat list of work items."
          },
          {
            "value": "tree",
            "description": "Gets a tree of work items showing their link hierarchy."
          },
          {
            "value": "oneHop",
            "description": "Gets a list of work items and their direct links."
          }
        ]
      }
    },
    "sortColumns": {
      "description": "The sort columns of the query.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemQuerySortColumn"
      }
    },
    "sourceClauses": {
      "description": "The source clauses in a tree or one-hop link query.",
      "$ref": "#/components/schemas/WorkItemQueryClause"
    },
    "targetClauses": {
      "description": "The target clauses in a tree or one-hop link query.",
      "$ref": "#/components/schemas/WorkItemQueryClause"
    },
    "wiql": {
      "description": "The WIQL text of the query",
      "type": "string"
    }
  }
}

QueryHierarchyItemsResult

{
  "description": "",
  "type": "object",
  "properties": {
    "count": {
      "description": "The count of items.",
      "type": "integer",
      "format": "int32"
    },
    "hasMore": {
      "description": "Indicates if the max return limit was hit but there are still more items",
      "type": "boolean"
    },
    "value": {
      "description": "The list of items",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/QueryHierarchyItem"
      }
    }
  }
}

ReportingWorkItemLinksBatch

{
  "description": "",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/StreamedBatch"
    }
  ],
  "properties": {}
}

ReportingWorkItemRevisionsBatch

{
  "description": "",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/StreamedBatch"
    }
  ],
  "properties": {}
}

ReportingWorkItemRevisionsFilter

{
  "description": "The class represents the reporting work item revision filer.",
  "type": "object",
  "properties": {
    "fields": {
      "description": "A list of fields to return in work item revisions. Omit this parameter to get all reportable fields.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "includeDeleted": {
      "description": "Include deleted work item in the result.",
      "type": "boolean"
    },
    "includeIdentityRef": {
      "description": "Return an identity reference instead of a string value for identity fields.",
      "type": "boolean"
    },
    "includeLatestOnly": {
      "description": "Include only the latest version of a work item, skipping over all previous revisions of the work item.",
      "type": "boolean"
    },
    "includeTagRef": {
      "description": "Include tag reference instead of string value for System.Tags field",
      "type": "boolean"
    },
    "types": {
      "description": "A list of types to filter the results to specific work item types. Omit this parameter to get work item revisions of all work item types.",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}

SendMailBody

{
  "description": "",
  "type": "object",
  "properties": {
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      }
    },
    "message": {
      "$ref": "#/components/schemas/MailMessage"
    },
    "persistenceId": {
      "type": "string",
      "format": "uuid"
    },
    "projectId": {
      "type": "string"
    },
    "sortFields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "tempQueryId": {
      "type": "string"
    },
    "wiql": {
      "type": "string"
    }
  }
}

StreamedBatch

{
  "description": "The class describes reporting work item revision batch.",
  "type": "object",
  "properties": {
    "continuationToken": {
      "description": "ContinuationToken acts as a waterMark. Used while querying large results.",
      "type": "string"
    },
    "isLastBatch": {
      "description": "Returns 'true' if it's last batch, 'false' otherwise.",
      "type": "boolean"
    },
    "nextLink": {
      "description": "The next link for the work item.",
      "type": "string"
    },
    "values": {
      "description": "Values such as rel, sourceId, TargetId, ChangedDate, isActive.",
      "type": "array",
      "items": {
        "description": "Any JSON value. The pinned Swagger erases this generic type parameter to a string and leaves format \"T\" behind."
      }
    }
  }
}

TeamContext

{
  "description": "The Team Context for an operation.",
  "type": "object",
  "properties": {
    "project": {
      "description": "The team project Id or name.  Ignored if ProjectId is set.",
      "type": "string"
    },
    "projectId": {
      "description": "The Team Project ID.  Required if Project is not set.",
      "type": "string",
      "format": "uuid"
    },
    "team": {
      "description": "The Team Id or name.  Ignored if TeamId is set.",
      "type": "string"
    },
    "teamId": {
      "description": "The Team Id",
      "type": "string",
      "format": "uuid"
    }
  }
}

TemporaryQueryRequestModel

{
  "description": "Describes a request to create a temporary query",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "wiql": {
      "description": "The WIQL text of the temporary query",
      "type": "string"
    }
  }
}

TemporaryQueryResponseModel

{
  "description": "The result of a temporary query creation.",
  "type": "object",
  "properties": {
    "id": {
      "description": "The id of the temporary query item.",
      "type": "string",
      "format": "uuid"
    }
  }
}

UpdateWorkItemField

{
  "description": "Describes an update request for a work item field.",
  "type": "object",
  "properties": {
    "isDeleted": {
      "description": "Indicates whether the user wants to restore the field.",
      "type": "boolean"
    }
  }
}

VssJsonCollectionWrapper

{
  "description": "This class is used to serialize collections as a single JSON object on the wire.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/VssJsonCollectionWrapperBase"
    }
  ],
  "properties": {
    "value": {
      "description": "The serialized item. Any JSON value. The pinned Swagger erases this generic type parameter to a string and leaves format \"T\" behind."
    }
  }
}

VssJsonCollectionWrapperBase

{
  "description": "",
  "type": "object",
  "properties": {
    "count": {
      "description": "The number of serialized items.",
      "type": "integer",
      "format": "int32"
    }
  }
}

Wiql

{
  "description": "A WIQL query",
  "type": "object",
  "properties": {
    "query": {
      "description": "The text of the WIQL query",
      "type": "string"
    }
  }
}

WorkItem

{
  "description": "Describes a work item.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "commentVersionRef": {
      "description": "Reference to a specific version of the comment added/edited/deleted in this revision.",
      "$ref": "#/components/schemas/WorkItemCommentVersionRef"
    },
    "fields": {
      "description": "Map of field and values for the work item.",
      "type": "object",
      "additionalProperties": {
        "description": "Any JSON value. The pinned Swagger types this `object` because its generator renders a CLR `object` that way; the wire carries primitives here too."
      }
    },
    "id": {
      "description": "The work item ID.",
      "type": "integer",
      "format": "int32"
    },
    "multilineFieldsFormat": {
      "description": "Dictionary describing the Format for multiline fields selected by the last edit user.",
      "type": "object",
      "additionalProperties": {
        "enum": [
          "markdown",
          "html"
        ],
        "x-ms-enum": {
          "name": "LargeTextCustomHtmlFormat",
          "values": [
            {
              "value": "markdown",
              "description": "Markdown format for text content."
            },
            {
              "value": "html",
              "description": "HTML format for text content."
            }
          ]
        }
      }
    },
    "relations": {
      "description": "Relations of the work item.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemRelation"
      }
    },
    "rev": {
      "description": "Revision number of the work item.",
      "type": "integer",
      "format": "int32"
    }
  }
}

WorkItemBatchGetRequest

{
  "description": "Describes a request to get a set of work items",
  "type": "object",
  "properties": {
    "$expand": {
      "description": "The expand parameters for work item attributes. Possible options are { None, Relations, Fields, Links, All }",
      "enum": [
        "none",
        "relations",
        "fields",
        "links",
        "all"
      ],
      "x-ms-enum": {
        "name": "WorkItemExpand",
        "values": [
          {
            "value": "none",
            "description": "Default behavior."
          },
          {
            "value": "relations",
            "description": "Relations work item expand."
          },
          {
            "value": "fields",
            "description": "Fields work item expand."
          },
          {
            "value": "links",
            "description": "Links work item expand."
          },
          {
            "value": "all",
            "description": "Expands all."
          }
        ]
      }
    },
    "asOf": {
      "description": "AsOf UTC date time string",
      "type": "string",
      "format": "date-time"
    },
    "errorPolicy": {
      "description": "The flag to control error policy in a bulk get work items request. Possible options are {Fail, Omit}.",
      "enum": [
        "fail",
        "omit"
      ],
      "x-ms-enum": {
        "name": "WorkItemErrorPolicy",
        "values": [
          {
            "value": "fail",
            "description": "Fail work error policy."
          },
          {
            "value": "omit",
            "description": "Omit work error policy."
          }
        ]
      }
    },
    "fields": {
      "description": "The requested fields",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ids": {
      "description": "The requested work item ids",
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      }
    }
  }
}

WorkItemClassificationNode

{
  "description": "Defines a classification node for work item tracking.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "attributes": {
      "description": "Dictionary that has node attributes like start/finish date for iteration nodes.",
      "type": "object",
      "additionalProperties": {
        "description": "Any JSON value. The pinned Swagger types this `object` because its generator renders a CLR `object` that way; the wire carries primitives here too."
      }
    },
    "children": {
      "description": "List of child nodes fetched.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemClassificationNode"
      }
    },
    "hasChildren": {
      "description": "Flag that indicates if the classification node has any child nodes.",
      "type": "boolean"
    },
    "id": {
      "description": "Integer ID of the classification node.",
      "type": "integer",
      "format": "int32"
    },
    "identifier": {
      "description": "GUID ID of the classification node.",
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "description": "Name of the classification node.",
      "type": "string"
    },
    "path": {
      "description": "Path of the classification node.",
      "type": "string"
    },
    "structureType": {
      "description": "Node structure type.",
      "enum": [
        "area",
        "iteration"
      ],
      "x-ms-enum": {
        "name": "TreeNodeStructureType",
        "values": [
          {
            "value": "area",
            "description": "Area type."
          },
          {
            "value": "iteration",
            "description": "Iteration type."
          }
        ]
      }
    }
  }
}

WorkItemComment

{
  "description": "Comment on Work Item",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "format": {
      "description": "Represents the possible types for the comment format.",
      "enum": [
        "markdown",
        "html"
      ],
      "x-ms-enum": {
        "name": "CommentFormat",
        "values": [
          {
            "value": "markdown",
            "description": ""
          },
          {
            "value": "html",
            "description": ""
          }
        ]
      }
    },
    "renderedText": {
      "description": "The text of the comment in HTML format.",
      "type": "string"
    },
    "revisedBy": {
      "description": "Identity of user who added the comment.",
      "$ref": "#/components/schemas/IdentityReference"
    },
    "revisedDate": {
      "description": "The date of comment.",
      "type": "string",
      "format": "date-time"
    },
    "revision": {
      "description": "The work item revision number.",
      "type": "integer",
      "format": "int32"
    },
    "text": {
      "description": "The text of the comment.",
      "type": "string"
    }
  }
}

WorkItemComments

{
  "description": "Collection of comments.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "comments": {
      "description": "Comments collection.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemComment"
      }
    },
    "count": {
      "description": "The count of comments.",
      "type": "integer",
      "format": "int32"
    },
    "fromRevisionCount": {
      "description": "Count of comments from the revision.",
      "type": "integer",
      "format": "int32"
    },
    "totalCount": {
      "description": "Total count of comments.",
      "type": "integer",
      "format": "int32"
    }
  }
}

WorkItemCommentVersionRef

{
  "description": "Represents the reference to a specific version of a comment on a Work Item.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResourceReference"
    }
  ],
  "properties": {
    "commentId": {
      "description": "The id assigned to the comment.",
      "type": "integer",
      "format": "int32"
    },
    "createdInRevision": {
      "description": "[Internal] The work item revision where this comment was originally added.",
      "type": "integer",
      "format": "int32"
    },
    "isDeleted": {
      "description": "[Internal] Specifies whether comment was deleted.",
      "type": "boolean"
    },
    "text": {
      "description": "[Internal] The text of the comment.",
      "type": "string"
    },
    "version": {
      "description": "The version number.",
      "type": "integer",
      "format": "int32"
    }
  }
}

WorkItemDelete

{
  "description": "Full deleted work item object. Includes the work item itself.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemDeleteReference"
    }
  ],
  "properties": {
    "resource": {
      "description": "The work item object that was deleted.",
      "$ref": "#/components/schemas/WorkItem"
    }
  }
}

WorkItemDeleteBatch

{
  "description": "Describes response to delete a set of work items.",
  "type": "object",
  "properties": {
    "results": {
      "description": "List of results for each work item",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemDelete"
      }
    }
  }
}

WorkItemDeleteBatchRequest

{
  "description": "Describes a request to delete a set of work items",
  "type": "object",
  "properties": {
    "destroy": {
      "description": "Optional parameter, if set to true, the work item is deleted permanently. Please note: the destroy action is PERMANENT and cannot be undone.",
      "type": "boolean"
    },
    "ids": {
      "description": "The requested work item ids",
      "type": "array",
      "items": {
        "type": "integer",
        "format": "int32"
      }
    },
    "skipNotifications": {
      "description": "Optional parameter, if set to true, notifications will be disabled.",
      "type": "boolean"
    }
  }
}

WorkItemDeleteReference

{
  "description": "Reference to a deleted work item.",
  "type": "object",
  "properties": {
    "code": {
      "description": "The HTTP status code for work item operation in a batch request.",
      "type": "integer",
      "format": "int32"
    },
    "deletedBy": {
      "description": "The user who deleted the work item type.",
      "type": "string"
    },
    "deletedDate": {
      "description": "The work item deletion date.",
      "type": "string"
    },
    "id": {
      "description": "Work item ID.",
      "type": "integer",
      "format": "int32"
    },
    "message": {
      "description": "The exception message for work item operation in a batch request.",
      "type": "string"
    },
    "name": {
      "description": "Name or title of the work item.",
      "type": "string"
    },
    "project": {
      "description": "Parent project of the deleted work item.",
      "type": "string"
    },
    "type": {
      "description": "Type of work item.",
      "type": "string"
    },
    "url": {
      "description": "REST API URL of the resource",
      "type": "string"
    }
  }
}

WorkItemDeleteShallowReference

{
  "description": "Shallow Reference to a deleted work item.",
  "type": "object",
  "properties": {
    "id": {
      "description": "Work item ID.",
      "type": "integer",
      "format": "int32"
    },
    "url": {
      "description": "REST API URL of the resource",
      "type": "string"
    }
  }
}

WorkItemDeleteUpdate

{
  "description": "Describes an update request for a deleted work item.",
  "type": "object",
  "properties": {
    "isDeleted": {
      "description": "Sets a value indicating whether this work item is deleted.",
      "type": "boolean"
    }
  }
}

WorkItemField

{
  "description": "Describes a field on a work item and it's properties specific to that work item type.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "canSortBy": {
      "description": "Indicates whether the field is sortable in server queries.",
      "type": "boolean"
    },
    "description": {
      "description": "The description of the field.",
      "type": "string"
    },
    "isDeleted": {
      "description": "Indicates whether this field is deleted.",
      "type": "boolean"
    },
    "isIdentity": {
      "description": "Indicates whether this field is an identity field.",
      "type": "boolean"
    },
    "isPicklist": {
      "description": "Indicates whether this instance is picklist.",
      "type": "boolean"
    },
    "isPicklistSuggested": {
      "description": "Indicates whether this instance is a suggested picklist .",
      "type": "boolean"
    },
    "isQueryable": {
      "description": "Indicates whether the field can be queried in the server.",
      "type": "boolean"
    },
    "name": {
      "description": "The name of the field.",
      "type": "string"
    },
    "picklistId": {
      "description": "If this field is picklist, the identifier of the picklist associated, otherwise null",
      "type": "string",
      "format": "uuid"
    },
    "readOnly": {
      "description": "Indicates whether the field is [read only].",
      "type": "boolean"
    },
    "referenceName": {
      "description": "The reference name of the field.",
      "type": "string"
    },
    "supportedOperations": {
      "description": "The supported operations on this field.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemFieldOperation"
      }
    },
    "type": {
      "description": "The type of the field.",
      "enum": [
        "string",
        "integer",
        "dateTime",
        "plainText",
        "html",
        "treePath",
        "history",
        "double",
        "guid",
        "boolean",
        "identity",
        "picklistString",
        "picklistInteger",
        "picklistDouble"
      ],
      "x-ms-enum": {
        "name": "FieldType",
        "values": [
          {
            "value": "string",
            "description": "String field type."
          },
          {
            "value": "integer",
            "description": "Integer field type."
          },
          {
            "value": "dateTime",
            "description": "Datetime field type."
          },
          {
            "value": "plainText",
            "description": "Plain text field type."
          },
          {
            "value": "html",
            "description": "HTML (Multiline) field type."
          },
          {
            "value": "treePath",
            "description": "Treepath field type."
          },
          {
            "value": "history",
            "description": "History field type."
          },
          {
            "value": "double",
            "description": "Double field type."
          },
          {
            "value": "guid",
            "description": "Guid field type."
          },
          {
            "value": "boolean",
            "description": "Boolean field type."
          },
          {
            "value": "identity",
            "description": "Identity field type."
          },
          {
            "value": "picklistString",
            "description": "String picklist field type. When creating a string picklist field from REST API, use \"String\" FieldType."
          },
          {
            "value": "picklistInteger",
            "description": "Integer picklist field type. When creating a integer picklist field from REST API, use \"Integer\" FieldType."
          },
          {
            "value": "picklistDouble",
            "description": "Double picklist field type. When creating a double picklist field from REST API, use \"Double\" FieldType."
          }
        ]
      }
    },
    "usage": {
      "description": "The usage of the field.",
      "enum": [
        "none",
        "workItem",
        "workItemLink",
        "tree",
        "workItemTypeExtension"
      ],
      "x-ms-enum": {
        "name": "FieldUsage",
        "values": [
          {
            "value": "none",
            "description": "Empty usage."
          },
          {
            "value": "workItem",
            "description": "Work item field usage."
          },
          {
            "value": "workItemLink",
            "description": "Work item link field usage."
          },
          {
            "value": "tree",
            "description": "Treenode field usage."
          },
          {
            "value": "workItemTypeExtension",
            "description": "Work Item Type Extension usage."
          }
        ]
      }
    }
  }
}

WorkItemField2

{
  "description": "Describes a field on a work item and it's properties specific to that work item type.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemField"
    }
  ],
  "properties": {
    "isLocked": {
      "description": "Indicates whether this field is marked as locked for editing.",
      "type": "boolean"
    }
  }
}

WorkItemFieldAllowedValues

{
  "description": "Describes the list of allowed values of the field.",
  "type": "object",
  "properties": {
    "allowedValues": {
      "description": "The list of field allowed values.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "fieldName": {
      "description": "Name of the field.",
      "type": "string"
    }
  }
}

WorkItemFieldOperation

{
  "description": "Describes a work item field operation.",
  "type": "object",
  "properties": {
    "name": {
      "description": "Friendly name of the operation.",
      "type": "string"
    },
    "referenceName": {
      "description": "Reference name of the operation.",
      "type": "string"
    }
  }
}

WorkItemFieldReference

{
  "description": "Reference to a field in a work item",
  "type": "object",
  "properties": {
    "name": {
      "description": "The friendly name of the field.",
      "type": "string"
    },
    "referenceName": {
      "description": "The reference name of the field.",
      "type": "string"
    },
    "url": {
      "description": "The REST URL of the resource.",
      "type": "string"
    }
  }
}

WorkItemFieldUpdate

{
  "description": "Describes an update to a work item field.",
  "type": "object",
  "properties": {
    "newValue": {
      "description": "The new value of the field. Any JSON value. The pinned Swagger types this `object` because its generator renders a CLR `object` that way; the wire carries primitives here too."
    },
    "oldValue": {
      "description": "The old value of the field. Any JSON value. The pinned Swagger types this `object` because its generator renders a CLR `object` that way; the wire carries primitives here too."
    }
  }
}

WorkItemHistory

{
  "description": "",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "rev": {
      "type": "integer",
      "format": "int32"
    },
    "revisedBy": {
      "$ref": "#/components/schemas/IdentityReference"
    },
    "revisedDate": {
      "type": "string",
      "format": "date-time"
    },
    "value": {
      "type": "string"
    }
  }
}

WorkItemIcon

{
  "description": "Reference to a work item icon.",
  "type": "object",
  "properties": {
    "id": {
      "description": "The identifier of the icon.",
      "type": "string"
    },
    "url": {
      "description": "The REST URL of the resource.",
      "type": "string"
    }
  }
}

WorkItemNextStateOnTransition

{
  "description": "Describes the next state for a work item.",
  "type": "object",
  "properties": {
    "errorCode": {
      "description": "Error code if there is no next state transition possible.",
      "type": "string"
    },
    "id": {
      "description": "Work item ID.",
      "type": "integer",
      "format": "int32"
    },
    "message": {
      "description": "Error message if there is no next state transition possible.",
      "type": "string"
    },
    "stateOnTransition": {
      "description": "Name of the next state on transition.",
      "type": "string"
    }
  }
}

WorkItemQueryClause

{
  "description": "Represents a clause in a work item query. This shows the structure of a work item query.",
  "type": "object",
  "properties": {
    "clauses": {
      "description": "Child clauses if the current clause is a logical operator",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemQueryClause"
      }
    },
    "field": {
      "description": "Field associated with condition",
      "$ref": "#/components/schemas/WorkItemFieldReference"
    },
    "fieldValue": {
      "description": "Right side of the condition when a field to field comparison",
      "$ref": "#/components/schemas/WorkItemFieldReference"
    },
    "isFieldValue": {
      "description": "Determines if this is a field to field comparison",
      "type": "boolean"
    },
    "logicalOperator": {
      "description": "Logical operator separating the condition clause",
      "enum": [
        "none",
        "and",
        "or"
      ],
      "x-ms-enum": {
        "name": "LogicalOperation",
        "values": [
          {
            "value": "none",
            "description": ""
          },
          {
            "value": "and",
            "description": ""
          },
          {
            "value": "or",
            "description": ""
          }
        ]
      }
    },
    "operator": {
      "description": "The field operator",
      "$ref": "#/components/schemas/WorkItemFieldOperation"
    },
    "value": {
      "description": "Right side of the condition when a field to value comparison",
      "type": "string"
    }
  }
}

WorkItemQueryResult

{
  "description": "The result of a work item query.",
  "type": "object",
  "properties": {
    "asOf": {
      "description": "The date the query was run in the context of.",
      "type": "string",
      "format": "date-time"
    },
    "columns": {
      "description": "The columns of the query.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemFieldReference"
      }
    },
    "queryResultType": {
      "description": "The result type",
      "enum": [
        "workItem",
        "workItemLink"
      ],
      "x-ms-enum": {
        "name": "QueryResultType",
        "values": [
          {
            "value": "workItem",
            "description": "A list of work items (for flat queries)."
          },
          {
            "value": "workItemLink",
            "description": "A list of work item links (for OneHop and Tree queries)."
          }
        ]
      }
    },
    "queryType": {
      "description": "The type of the query",
      "enum": [
        "flat",
        "tree",
        "oneHop"
      ],
      "x-ms-enum": {
        "name": "QueryType",
        "values": [
          {
            "value": "flat",
            "description": "Gets a flat list of work items."
          },
          {
            "value": "tree",
            "description": "Gets a tree of work items showing their link hierarchy."
          },
          {
            "value": "oneHop",
            "description": "Gets a list of work items and their direct links."
          }
        ]
      }
    },
    "sortColumns": {
      "description": "The sort columns of the query.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemQuerySortColumn"
      }
    },
    "workItemRelations": {
      "description": "The work item links returned by the query.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemLink"
      }
    },
    "workItems": {
      "description": "The work items returned by the query.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemReference"
      }
    }
  }
}

WorkItemQuerySortColumn

{
  "description": "A sort column.",
  "type": "object",
  "properties": {
    "descending": {
      "description": "The direction to sort by.",
      "type": "boolean"
    },
    "field": {
      "description": "A work item field.",
      "$ref": "#/components/schemas/WorkItemFieldReference"
    }
  }
}

WorkItemReference

{
  "description": "Contains reference to a work item.",
  "type": "object",
  "properties": {
    "id": {
      "description": "Work item ID.",
      "type": "integer",
      "format": "int32"
    },
    "url": {
      "description": "REST API URL of the resource",
      "type": "string"
    }
  }
}

WorkItemRelation

{
  "description": "",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Link"
    }
  ],
  "properties": {}
}

WorkItemRelationType

{
  "description": "Represents the work item type relation type.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingReference"
    }
  ],
  "properties": {
    "attributes": {
      "description": "The collection of relation type attributes.",
      "type": "object",
      "additionalProperties": {
        "description": "Any JSON value. The pinned Swagger types this `object` because its generator renders a CLR `object` that way; the wire carries primitives here too."
      }
    }
  }
}

WorkItemRelationUpdates

{
  "description": "Describes updates to a work item's relations.",
  "type": "object",
  "properties": {
    "added": {
      "description": "List of newly added relations.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemRelation"
      }
    },
    "removed": {
      "description": "List of removed relations.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemRelation"
      }
    },
    "updated": {
      "description": "List of updated relations.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemRelation"
      }
    }
  }
}

WorkItemStateColor

{
  "description": "Work item type state name, color and state category",
  "type": "object",
  "properties": {
    "category": {
      "description": "Category of state",
      "type": "string"
    },
    "color": {
      "description": "Color value",
      "type": "string"
    },
    "name": {
      "description": "Work item type state name",
      "type": "string"
    }
  }
}

WorkItemStateTransition

{
  "description": "Describes a state transition in a work item.",
  "type": "object",
  "properties": {
    "actions": {
      "description": "Gets a list of actions needed to transition to that state.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "to": {
      "description": "Name of the next state.",
      "type": "string"
    }
  }
}

WorkItemTagDefinition

{
  "description": "",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "lastUpdated": {
      "type": "string",
      "format": "date-time"
    },
    "name": {
      "type": "string"
    },
    "url": {
      "type": "string"
    }
  }
}

WorkItemTemplate

{
  "description": "Describes a work item template.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTemplateReference"
    }
  ],
  "properties": {
    "fields": {
      "description": "Mapping of field and its templated value.",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    }
  }
}

WorkItemTemplateReference

{
  "description": "Describes a shallow reference to a work item template.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "description": {
      "description": "The description of the work item template.",
      "type": "string"
    },
    "id": {
      "description": "The identifier of the work item template.",
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "description": "The name of the work item template.",
      "type": "string"
    },
    "workItemTypeName": {
      "description": "The name of the work item type.",
      "type": "string"
    }
  }
}

WorkItemTrackingReference

{
  "description": "",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "name": {
      "description": "The name.",
      "type": "string"
    },
    "referenceName": {
      "description": "The reference name.",
      "type": "string"
    }
  }
}

WorkItemTrackingResource

{
  "description": "Base class for WIT REST resources.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResourceReference"
    }
  ],
  "properties": {
    "_links": {
      "description": "Link references to related REST resources.",
      "$ref": "#/components/schemas/ReferenceLinks"
    }
  }
}

WorkItemTrackingResourceReference

{
  "description": "Base class for work item tracking resource references.",
  "type": "object",
  "properties": {
    "url": {
      "description": "REST URL for the resource.",
      "type": "string"
    }
  }
}

WorkItemType

{
  "description": "Describes a work item type.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "color": {
      "description": "The color.",
      "type": "string"
    },
    "description": {
      "description": "The description of the work item type.",
      "type": "string"
    },
    "fieldInstances": {
      "description": "The fields that exist on the work item type.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemTypeFieldInstance"
      }
    },
    "fields": {
      "description": "The fields that exist on the work item type.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemTypeFieldInstance"
      }
    },
    "icon": {
      "description": "The icon of the work item type.",
      "$ref": "#/components/schemas/WorkItemIcon"
    },
    "isDisabled": {
      "description": "True if work item type is disabled",
      "type": "boolean"
    },
    "name": {
      "description": "Gets the name of the work item type.",
      "type": "string"
    },
    "referenceName": {
      "description": "The reference name of the work item type.",
      "type": "string"
    },
    "states": {
      "description": "Gets state information for the work item type.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemStateColor"
      }
    },
    "transitions": {
      "description": "Gets the various state transition mappings in the work item type.",
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/WorkItemStateTransition"
        }
      }
    },
    "xmlForm": {
      "description": "The XML form.",
      "type": "string"
    }
  }
}

WorkItemTypeCategory

{
  "description": "Describes a work item type category.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "defaultWorkItemType": {
      "description": "Gets or sets the default type of the work item.",
      "$ref": "#/components/schemas/WorkItemTypeReference"
    },
    "name": {
      "description": "The name of the category.",
      "type": "string"
    },
    "referenceName": {
      "description": "The reference name of the category.",
      "type": "string"
    },
    "workItemTypes": {
      "description": "The work item types that belong to the category.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemTypeReference"
      }
    }
  }
}

WorkItemTypeColor

{
  "description": "Describes a work item type's colors.",
  "type": "object",
  "properties": {
    "primaryColor": {
      "description": "Gets or sets the color of the primary.",
      "type": "string"
    },
    "secondaryColor": {
      "description": "Gets or sets the color of the secondary.",
      "type": "string"
    },
    "workItemTypeName": {
      "description": "The name of the work item type.",
      "type": "string"
    }
  }
}

WorkItemTypeColorAndIcon

{
  "description": "Describes work item type name, its icon and color.",
  "type": "object",
  "properties": {
    "color": {
      "description": "The color of the work item type in hex format.",
      "type": "string"
    },
    "icon": {
      "description": "The work item type icon.",
      "type": "string"
    },
    "isDisabled": {
      "description": "Indicates if the work item is disabled in the process.",
      "type": "boolean"
    },
    "workItemTypeName": {
      "description": "The name of the work item type.",
      "type": "string"
    }
  }
}

WorkItemTypeFieldInstance

{
  "description": "Field instance of a work item type.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTypeFieldInstanceBase"
    }
  ],
  "properties": {
    "allowedValues": {
      "description": "The list of field allowed values.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "defaultValue": {
      "description": "Represents the default value of the field.",
      "type": "string"
    }
  }
}

WorkItemTypeFieldInstanceBase

{
  "description": "Base field instance for workItemType fields.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemFieldReference"
    }
  ],
  "properties": {
    "alwaysRequired": {
      "description": "Indicates whether field value is always required.",
      "type": "boolean"
    },
    "dependentFields": {
      "description": "The list of dependent fields.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemFieldReference"
      }
    },
    "helpText": {
      "description": "Gets the help text for the field.",
      "type": "string"
    }
  }
}

WorkItemTypeFieldWithReferences

{
  "description": "Field Instance of a workItemype with detailed references.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTypeFieldInstanceBase"
    }
  ],
  "properties": {
    "allowedValues": {
      "description": "The list of field allowed values.",
      "type": "array",
      "items": {
        "description": "Any JSON value. The pinned Swagger types this `object` because its generator renders a CLR `object` that way; the wire carries primitives here too."
      }
    },
    "defaultValue": {
      "description": "Represents the default value of the field. Any JSON value. The pinned Swagger types this `object` because its generator renders a CLR `object` that way; the wire carries primitives here too."
    }
  }
}

WorkItemTypeReference

{
  "description": "Reference to a work item type.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResourceReference"
    }
  ],
  "properties": {
    "name": {
      "description": "Name of the work item type.",
      "type": "string"
    }
  }
}

WorkItemTypeStateColors

{
  "description": "State colors for a work item type",
  "type": "object",
  "properties": {
    "stateColors": {
      "description": "Work item type state colors",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkItemStateColor"
      }
    },
    "workItemTypeName": {
      "description": "Work item type name",
      "type": "string"
    }
  }
}

WorkItemTypeTemplate

{
  "description": "Describes a work item type template.",
  "type": "object",
  "properties": {
    "template": {
      "description": "XML template in string format.",
      "type": "string"
    }
  }
}

WorkItemTypeTemplateUpdateModel

{
  "description": "Describes a update work item type template request body.",
  "type": "object",
  "properties": {
    "actionType": {
      "description": "Describes the type of the action for the update request.",
      "enum": [
        "import",
        "validate"
      ],
      "x-ms-enum": {
        "name": "ProvisioningActionType",
        "values": [
          {
            "value": "import",
            "description": ""
          },
          {
            "value": "validate",
            "description": ""
          }
        ]
      }
    },
    "methodology": {
      "description": "Methodology to which the template belongs, eg. Agile, Scrum, CMMI.",
      "type": "string"
    },
    "template": {
      "description": "String representation of the work item type template.",
      "type": "string"
    },
    "templateType": {
      "description": "The type of the template described in the request body.",
      "enum": [
        "workItemType",
        "globalWorkflow"
      ],
      "x-ms-enum": {
        "name": "TemplateType",
        "values": [
          {
            "value": "workItemType",
            "description": ""
          },
          {
            "value": "globalWorkflow",
            "description": ""
          }
        ]
      }
    }
  }
}

WorkItemUpdate

{
  "description": "Describes an update to a work item.",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/WorkItemTrackingResource"
    }
  ],
  "properties": {
    "fields": {
      "description": "List of updates to fields.",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/components/schemas/WorkItemFieldUpdate"
      }
    },
    "id": {
      "description": "ID of update.",
      "type": "integer",
      "format": "int32"
    },
    "relations": {
      "description": "List of updates to relations.",
      "$ref": "#/components/schemas/WorkItemRelationUpdates"
    },
    "rev": {
      "description": "The revision number of work item update.",
      "type": "integer",
      "format": "int32"
    },
    "revisedBy": {
      "description": "Identity for the work item update.",
      "$ref": "#/components/schemas/IdentityReference"
    },
    "revisedDate": {
      "description": "The work item updates revision date.",
      "type": "string",
      "format": "date-time"
    },
    "workItemId": {
      "description": "The work item ID.",
      "type": "integer",
      "format": "int32"
    }
  }
}

WrappedException

{
  "type": "object",
  "description": "Azure DevOps error envelope (WrappedException). Sourced from Microsoft's azure-devops-extension-api reference, not from the Work Item Tracking Swagger document, which declares no error responses.",
  "properties": {
    "$id": {
      "type": "string",
      "description": "Serialization identity. Present in Microsoft's published error payloads; not part of the documented WrappedException interface."
    },
    "innerException": {
      "description": "The nested cause, or null.",
      "oneOf": [
        {
          "$ref": "#/components/schemas/WrappedException"
        },
        {
          "type": "object",
          "nullable": true
        }
      ]
    },
    "message": {
      "type": "string"
    },
    "typeName": {
      "type": "string"
    },
    "typeKey": {
      "type": "string"
    },
    "errorCode": {
      "type": "integer",
      "format": "int32"
    },
    "eventId": {
      "type": "integer",
      "format": "int32"
    },
    "stackTrace": {
      "type": "string",
      "nullable": true
    },
    "helpLink": {
      "type": "string",
      "nullable": true
    },
    "customProperties": {
      "type": "object",
      "additionalProperties": true
    }
  }
}

parameters

api-Version-preview.1

{
  "name": "api-version",
  "in": "query",
  "description": "Version of the API to use.  This should be set to '7.2-preview.1' to use this version of the api.",
  "required": true,
  "schema": {
    "type": "string"
  }
}

api-Version-preview.2

{
  "name": "api-version",
  "in": "query",
  "description": "Version of the API to use.  This should be set to '7.2-preview.2' to use this version of the api.",
  "required": true,
  "schema": {
    "type": "string"
  }
}

api-Version-preview.3

{
  "name": "api-version",
  "in": "query",
  "description": "Version of the API to use.  This should be set to '7.2-preview.3' to use this version of the api.",
  "required": true,
  "schema": {
    "type": "string"
  }
}

api-Version-preview.4

{
  "name": "api-version",
  "in": "query",
  "description": "Version of the API to use.  This should be set to '7.2-preview.4' to use this version of the api.",
  "required": true,
  "schema": {
    "type": "string"
  }
}

securitySchemes

accessToken

{
  "type": "http",
  "scheme": "basic",
  "description": "Personal access token. Use any value for the user name and the token as the password. In PurpleSuite the instance key takes the personal access token's place; the transport is the vendor's."
}

oauth2

{
  "type": "oauth2",
  "description": "Microsoft's OAuth 2.0 authorization code flow. The authorization and token endpoints belong to Microsoft's identity service and are not hosted by PurpleSuite; this scheme is published for contract completeness and cannot be used against this paint.",
  "flows": {
    "authorizationCode": {
      "authorizationUrl": "https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion",
      "tokenUrl": "https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer",
      "scopes": {
        "vso.githubconnections_manage": "Grants the ability to read and manage github connections and github repositories data",
        "vso.githubconnections": "Grants the ability to read github connections and github repositories data",
        "vso.work": "Grants the ability to read work items, queries, boards, area and iterations paths, and other work item tracking related metadata. Also grants the ability to execute queries, search work items and to receive notifications about work item events via service hooks.",
        "vso.work_write": "Grants the ability to read, create, and update work items and queries, update board metadata, read area and iterations paths other work item tracking related metadata, execute queries, and to receive notifications about work item events via service hooks.",
        "vso.work_full": "Grants full access to work items, queries, backlogs, plans, and work item tracking metadata. Also provides the ability to receive notifications about work item events via service hooks."
      }
    }
  }
}

Document metadata and extensions

{
  "openapi": "3.0.3",
  "info": {
    "title": "Azure DevOps Work Item Tracking — PurpleSuite painted contract",
    "description": "",
    "termsOfService": "https://go.microsoft.com/fwlink/?LinkId=329770",
    "contact": {
      "name": "nugetvss",
      "email": "nugetvss@microsoft.com"
    },
    "license": {
      "name": "MICROSOFT SOFTWARE LICENSE TERMS",
      "url": "https://go.microsoft.com/fwlink/?LinkId=329770"
    },
    "version": "7.2-preview"
  },
  "security": [
    {
      "accessToken": []
    }
  ],
  "tags": [
    {
      "name": "Account My Work Recent Activity"
    },
    {
      "name": "Artifact Link Types"
    },
    {
      "name": "Artifact Uri Query"
    },
    {
      "name": "Attachments",
      "description": "Create, get and permanently delete attachments associated with work items"
    },
    {
      "name": "Classification Nodes"
    },
    {
      "name": "Comment Reactions Engaged Users"
    },
    {
      "name": "Comments"
    },
    {
      "name": "Comments Reactions"
    },
    {
      "name": "Comments Versions"
    },
    {
      "name": "Fields"
    },
    {
      "name": "Github Connections"
    },
    {
      "name": "Project Process Migration"
    },
    {
      "name": "Queries",
      "description": "The queries in a team project are organized in folders.\n\nA sample structure of queries and folders might appear as shown here.\n\n* **My Queries**\n* **Shared Queries**\n  * Feedback (Query)\n    * **Current Sprint**\n      * Blocked Tasks (Query)\n      * Open Impediments (Query)\n      * Test Cases (Query)\n      * Unfinished Work (Query)\n      * Work in Progress (Query)"
    },
    {
      "name": "Recyclebin"
    },
    {
      "name": "Reporting Work Item Links",
      "description": "This API provides access to all work item links in your project or collection and allows you to build a warehouse.\n\nThe response of the API contains a batch of work item links (\"values\"), a URL to the next batch of work item links (\"nextLink\") and a boolean that tells you whether you have read all currently available work item links (\"isLastBatch\").\n\nThe workflow for building your warehouse is as follows:\n  1. Make a request to the API without providing a watermark parameter\n  2. Process the work item links returned by the API\n  3. Persist \"nextLink\" and check \"isLastBatch\"\n    * If \"isLastBatch\" is true, pause for a period of time (varies depending on your target latency)\n  4. Make the next request using the URL from \"nextLink\"\n  5. Go to step 2"
    },
    {
      "name": "Reporting Work Item Revisions",
      "description": "This API provides access to all work item revisions in your project or collection and allows you to build a warehouse.\n\n The response of the API contains a batch of work item revisions(\"values\"), a URL to the next batch of work item revisions(\"nextLink\") and a boolean that tells you whether you have read all currently available work item revisions(\"isLastBatch\").\n\n The workflow for building your warehouse is as follows:\n 1. Make a request to the API without providing a continuationToken parameter\n 2. Process the work item revisions returned by the API\n 3. Persist \"nextLink\" and check \"isLastBatch\"\n     * If \"isLastBatch\" is true, pause for a period of time(varies depending on your target latency)\n 4. Make the next request using the URL from \"nextLink\"\n 5. Go to step 2\n\n ## Note\n The results of this API are impacted when using Move Work Item and/or Change Work Item Type features in conjunction with \"project\" in the url and/or \"types\" in the query string.<br />\n  - Project-scoped requests will only return work item revisions from the specified project.\n  - Types-scoped requests will only return work item revisions of the specified type(s)\n\n ## Sample Projects\n [C# Example](https://github.com/sferg-msft/vsts-wit-reporting-example)"
    },
    {
      "name": "Revisions",
      "description": "This controller version exists to support returning identity values and project scoped urls for work items"
    },
    {
      "name": "Send Mail",
      "description": "This API is intended for use in work item notification scenarios. Payloads must not contain URLs, scripts, or any other potentially harmful content."
    },
    {
      "name": "Tags",
      "description": "Tags provide ability to manage the tags for the project. \nThird party services or users with read or write permission in the work item can\nlist, get, update and delete tags. The tags are shared between Work Items and Pull Requests\nand are used to provide quick insights into both, an example\ncan be labelling a Pull Request as \"WIP\", \"Feature\", or \"Bug\" to let others\nknow the state and purpose of the Pull Request.\n\nAs the tags are shared betweek Work Items and Pull Requests, then any change (update or delete) is reflected\nin both. Deleting the tag will remove the tag from all Work Items as well as remove the label (tag) from the Pull Request."
    },
    {
      "name": "Templates"
    },
    {
      "name": "Temp Queries",
      "description": "Temporary query API. Temporary queries are used to save a specific wiql for a short time"
    },
    {
      "name": "Updates",
      "description": "This controller version exists to support returning identity values and project scoped urls for work items"
    },
    {
      "name": "Wiql",
      "description": "The WIQL API is used to run a query given the WIQL text or a saved query ID.\n\nLearn more about Work Item Query Language (WIQL) syntax [here](https://docs.microsoft.com/en-us/vsts/collaborate/wiql-syntax?toc=/vsts/work/track/toc.json&bc=/vsts/work/track/breadcrumb/toc.json&view=vsts)."
    },
    {
      "name": "Work Item Icons",
      "description": "Discover the list of work item icons and view individual icons."
    },
    {
      "name": "Work Item Relation Types"
    },
    {
      "name": "Work Item Revisions Discussions"
    },
    {
      "name": "Work Items",
      "description": "The Work Item API is used for listing, creating and updating work items"
    },
    {
      "name": "Work Item Transitions",
      "description": "Currently only for the single GetWorkItemNextStatesOnCheckinAction that returns the next state if the work item is checked in."
    },
    {
      "name": "Work Item Type Categories",
      "description": "The controller that services the requests for Work Item Type Categories."
    },
    {
      "name": "Work Item Types",
      "description": "The controller that services the requests for Work Item Types"
    },
    {
      "name": "Work Item Types Field",
      "description": "Project specific field definition API."
    },
    {
      "name": "Work Item Type States",
      "description": "The controller that services the requests for states of Work Item Types."
    }
  ]
}
Interactive API explorer (requires JavaScript)