

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "Unity Version Control CM API",
    "version": "1",
    "description": "## Overview\n\nThe Unity Version Control `cm` API allows developers to perform Unity Version Control operations in their machine,\nprovided that a Unity Version Control client is already installed and configured.\n\nFor more information about Unity Version Control, refer to our\n[documentation](https://docs.unity.com/ugs/en-us/manual/devops/manual/unity-version-control).",
    "contact": {
      "x-slack-channel": "#devs-unity-version-control"
    }
  },
  "servers": [
    {
      "url": "http://localhost:9090"
    }
  ],
  "tags": [
    {
      "name": "Branches",
      "description": "Operations related to branches in a repository"
    },
    {
      "name": "Changes",
      "description": "Operations related to pending changes in a workspace"
    },
    {
      "name": "Changesets",
      "description": "Operations related to changesets in a repository or branch"
    },
    {
      "name": "Checkin",
      "description": "Operations related to checking in changes"
    },
    {
      "name": "Labels",
      "description": "Operations related to labels in a repository"
    },
    {
      "name": "Repositories",
      "description": "Operations related to repositories"
    },
    {
      "name": "Revisions",
      "description": "Operations related to revisions"
    },
    {
      "name": "Shelve",
      "description": "Operations related to shelving changes"
    },
    {
      "name": "Update",
      "description": "Operations related to updating workspaces or items"
    },
    {
      "name": "Workspaces",
      "description": "Operations related to workspaces"
    }
  ],
  "paths": {
    "/api/v1/repos/{repName}/branches": {
      "get": {
        "tags": [
          "Branches"
        ],
        "operationId": "getBranches",
        "summary": "Get branches",
        "description": "Retrieve the list of branches in a repository",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "description": "Search query to filter branches",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of branches",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiBranch"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository not found"
          }
        }
      },
      "post": {
        "tags": [
          "Branches"
        ],
        "operationId": "createBranch",
        "summary": "Create branch",
        "description": "Create a new branch in a repository",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiNewBranch"
              }
            }
          },
          "description": "The new branch to create",
          "required": true
        },
        "responses": {
          "200": {
            "description": "The created branch",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiBranch"
                }
              }
            }
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/branches/{branchName}/changesets": {
      "get": {
        "tags": [
          "Branches"
        ],
        "operationId": "getBranchChangesets",
        "summary": "Get branch changesets",
        "description": "Retrieve the list of changesets in a branch",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "branchName",
            "description": "The name of the branch",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "description": "Search query to filter changesets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of changesets in the branch",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiChangeset"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository or branch not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/branches/{branchName}/diff": {
      "get": {
        "tags": [
          "Branches"
        ],
        "operationId": "getBranchDiff",
        "summary": "Get branch diff",
        "description": "Retrieve the differences of a branch",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "branchName",
            "description": "The name of the branch",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The differences of the branch",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiDiff"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository or branch not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/branches/{branchName}/contents/{path}": {
      "get": {
        "tags": [
          "Branches"
        ],
        "operationId": "getBranchContents",
        "summary": "Get branch contents",
        "description": "Retrieve the contents of a branch",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "branchName",
            "description": "The name of the branch",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The path to the file or directory",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The contents of the file or directory",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiRevisionContent"
                }
              }
            }
          },
          "404": {
            "description": "Repository, branch, or path not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/branches/{branchName}/contents": {
      "get": {
        "tags": [
          "Branches"
        ],
        "operationId": "getBranchItemContents",
        "summary": "Get branch item contents",
        "description": "Retrieve the contents of an item in a branch",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "branchName",
            "description": "The name of the branch",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "item",
            "description": "The absolute path of the item (file or directory)",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The contents of the item",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiRevisionContent"
                }
              }
            }
          },
          "404": {
            "description": "Repository or branch not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/branches/{branchName}/history": {
      "get": {
        "tags": [
          "Branches"
        ],
        "operationId": "getBranchItemHistory",
        "summary": "Get branch item history",
        "description": "Retrieve the history of an item in a branch",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "branchName",
            "description": "The name of the branch",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "item",
            "description": "The absolute path of the item (file or directory)",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The history of the item",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiRevisionHistory"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository or branch not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/branches/{branchName}/history/{path}": {
      "get": {
        "tags": [
          "Branches"
        ],
        "operationId": "getBranchHistory",
        "summary": "Get branch history",
        "description": "Retrieve the history of a branch",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "branchName",
            "description": "The name of the branch",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The absolute path of the item (file or directory)",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The history of the branch",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiRevisionHistory"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository, branch, or path not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/branches/{branchName}": {
      "get": {
        "tags": [
          "Branches"
        ],
        "operationId": "getBranchInfo",
        "summary": "Get branch information",
        "description": "Retrieve the information of a branch",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "branchName",
            "description": "The name of the branch",
            "in": "path",
            "required": true,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The information of the branch",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiBranch"
                }
              }
            }
          },
          "404": {
            "description": "Repository or branch not found"
          }
        }
      },
      "patch": {
        "tags": [
          "Branches"
        ],
        "operationId": "updateBranch",
        "summary": "Update branch",
        "description": "Update the information of a branch",
        "parameters": [
          {
            "name": "repName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "branchName",
            "in": "path",
            "required": true,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiBranch"
              }
            }
          },
          "description": "The updated branch information",
          "required": true
        },
        "responses": {
          "200": {
            "description": "The updated branch information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiBranch"
                }
              }
            }
          },
          "404": {
            "description": "Repository or branch not found"
          }
        }
      },
      "delete": {
        "tags": [
          "Branches"
        ],
        "operationId": "deleteBranch",
        "summary": "Delete branch",
        "description": "Delete a branch",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "branchName",
            "description": "The name of the branch",
            "in": "path",
            "required": true,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Branch deleted successfully"
          },
          "404": {
            "description": "Repository or branch not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/changes": {
      "get": {
        "tags": [
          "Changes"
        ],
        "operationId": "getPendingChanges",
        "summary": "Get pending changes",
        "description": "Retrieve a list of pending changes in a workspace",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "types",
            "description": "Comma-separated list of change types to filter by. Example: `types=added,changed,deleted`\n",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ChangeType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of pending changes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiChange"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid list of change types"
          },
          "404": {
            "description": "Workspace not found"
          }
        }
      },
      "delete": {
        "tags": [
          "Changes"
        ],
        "operationId": "undoPendingChanges",
        "summary": "Undo pending changes",
        "description": "Undo a list of pending changes in a workspace",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UndoChangesData"
              }
            }
          },
          "description": "The list of pending changes to undo",
          "required": true
        },
        "responses": {
          "200": {
            "description": "The list of pending changes that were undone",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceOperationResult"
                }
              }
            }
          },
          "404": {
            "description": "Workspace not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/changesets": {
      "get": {
        "tags": [
          "Changesets"
        ],
        "operationId": "getChangesets",
        "summary": "Get changesets",
        "description": "Retrieve a list of changesets in a repository",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "description": "Query string to filter changesets",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of changesets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiChangeset"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/changesets/{changesetId}": {
      "get": {
        "tags": [
          "Changesets"
        ],
        "operationId": "getChangeset",
        "summary": "Get changeset",
        "description": "Retrieve a specific changeset in a repository",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changesetId",
            "description": "The ID of the changeset",
            "in": "path",
            "required": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The details of the changeset",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiChangeset"
                }
              }
            }
          },
          "404": {
            "description": "Repository or changeset not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/changesets/{changesetId}/contents/{path}": {
      "get": {
        "tags": [
          "Changesets"
        ],
        "operationId": "getChangesetRevision",
        "summary": "Get revision in changeset",
        "description": "Retrieve the revision of a specific item in a changeset in a repository",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changesetId",
            "description": "The ID of the changeset",
            "in": "path",
            "required": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "path",
            "description": "The absolute path of the item in the changeset",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The content of the item in the changeset",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiRevisionContent"
                }
              }
            }
          },
          "404": {
            "description": "Repository, changeset, or item not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/changesets/{changesetId}/history/{path}": {
      "get": {
        "tags": [
          "Changesets"
        ],
        "operationId": "getChangesetItemHistory",
        "summary": "Get item history in changeset",
        "description": "Retrieve the history of a specific item in a changeset in a repository",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changesetId",
            "description": "The ID of the changeset",
            "in": "path",
            "required": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "path",
            "description": "The absolute path of the item in the changeset",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiRevisionHistory"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository, changeset, or item not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/changesets/{changesetId}/diff": {
      "get": {
        "tags": [
          "Changesets"
        ],
        "operationId": "getChangesetDiff",
        "summary": "Get changeset diff",
        "description": "Retrieve the differences introduced in a specific changeset in a repository",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "changesetId",
            "description": "The ID of the changeset",
            "in": "path",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The differences introduced in the changeset",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiDiff"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository or changeset not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/changesets/{dstCsetId}/diff/{srcCsetId}": {
      "get": {
        "tags": [
          "Changesets"
        ],
        "operationId": "getChangesetDiffWithAnother",
        "summary": "Get changeset diff with another changeset",
        "description": "Retrieve the differences introduced in a specific changeset in a repository compared to another changeset",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dstCsetId",
            "description": "The ID of the destination changeset",
            "in": "path",
            "required": true,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "srcCsetId",
            "description": "The ID of the source changeset",
            "in": "path",
            "required": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The differences between the two changesets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiDiff"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository or changeset not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/checkin": {
      "get": {
        "tags": [
          "Checkin"
        ],
        "operationId": "getCheckinStatus",
        "summary": "Get check-in status",
        "description": "Retrieve the current check-in status for a workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The current check-in status for the workspace.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatus"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Checkin"
        ],
        "operationId": "performCheckin",
        "summary": "Perform check-in",
        "description": "Check in changes to the workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The check-in data to be submitted.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckinData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The check-in operation status after submission.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatus"
                }
              }
            }
          },
          "404": {
            "description": "Workspace not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/shelvesets": {
      "post": {
        "tags": [
          "Shelve"
        ],
        "operationId": "createShelveset",
        "summary": "Create a shelveset",
        "description": "Create a new shelveset in the specified workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The shelveset data to be created.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShelveCreateData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatus"
                }
              }
            }
          },
          "404": {
            "description": "Workspace not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/fileinfo/{path}": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "getFileInformation",
        "summary": "Get file information",
        "description": "Retrieve detailed information about a specific file in the workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The path to the file within the workspace.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The detailed information of the requested file.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiFileInfo"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name or path not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/labels": {
      "get": {
        "tags": [
          "Labels"
        ],
        "operationId": "getLabels",
        "summary": "Get labels",
        "description": "Retrieve a list of labels for the specified repository.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "description": "The search query for filtering labels.",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The list of labels for the specified repository.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiLabel"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository not found"
          }
        }
      },
      "post": {
        "tags": [
          "Labels"
        ],
        "operationId": "createLabel",
        "summary": "Create a new label",
        "description": "Create a new label for the specified repository.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The label data to be created.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiNewLabel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The created label.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiLabel"
                }
              }
            }
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/labels/{labelName}": {
      "get": {
        "tags": [
          "Labels"
        ],
        "operationId": "getLabel",
        "summary": "Get a label",
        "description": "Retrieve detailed information about a specific label in the repository.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "labelName",
            "description": "The name of the label.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested label.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiLabel"
                }
              }
            }
          },
          "404": {
            "description": "Repository or label not found"
          }
        }
      },
      "patch": {
        "tags": [
          "Labels"
        ],
        "operationId": "updateLabel",
        "summary": "Update a label",
        "description": "Update an existing label in the specified repository.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "labelName",
            "description": "The name of the label.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated label data.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiLabel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated label.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiLabel"
                }
              }
            }
          },
          "404": {
            "description": "Repository or label not found"
          }
        }
      },
      "delete": {
        "tags": [
          "Labels"
        ],
        "operationId": "deleteLabel",
        "summary": "Delete a label",
        "description": "Delete a specific label from the repository.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "labelName",
            "description": "The name of the label.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Label deleted successfully"
          },
          "404": {
            "description": "Repository or label not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/labels/{labelName}/contents/{path}": {
      "get": {
        "tags": [
          "Labels"
        ],
        "operationId": "getRevisionInLabel",
        "summary": "Get a specific revision in a label",
        "description": "Retrieve a specific revision of an item in a label.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "labelName",
            "description": "The name of the label.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The absolute path to the item within the label.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested revision information.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiRevisionContent"
                }
              }
            }
          },
          "404": {
            "description": "Repository, label, or path not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/labels/{labelName}/history/{path}": {
      "get": {
        "tags": [
          "Labels"
        ],
        "operationId": "getRevisionHistoryInLabel",
        "summary": "Get the revision history of a specific item in a label",
        "description": "Retrieve the revision history of an item in a label.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "labelName",
            "description": "The name of the label.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The absolute path to the item within the label.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The revision history of the specified item.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiRevisionHistory"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Repository, label, or path not found"
          }
        }
      }
    },
    "/api/v1/repos": {
      "get": {
        "tags": [
          "Repositories"
        ],
        "operationId": "getRepositories",
        "summary": "Get a list of repositories",
        "description": "Retrieve a list of all repositories.",
        "responses": {
          "200": {
            "description": "The list of repositories.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiRepository"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Repositories"
        ],
        "operationId": "createRepository",
        "summary": "Create a new repository",
        "description": "This endpoint allows you to create a new repository.",
        "requestBody": {
          "description": "The repository to create.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateApiRepository"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The created repository.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiRepository"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/repos/{repName}": {
      "get": {
        "tags": [
          "Repositories"
        ],
        "operationId": "getRepository",
        "summary": "Get a specific repository",
        "description": "Retrieve a specific repository by name.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested repository information.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiRepository"
                }
              }
            }
          },
          "404": {
            "description": "Repository not found"
          }
        }
      },
      "delete": {
        "tags": [
          "Repositories"
        ],
        "operationId": "deleteRepository",
        "summary": "Delete a specific repository",
        "description": "This endpoint allows you to delete a specific repository by name.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Repository deleted successfully"
          },
          "404": {
            "description": "Repository not found"
          }
        }
      },
      "put": {
        "tags": [
          "Repositories"
        ],
        "operationId": "updateRepository",
        "summary": "Update a specific repository",
        "description": "This endpoint allows you to update a specific repository by name.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated repository information.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiRepository"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated repository information.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiRepository"
                }
              }
            }
          },
          "404": {
            "description": "Repository not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/revert/{path}": {
      "put": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "revertWorkspaceItem",
        "summary": "Revert an item to a previous revision",
        "description": "This endpoint allows you to revert an item in a workspace to a previous revision.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The path of the item to revert",
            "in": "path",
            "required": true,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The details of the revision to revert to",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiRevert"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The result of the revert operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceOperationResult"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name or path not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/revisions/{revId}": {
      "get": {
        "tags": [
          "Revisions"
        ],
        "operationId": "getRevision",
        "summary": "Get a specific revision",
        "description": "This endpoint retrieves a specific revision of a repository.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revId",
            "description": "The ID of the revision",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The requested revision",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiRevisionContent"
                }
              }
            }
          },
          "404": {
            "description": "Repository or revision not found"
          }
        }
      }
    },
    "/api/v1/repos/{repName}/revisions/{revId}/blob": {
      "get": {
        "tags": [
          "Revisions"
        ],
        "operationId": "getRevisionData",
        "summary": "Get the raw data of a specific revision",
        "description": "This endpoint retrieves the raw data (blob) of a specific revision in a repository.",
        "parameters": [
          {
            "name": "repName",
            "description": "The name of the repository",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "revId",
            "description": "The ID of the revision",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The raw data of the requested revision. The response is streamed and can be either text or binary, depending on the revision content type.\n",
            "headers": {
              "Content-Disposition": {
                "description": "Suggests a file name for download (e.g. `attachment; filename=\"example.txt\"`).",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/octet-stream": {},
              "text/plain": {}
            }
          },
          "404": {
            "description": "Repository or revision not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/undelete": {
      "post": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "undeleteItem",
        "summary": "Undelete a workspace item",
        "description": "This endpoint restores a previously deleted item in a workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The details of the item to restore",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UndeleteData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The result of the undelete operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceOperationResult"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/switch": {
      "get": {
        "tags": [
          "Update"
        ],
        "operationId": "getSwitchStatus",
        "summary": "Get workspace switch status",
        "description": "This endpoint retrieves the current switch status of a workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The current switch status of the workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatus"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name not found"
          }
        }
      },
      "post": {
        "tags": [
          "Update"
        ],
        "operationId": "switchWorkspace",
        "summary": "Switch workspace",
        "description": "This endpoint allows the user to switch a workspace to a different target\n(branch, label, changeset, or shelveset).",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The target to switch the workspace to",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SwitchTarget"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The initial status of the workspace switch operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatus"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/update": {
      "get": {
        "tags": [
          "Update"
        ],
        "operationId": "getWorkspaceUpdateStatus",
        "summary": "Get workspace update status",
        "description": "This endpoint retrieves the current update status of a workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The current update status of the workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatus"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Update"
        ],
        "operationId": "updateWorkspace",
        "summary": "Update workspace",
        "description": "This endpoint allows the user to update the workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The initial status of the workspace update operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatus"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/partialconfigure": {
      "post": {
        "tags": [
          "Update"
        ],
        "operationId": "partialConfigureWorkspace",
        "summary": "Partially configure workspace",
        "description": "This endpoint allows the user to partially configure (Gluon) the workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The configuration information to update the workspace",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiPartialConfigureInfo"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The initial status of the workspace partial configuration operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatus"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/merge": {
      "post": {
        "tags": [
          "Update"
        ],
        "operationId": "mergeFrom",
        "summary": "Merge changes from another object",
        "description": "This endpoint allows the user to merge changes from another branch or changeset into the current workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The merge request information",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiMergeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The result of the merge operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MergeStatus"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/shelvesets/{shelvesetId}": {
      "patch": {
        "tags": [
          "Shelve"
        ],
        "operationId": "applyShelveset",
        "summary": "Apply a shelveset",
        "description": "Apply a shelveset to the workspace",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "shelvesetId",
            "description": "The ID of the shelveset to apply",
            "in": "path",
            "required": true,
            "schema": {
              "minimum": 0,
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The result of applying the shelveset",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplyShelvesetOperationResult"
                }
              }
            }
          },
          "404": {
            "description": "The specified workspace name or shelveset was not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/content/{path}": {
      "post": {
        "tags": [
          "Changes"
        ],
        "operationId": "addItem",
        "summary": "Add item to version control",
        "description": "Mark a private or ignored item for inclusion in version control",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The path of the item to add, relative to the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Options for adding the item to version control",
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddRequestOptions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The workspace operation result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceOperationResult"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name or path not found"
          }
        }
      },
      "put": {
        "tags": [
          "Changes"
        ],
        "operationId": "checkoutItem",
        "summary": "Checkout item in version control",
        "description": "Checkout a specific item in the workspace.  This operation marks the item as checked out and prepares\nit for editing. It can also cause the item to be locked, depending on the server configuration.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The path of the item to checkout, relative to the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The workspace operation result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceOperationResult"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name or path not found"
          }
        }
      },
      "patch": {
        "tags": [
          "Changes"
        ],
        "operationId": "moveItem",
        "summary": "Move item in version control",
        "description": "Move a specific item within the workspace. This operation updates the item's location in version control\nand the workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The path of the item to move, relative to the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Options for moving the item",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MoveItemDestination"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The workspace operation result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceOperationResult"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name or path not found"
          }
        }
      },
      "delete": {
        "tags": [
          "Changes"
        ],
        "operationId": "deleteItem",
        "summary": "Delete item from version control",
        "description": "Delete a specific item from the workspace. This operation removes the item from version control\nand the workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The path of the item to delete, relative to the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The workspace operation result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceOperationResult"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name or path not found"
          }
        }
      }
    },
    "/api/v1/wkspaces": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "getWorkspaces",
        "summary": "Get all workspaces",
        "description": "Retrieve a list of all workspaces present in the local machine for the current user.",
        "responses": {
          "200": {
            "description": "The list of workspaces",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiWorkspace"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "createWorkspace",
        "summary": "Create a new workspace",
        "description": "Create a new workspace in the local machine for the current user.",
        "requestBody": {
          "description": "The details of the workspace to create",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiNewWorkspace"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The created workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiWorkspace"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "getWorkspace",
        "summary": "Get workspace details",
        "description": "Retrieve details about a specific workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The details of the workspace",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiWorkspace"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name not found"
          }
        }
      },
      "patch": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "updateWorkspaceDetails",
        "summary": "Update workspace details",
        "description": "Update the details of a specific workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The updated workspace details",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiWorkspace"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated workspace details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiWorkspace"
                }
              }
            }
          },
          "404": {
            "description": "Workspace name not found"
          }
        }
      },
      "delete": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "deleteWorkspace",
        "summary": "Delete a workspace",
        "description": "Delete a specific workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Workspace deleted successfully"
          },
          "404": {
            "description": "Workspace name not found"
          }
        }
      }
    },
    "/api/v1/wkspaces/{wkName}/history/{path}": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "operationId": "getWorkspaceItemHistory",
        "summary": "Get workspace item history",
        "description": "Retrieve the history of changes for a specific item in a workspace.",
        "parameters": [
          {
            "name": "wkName",
            "description": "The name of the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "description": "The path of the item in the workspace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The history of changes for the specified item",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ApiRevisionHistory"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Workspace name or path not found"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddRequestOptions": {
        "type": "object",
        "description": "Options to control the behavior of the add operation.",
        "properties": {
          "recurse": {
            "type": "boolean",
            "description": "Add items recursively if the targeted item is a directory."
          },
          "addPrivateParents": {
            "type": "boolean",
            "description": "Ensure all parents are added if the targeted item is not located in a path that is under version control."
          },
          "checkoutParent": {
            "type": "boolean",
            "description": "Perform a checkout of the containing parent for the targeted item."
          },
          "ignoreFailed": {
            "type": "boolean",
            "description": "Skip failures from items that couldn't be added, so that the operation doesn't fail because of that."
          }
        },
        "additionalProperties": false
      },
      "ApiBranch": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "description": "The name of the branch",
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "description": "The numeric ID of the branch",
            "type": "integer",
            "format": "int64"
          },
          "parentId": {
            "description": "The numeric ID of the parent branch",
            "type": "integer",
            "format": "int64"
          },
          "lastChangeset": {
            "description": "The ID of the last changeset",
            "type": "integer",
            "format": "int64"
          },
          "comment": {
            "description": "The comment associated with the branch",
            "type": "string",
            "nullable": true
          },
          "creationDate": {
            "description": "The date and time when the branch was created",
            "type": "string",
            "format": "date-time"
          },
          "guid": {
            "description": "The globally unique identifier for the branch",
            "type": "string",
            "format": "uuid"
          },
          "owner": {
            "$ref": "#/components/schemas/ApiOwner"
          },
          "repository": {
            "$ref": "#/components/schemas/ApiRepository"
          }
        },
        "additionalProperties": false
      },
      "ApiChange": {
        "type": "object",
        "description": "Represents a change affecting an item in the workspace or repository.",
        "properties": {
          "changes": {
            "type": "array",
            "description": "The types of change that can affect the path. See the change type enum for possible values.",
            "items": {
              "$ref": "#/components/schemas/ChangeType"
            },
            "nullable": true
          },
          "path": {
            "type": "string",
            "description": "The path of the changed item in the workspace (local filesystem path).",
            "nullable": true
          },
          "oldPath": {
            "type": "string",
            "description": "The previous path of the item in the workspace, only applicable to moved items (local filesystem path).",
            "nullable": true
          },
          "serverPath": {
            "type": "string",
            "description": "The path of the item, relative to the repository root.",
            "nullable": true
          },
          "oldServerPath": {
            "type": "string",
            "description": "The previous path of the item, relative to the repository root, only applicable to moved items.",
            "nullable": true
          },
          "isXlink": {
            "type": "boolean",
            "description": "Whether the path represents an Xlink."
          },
          "xlinkMount": {
            "$ref": "#/components/schemas/ApiXlinkMount"
          },
          "localInfo": {
            "$ref": "#/components/schemas/ApiLocalInfo"
          },
          "revisionInfo": {
            "$ref": "#/components/schemas/ApiRevision"
          }
        },
        "additionalProperties": false
      },
      "ApiChangeset": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "parentId": {
            "type": "integer",
            "format": "int64"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "creationDate": {
            "type": "string",
            "format": "date-time"
          },
          "guid": {
            "type": "string",
            "format": "uuid"
          },
          "branch": {
            "$ref": "#/components/schemas/ApiBranch"
          },
          "owner": {
            "$ref": "#/components/schemas/ApiOwner"
          },
          "repository": {
            "$ref": "#/components/schemas/ApiRepository"
          }
        },
        "additionalProperties": false
      },
      "ApiDiff": {
        "type": "object",
        "description": "Represents a difference between two revisions or states of an item.",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/DiffStatus"
          },
          "path": {
            "type": "string",
            "description": "The path of the difference in the server.",
            "nullable": true
          },
          "srcPath": {
            "type": "string",
            "description": "The previous path of the item, only applicable to moved items.",
            "nullable": true
          },
          "revisionId": {
            "type": "integer",
            "format": "int64",
            "description": "The revision loaded on the right side of the diff (the resulting changes).",
            "nullable": true
          },
          "srcRevisionId": {
            "type": "integer",
            "format": "int64",
            "description": "The revision loaded on the left side of the diff (the original contents), only applicable to changed items.",
            "nullable": true
          },
          "isDirectory": {
            "type": "boolean",
            "description": "Whether the item is a directory or not."
          },
          "size": {
            "type": "integer",
            "format": "int64",
            "description": "The size of the item in bytes.",
            "nullable": true
          },
          "hash": {
            "type": "string",
            "description": "The hash of current contents of the item.",
            "nullable": true
          },
          "srcHash": {
            "type": "string",
            "description": "The hash of the original contents of the item.",
            "nullable": true
          },
          "isUnderXlink": {
            "type": "boolean",
            "description": "Whether the item is located under a Xlink."
          },
          "xlink": {
            "$ref": "#/components/schemas/ApiXlink"
          },
          "baseXlink": {
            "$ref": "#/components/schemas/ApiXlink"
          },
          "merges": {
            "type": "array",
            "description": "The merge links applying to that diff.",
            "items": {
              "$ref": "#/components/schemas/ApiMerge"
            },
            "nullable": true
          },
          "isItemFSProtectionChanged": {
            "type": "boolean",
            "description": "Whether the filesystem permissions changed."
          },
          "itemFileSystemProtection": {
            "type": "string",
            "description": "The current filesystem permissions for the item.",
            "nullable": true
          },
          "baseItemFileSystemProtection": {
            "type": "string",
            "description": "The original filesystem permissions for the item.",
            "nullable": true
          },
          "modifiedTime": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time when the item was changed.",
            "nullable": true
          },
          "createdBy": {
            "$ref": "#/components/schemas/ApiOwner"
          },
          "repository": {
            "$ref": "#/components/schemas/ApiRepository"
          }
        },
        "additionalProperties": false
      },
      "ApiFileInfo": {
        "type": "object",
        "description": "Information about a file or directory in the workspace or repository.",
        "properties": {
          "clientPath": {
            "type": "string",
            "description": "The path of the item in the local filesystem.",
            "nullable": true
          },
          "relativePath": {
            "type": "string",
            "description": "The path of the item in the local filesystem, relative to the workspace.",
            "nullable": true
          },
          "serverPath": {
            "type": "string",
            "description": "The path of the item in the repository.",
            "nullable": true
          },
          "repSpec": {
            "$ref": "#/components/schemas/RepositorySpec"
          },
          "size": {
            "type": "integer",
            "format": "int64",
            "description": "The size of the item, in bytes."
          },
          "hash": {
            "type": "string",
            "description": "The hash of the item contents.",
            "nullable": true
          },
          "owner": {
            "type": "string",
            "description": "The user that submitted the item's contents.",
            "nullable": true
          },
          "revisionHeadChangeset": {
            "type": "integer",
            "format": "int64",
            "description": "The ID of the revision for that item, loaded in the head changeset of the current branch."
          },
          "revisionChangeset": {
            "type": "integer",
            "format": "int64",
            "description": "The ID of the revision for that item, loaded in the current changeset."
          },
          "status": {
            "type": "string",
            "description": "The status of the item. A comma-separated list of values:\n* `added`\n* `moved`\n* `copied`\n* `replaced`\n* `checked-out`\n* `controlled`\n* `deleted`\n* `private`",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "The item type: text, binary, directory, symlink, xlink.",
            "nullable": true
          },
          "changelist": {
            "type": "string",
            "description": "The changelist to which the item belongs.",
            "nullable": true
          },
          "locked": {
            "$ref": "#/components/schemas/LockedInfo"
          },
          "underXlink": {
            "$ref": "#/components/schemas/UnderXlinkInfo"
          },
          "xlink": {
            "$ref": "#/components/schemas/XlinkInfo"
          }
        },
        "additionalProperties": false
      },
      "ApiLabel": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "changeset": {
            "type": "integer",
            "format": "int64"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "creationDate": {
            "type": "string",
            "format": "date-time"
          },
          "branch": {
            "$ref": "#/components/schemas/ApiBranch"
          },
          "owner": {
            "$ref": "#/components/schemas/ApiOwner"
          },
          "repository": {
            "$ref": "#/components/schemas/ApiRepository"
          }
        },
        "additionalProperties": false
      },
      "ApiLocalInfo": {
        "type": "object",
        "properties": {
          "modifiedTime": {
            "type": "string",
            "format": "date-time"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "isMissing": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiMerge": {
        "type": "object",
        "properties": {
          "mergeType": {
            "type": "string",
            "nullable": true
          },
          "sourceChangeset": {
            "$ref": "#/components/schemas/ApiChangeset"
          }
        },
        "additionalProperties": false
      },
      "ApiMergeRequest": {
        "required": [
          "sourceSpec"
        ],
        "type": "object",
        "properties": {
          "sourceSpec": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ApiNewBranch": {
        "required": [
          "name",
          "origin",
          "originType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "pattern": "^[^@#/:\"?']+$",
            "type": "string"
          },
          "origin": {
            "minLength": 1,
            "type": "string"
          },
          "originType": {
            "minLength": 1,
            "pattern": "^(changeset)|(label)|(branch)$",
            "type": "string"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "topLevel": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiNewLabel": {
        "required": [
          "changeset",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "changeset": {
            "type": "integer",
            "format": "int64"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "applyToXlinks": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiNewWorkspace": {
        "required": [
          "name",
          "path"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "path": {
            "minLength": 1,
            "type": "string"
          },
          "repository": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiOwner": {
        "type": "object",
        "description": "The owner of a repository or repository object",
        "properties": {
          "name": {
            "description": "The name of the owner",
            "type": "string",
            "nullable": true
          },
          "isGroup": {
            "description": "Indicates if the owner is a group",
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ApiPartialConfigureInfo": {
        "required": [
          "instructions"
        ],
        "type": "object",
        "properties": {
          "instructions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartialConfiguration"
            }
          }
        },
        "additionalProperties": false
      },
      "CreateApiRepository": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "server": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiRepository": {
        "required": [
          "name"
        ],
        "type": "object",
        "description": "A repository in a Unity Version Control server",
        "properties": {
          "name": {
            "description": "The name of the repository",
            "minLength": 1,
            "type": "string"
          },
          "repId": {
            "$ref": "#/components/schemas/RepId"
          },
          "guid": {
            "description": "The globally unique identifier for the repository",
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "owner": {
            "$ref": "#/components/schemas/ApiOwner"
          },
          "server": {
            "description": "The server hosting the repository",
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiRevert": {
        "required": [
          "changeset"
        ],
        "type": "object",
        "properties": {
          "changeset": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "ApiRevision": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "parentId": {
            "type": "integer",
            "format": "int64"
          },
          "itemId": {
            "type": "integer",
            "format": "int64"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "hash": {
            "type": "string",
            "nullable": true
          },
          "branchId": {
            "type": "integer",
            "format": "int64"
          },
          "changesetId": {
            "type": "integer",
            "format": "int64"
          },
          "isCheckedOut": {
            "type": "boolean"
          },
          "creationDate": {
            "type": "string",
            "format": "date-time"
          },
          "repositoryId": {
            "$ref": "#/components/schemas/RepId"
          },
          "owner": {
            "$ref": "#/components/schemas/ApiOwner"
          }
        },
        "additionalProperties": false
      },
      "ApiRevisionContent": {
        "type": "object",
        "properties": {
          "revisionId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "path": {
            "type": "string",
            "nullable": true
          },
          "changeset": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "branch": {
            "type": "string",
            "nullable": true
          },
          "isUnderXlink": {
            "type": "boolean",
            "nullable": true
          },
          "xlinkTarget": {
            "$ref": "#/components/schemas/ApiXlink"
          },
          "hash": {
            "type": "string",
            "nullable": true
          },
          "content": {
            "type": "string",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApiRevisionContent"
            },
            "nullable": true
          },
          "repository": {
            "$ref": "#/components/schemas/ApiRepository"
          }
        },
        "additionalProperties": false
      },
      "ApiRevisionHistory": {
        "type": "object",
        "properties": {
          "revisionId": {
            "type": "integer",
            "format": "int64"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "owner": {
            "$ref": "#/components/schemas/ApiOwner"
          },
          "creationDate": {
            "type": "string",
            "format": "date-time"
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "revisionLink": {
            "type": "string",
            "nullable": true
          },
          "changesetId": {
            "type": "integer",
            "format": "int64"
          },
          "changesetLink": {
            "type": "string",
            "nullable": true
          },
          "branchName": {
            "type": "string",
            "nullable": true
          },
          "branchLink": {
            "type": "string",
            "nullable": true
          },
          "repositoryName": {
            "type": "string",
            "nullable": true
          },
          "repositoryLink": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiWorkspace": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "guid": {
            "type": "string",
            "format": "uuid"
          },
          "path": {
            "type": "string",
            "nullable": true
          },
          "machineName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiXlink": {
        "type": "object",
        "properties": {
          "changesetGuid": {
            "type": "string",
            "format": "uuid"
          },
          "changesetId": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "repository": {
            "type": "string",
            "nullable": true
          },
          "server": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiXlinkMount": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "mountPoint": {
            "type": "string",
            "nullable": true
          },
          "guid": {
            "type": "string",
            "format": "uuid"
          },
          "isWritable": {
            "type": "boolean"
          },
          "repository": {
            "$ref": "#/components/schemas/ApiRepository"
          }
        },
        "additionalProperties": false
      },
      "ApplyShelvesetOperationResult": {
        "type": "object",
        "properties": {
          "conflicts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CheckinData": {
        "type": "object",
        "properties": {
          "paths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          },
          "recurse": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LockedInfo": {
        "type": "object",
        "properties": {
          "lockedBy": {
            "type": "string",
            "nullable": true
          },
          "lockedWhere": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MergeResultStatus": {
        "enum": [
          "AncestorCalculated",
          "AncestorNotFound",
          "MergeNotNeeded",
          "AlreadySubtracted",
          "MergeNotNeededAlreadyConnected",
          "NotConnected",
          "InvalidInterval",
          "MergeToResultMergeNeeded"
        ],
        "type": "string"
      },
      "MergeStatus": {
        "type": "object",
        "properties": {
          "resultStatus": {
            "$ref": "#/components/schemas/MergeResultStatus"
          },
          "success": {
            "type": "boolean",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MoveItemDestination": {
        "required": [
          "destination"
        ],
        "type": "object",
        "properties": {
          "destination": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "OperationStatus": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PartialConfiguration": {
        "required": [
          "action",
          "path"
        ],
        "type": "object",
        "properties": {
          "path": {
            "minLength": 1,
            "type": "string"
          },
          "action": {
            "$ref": "#/components/schemas/PartialConfigureAction"
          }
        },
        "additionalProperties": false
      },
      "PartialConfigureAction": {
        "enum": [
          "Load",
          "Unload"
        ],
        "type": "string"
      },
      "RepId": {
        "type": "object",
        "description": "The ID of a repository",
        "properties": {
          "id": {
            "description": "The ID of the repository",
            "type": "integer",
            "format": "int32"
          },
          "deprecatedModuleId": {
            "description": "[Deprecated] The module ID, if the repository is a submodule",
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "RepositorySpec": {
        "type": "object",
        "description": "A repository specification",
        "properties": {
          "server": {
            "description": "The server hosting the repository",
            "type": "string",
            "nullable": true
          },
          "name": {
            "description": "The name of the repository",
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ShelveCreateData": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "nullable": true
          },
          "paths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SwitchTarget": {
        "required": [
          "object",
          "objectType"
        ],
        "type": "object",
        "properties": {
          "objectType": {
            "minLength": 1,
            "pattern": "^(changeset)|(label)|(branch)$",
            "type": "string"
          },
          "object": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UndeleteData": {
        "required": [
          "path",
          "revSpec"
        ],
        "type": "object",
        "properties": {
          "revSpec": {
            "minLength": 1,
            "type": "string"
          },
          "path": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UnderXlinkInfo": {
        "type": "object",
        "properties": {
          "underXlinkWritable": {
            "type": "boolean"
          },
          "underXlinkRelative": {
            "type": "boolean"
          },
          "underXlinkTarget": {
            "type": "string",
            "nullable": true
          },
          "underXlinkPath": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UndoChangesData": {
        "type": "object",
        "properties": {
          "paths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "WorkspaceOperationResult": {
        "type": "object",
        "properties": {
          "affectedPaths": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "XlinkInfo": {
        "type": "object",
        "properties": {
          "xlinkWritable": {
            "type": "boolean"
          },
          "xlinkRelative": {
            "type": "boolean"
          },
          "xlinkTarget": {
            "type": "string",
            "nullable": true
          },
          "xlinkName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ChangeType": {
        "type": "string",
        "description": "The type of change affecting an item.",
        "enum": [
          "added",
          "checkout",
          "changed",
          "copied",
          "replaced",
          "deleted",
          "localdeleted",
          "moved",
          "localmoved",
          "private",
          "ignored",
          "hiddenchanged",
          "controlledchanged",
          "all"
        ]
      },
      "DiffStatus": {
        "type": "string",
        "description": "The status of a changed item.",
        "enum": [
          "added",
          "changed",
          "copied",
          "replaced",
          "deleted",
          "moved"
        ]
      }
    }
  }
}
```