

```json
{
  "openapi": "3.0.0",
  "paths": {
    "/orgs/{orgid}/projects/{projectid}/connections/{connectionid}/hooks/commit": {
      "post": {
        "operationId": "ScmController_commit",
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommitResponse"
                }
              }
            }
          },
          "4XX": {
            "description": "Client Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          }
        },
        "description": "Accept a provider push for one project-owned source-control connection.",
        "summary": "Accept a provider push for one project-owned source-control connection.",
        "tags": [
          "SCM"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orgid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "projectid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connectionid",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UUID"
            }
          },
          {
            "in": "header",
            "name": "x-hub-signature",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-gitlab-token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-azure-token",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-github-event",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-gitlab-event",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-event-key",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Record_string.any_"
              }
            }
          }
        }
      }
    },
    "/orgs/{orgid}/projects/{projectid}": {
      "get": {
        "operationId": "ProjectsController_getProject",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectResponse"
                }
              }
            }
          },
          "4XX": {
            "description": "Client Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          }
        },
        "description": "Returns the SCM-free v3 representation of a project in an organization.",
        "summary": "Get project details.",
        "tags": [
          "Project"
        ],
        "security": [
          {
            "basicAuth": []
          },
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orgid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "projectid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Selects which top-level fields the response contains. Accepts repeated keys (`include=guid&include=name`) and comma-separated values (`include=guid,name`), which may be combined. Accepted values: `settings`, `defaultConnection`, `created`, `disabled`, `disableNotifications`, `generateShareLinks`, `projectid`, `name`, `orgName`, `serviceFlags`, `orgid`, `guid`, `orgFk`, `buildTimeoutMinutes`, `cachedIcon`, `links`. Any other value returns HTTP 422. Omit the parameter to receive every field.",
            "in": "query",
            "name": "include",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ]
      }
    },
    "/orgs/{orgid}/projects": {
      "get": {
        "operationId": "ProjectsController_listProjectsForOrg",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ProjectResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "4XX": {
            "description": "Client Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          }
        },
        "description": "Returns SCM-free v3 project representations for the requested organization.",
        "summary": "List projects for an organization.",
        "tags": [
          "Project"
        ],
        "security": [
          {
            "basicAuth": []
          },
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orgid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Selects which top-level fields each project in the response contains. Accepts repeated keys (`include=guid&include=name`) and comma-separated values (`include=guid,name`), which may be combined. Accepted values: `settings`, `defaultConnection`, `created`, `disabled`, `disableNotifications`, `generateShareLinks`, `projectid`, `name`, `orgName`, `serviceFlags`, `orgid`, `guid`, `orgFk`, `buildTimeoutMinutes`, `cachedIcon`, `links`. Any other value returns HTTP 422. Omit the parameter to receive every field.",
            "in": "query",
            "name": "include",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ]
      }
    },
    "/projects/{projectid}": {
      "get": {
        "operationId": "ProjectsController_getProjectByProjectId",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectResponse"
                }
              }
            }
          },
          "4XX": {
            "description": "Client Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          }
        },
        "description": "Returns the SCM-free v3 representation of a project without an organization path parameter.",
        "summary": "Get project details by project ID.",
        "tags": [
          "Project"
        ],
        "security": [
          {
            "basicAuth": []
          },
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "projectid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Selects which top-level fields the response contains. Accepts repeated keys (`include=guid&include=name`) and comma-separated values (`include=guid,name`), which may be combined. Accepted values: `settings`, `defaultConnection`, `created`, `disabled`, `disableNotifications`, `generateShareLinks`, `projectid`, `name`, `orgName`, `serviceFlags`, `orgid`, `guid`, `orgFk`, `buildTimeoutMinutes`, `cachedIcon`, `links`. Any other value returns HTTP 422. Omit the parameter to receive every field.",
            "in": "query",
            "name": "include",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ]
      }
    },
    "/orgs/{orgid}/projects/{projectid}/connections/{connectionid}/triggers/{eventType}": {
      "post": {
        "operationId": "PlasticController_uvcsEventTrigger",
        "responses": {
          "200": {
            "description": "OK"
          },
          "4XX": {
            "description": "Client Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          }
        },
        "description": "Accept a signed UVCS event for one project-owned Plastic connection.",
        "summary": "Accept a signed UVCS event for one project-owned Plastic connection.",
        "tags": [
          "Plastic"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orgid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "projectid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connectionid",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UUID"
            }
          },
          {
            "in": "path",
            "name": "eventType",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-uvcs-signature",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "x-uvcs-deliveryid",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UvcsTriggerRequestBody"
              }
            }
          }
        }
      }
    },
    "/orgs/{orgid}/projects/{projectid}/connections/{connectionid}": {
      "get": {
        "operationId": "ConnectionsController_getConnection",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionResponse"
                }
              }
            }
          },
          "4XX": {
            "description": "Client Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          }
        },
        "description": "Returns the public settings for one connection, excluding dedicated credential fields such as passwords, tokens, and private keys. Exactly one provider section is returned, matching the connection type. `url` is returned exactly as stored, so a URL configured with credentials embedded in it, for example as userinfo or a query parameter, returns those credentials too. Treat this field as sensitive.",
        "summary": "Get SCM connection settings by id.",
        "tags": [
          "SCM"
        ],
        "security": [
          {
            "basicAuth": []
          },
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orgid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "projectid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connectionid",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UUID"
            }
          }
        ]
      }
    },
    "/orgs/{orgid}/projects/{projectid}/connections": {
      "get": {
        "operationId": "ConnectionsController_listConnections",
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ConnectionResponse"
                  },
                  "type": "array"
                }
              }
            }
          },
          "4XX": {
            "description": "Client Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          }
        },
        "description": "Returns the public settings for every connection the project owns, excluding dedicated credential fields such as passwords, tokens, and private keys. Each entry returns exactly one provider section, matching its connection type. `url` is returned exactly as stored, so a URL configured with credentials embedded in it, for example as userinfo or a query parameter, returns those credentials too. Treat this field as sensitive.",
        "summary": "List SCM connection settings for a project.",
        "tags": [
          "SCM"
        ],
        "security": [
          {
            "basicAuth": []
          },
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orgid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "projectid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/orgs/{orgid}/projects/{projectid}/connections/{connectionid}/validate": {
      "post": {
        "operationId": "ConnectionsController_validateConnection",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "4XX": {
            "description": "Client Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Side Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RFC7807Error"
                }
              }
            }
          }
        },
        "description": "Validate a stored SCM connection through its provider without storing validation state.",
        "summary": "Validate a stored SCM connection through its provider without storing validation state.",
        "tags": [
          "SCM"
        ],
        "security": [
          {
            "basicAuth": []
          },
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "in": "path",
            "name": "orgid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "projectid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "connectionid",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/UUID"
            }
          }
        ]
      }
    }
  },
  "servers": [
    {
      "url": "https://build-automation.services.api.unity.com/v3"
    }
  ],
  "tags": [
    {
      "name": "Plastic",
      "description": "Endpoints for Plastic SCM integration."
    },
    {
      "name": "Project",
      "description": "Endpoints for managing and querying project information."
    },
    {
      "name": "SCM",
      "description": "Endpoints for source control management integration."
    }
  ],
  "info": {
    "version": "3.0.0",
    "title": "Unity Build Automation",
    "description": "This REST API is intended to be used in conjunction with [Unity Build Automation](https://docs.unity.com/en-us/build-automation).\n\n## Authentication\n\nAuthenticate with HTTP Basic auth using a Unity **service account** key and secret (`Authorization: Basic <base64(keyId:secret)>`). The legacy Build Automation API key is not supported on v3.\n\nFor service account setup, see [Create a service account](https://docs.unity.com/en-us/cloud/accounts/create-service-account).\n\n> **Note:** This documentation describes **version 3** of the Unity Build Automation API. Version 2 is the previous API version.",
    "contact": {
      "name": "Unity Build Automation team",
      "url": "https://unity.com/solutions/ci-cd",
      "email": "cloudbuild@unity3d.com"
    },
    "license": {
      "name": "Unity Legal",
      "url": "https://unity.com/legal"
    }
  },
  "components": {
    "schemas": {
      "StatusCodes": {
        "enum": [
          100,
          101,
          102,
          103,
          200,
          201,
          202,
          203,
          204,
          205,
          206,
          207,
          300,
          301,
          302,
          303,
          304,
          305,
          307,
          308,
          400,
          401,
          402,
          403,
          404,
          405,
          406,
          407,
          408,
          409,
          410,
          411,
          412,
          413,
          414,
          415,
          416,
          417,
          418,
          419,
          420,
          421,
          422,
          423,
          424,
          426,
          428,
          429,
          431,
          451,
          500,
          501,
          502,
          503,
          504,
          505,
          507,
          511
        ],
        "type": "number"
      },
      "GatewayCodes": {
        "description": "API Error Codes that are used by the Unity Gateway for showing helper links to users in the Error API Response.",
        "enum": [
          2,
          51,
          53,
          54,
          55,
          57,
          58,
          59,
          61,
          62
        ],
        "type": "number"
      },
      "RFC7807ErrorJSON": {
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Unique identifier for this request"
          },
          "details": {
            "items": {
              "properties": {},
              "additionalProperties": {},
              "type": "object"
            },
            "type": "array",
            "description": "Additional details about the error that may be at a more granular level"
          },
          "detail": {
            "type": "string",
            "description": "Description of the error"
          },
          "type": {
            "type": "string",
            "description": "Link to documentation about the specific error so that the caller can understand what went wrong"
          },
          "code": {
            "$ref": "#/components/schemas/GatewayCodes"
          },
          "title": {
            "type": "string",
            "description": "HTTP status text, for example, Forbidden, or a top level description of the error type"
          },
          "status": {
            "$ref": "#/components/schemas/StatusCodes"
          }
        },
        "required": [
          "requestId",
          "details",
          "detail",
          "type",
          "code",
          "title",
          "status"
        ],
        "type": "object",
        "description": "Error response is in the RFC7807-format."
      },
      "RFC7807Error": {
        "$ref": "#/components/schemas/RFC7807ErrorJSON"
      },
      "Author": {
        "description": "Git author information",
        "properties": {
          "email": {
            "type": "string",
            "example": "user@example.com"
          },
          "name": {
            "type": "string",
            "example": "John Doe"
          },
          "date": {
            "type": "string",
            "example": "2023-01-01T00:00:00Z"
          }
        },
        "required": [
          "email"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "CommitResponse": {
        "description": "Commit response",
        "properties": {
          "sha": {
            "type": "string",
            "example": "abc123def456"
          },
          "message": {
            "type": "string",
            "example": "feat: add new feature"
          },
          "branch": {
            "type": "string",
            "example": "main"
          },
          "timestamp": {
            "type": "string",
            "example": "2023-01-01T00:00:00Z"
          },
          "author": {
            "$ref": "#/components/schemas/Author"
          }
        },
        "required": [
          "sha"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "UUID": {
        "type": "string",
        "format": "uuid",
        "description": "Stringified UUIDv4, dashed or dashless: `buildGUID` is stored with the dashes stripped. Anchored because TSOA matches with an unanchored `RegExp.test`.",
        "pattern": "^(?:[\\d\\w]{8}-[\\d\\w]{4}-[\\d\\w]{4}-[\\d\\w]{4}-[\\d\\w]{12}|[\\d\\w]{32})$"
      },
      "Record_string.any_": {
        "properties": {},
        "additionalProperties": {},
        "type": "object",
        "description": "Construct a type with a set of properties K of type T"
      },
      "CacheStrategy": {
        "type": "string",
        "enum": [
          "none",
          "library",
          "workspace",
          "boostdisk",
          "inherit"
        ],
        "default": "inherit",
        "description": "Cache strategy for project builds. - none: Do not use caching - library: Cache the Library folder - workspace: Cache the entire workspace - boostdisk: Use a persistent data disk - inherit: Use the organization level cache strategy"
      },
      "CompressionLevel": {
        "type": "string",
        "enum": [
          "1",
          "2",
          "3",
          "4",
          "5",
          "6",
          "7",
          "8",
          "9",
          "none"
        ],
        "default": "1",
        "description": "Compression level for cache or artifacts. Values: 'none' (no compression) or '1' through '9' (higher numbers = more compression)"
      },
      "WindowsGitBinary": {
        "type": "string",
        "enum": [
          "cygwin",
          "native"
        ],
        "description": "Windows Git binary type. - cygwin: Use Cygwin version of git - native: Use native Windows version of git"
      },
      "ProjectSettings": {
        "properties": {
          "remoteCacheStrategy": {
            "$ref": "#/components/schemas/CacheStrategy"
          },
          "cacheCompressionLevel": {
            "$ref": "#/components/schemas/CompressionLevel"
          },
          "artifactCompressionLevel": {
            "$ref": "#/components/schemas/CompressionLevel"
          },
          "windowsGitBinary": {
            "$ref": "#/components/schemas/WindowsGitBinary"
          },
          "shallowClone": {
            "type": "boolean"
          }
        },
        "required": [
          "remoteCacheStrategy",
          "cacheCompressionLevel",
          "artifactCompressionLevel"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Record_string.boolean_": {
        "properties": {},
        "additionalProperties": {
          "type": "boolean"
        },
        "type": "object",
        "description": "Construct a type with a set of properties K of type T"
      },
      "HttpMethod": {
        "type": "string",
        "enum": [
          "options",
          "get",
          "post",
          "put",
          "patch",
          "delete",
          "head"
        ],
        "default": "get",
        "description": "HTTP method type"
      },
      "Record_string.unknown_": {
        "properties": {},
        "additionalProperties": {},
        "type": "object",
        "description": "Construct a type with a set of properties K of type T"
      },
      "Link": {
        "description": "A hypermedia link describing a related API action or resource.\n\nThis is a generic link object produced by `addResourceLink` (buildservice & userservice) and credential `projects[]` transforms.",
        "properties": {
          "method": {
            "$ref": "#/components/schemas/HttpMethod"
          },
          "href": {
            "type": "string",
            "description": "URL for the related resource. May be either an absolute URL (e.g. a signed storage URL that can be requested directly) or a path relative to this API (which must be resolved against the host you used to make the original request).",
            "example": "/some/path/to/resource"
          },
          "type": {
            "type": "string",
            "example": "application/json"
          },
          "meta": {
            "$ref": "#/components/schemas/Record_string.unknown_"
          },
          "redirect": {
            "type": "boolean",
            "description": "When `true`, `href` points back at this API rather than directly at a storage backend.\n\nFollowing an internal `href` returns a `303 See Other` whose body is the signed storage URL as a JSON string. The response does **not** set a `Location` header, so standard redirect-following (e.g. `curl -L`, browser fetch with default settings, HTTP libraries with redirects enabled) will *not* follow it. To consume the link, clients must parse the URL from the body and `GET` it directly.",
            "example": false
          }
        },
        "required": [
          "href"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Links": {
        "properties": {
          "self": {
            "$ref": "#/components/schemas/Link"
          },
          "list_buildtargets": {
            "$ref": "#/components/schemas/Link"
          },
          "latest_builds": {
            "$ref": "#/components/schemas/Link"
          },
          "revoke_all_shared": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "required": [
          "self",
          "list_buildtargets",
          "latest_builds",
          "revoke_all_shared"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ProjectResponse": {
        "properties": {
          "settings": {
            "$ref": "#/components/schemas/ProjectSettings"
          },
          "defaultConnection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UUID"
              }
            ],
            "nullable": true,
            "example": "a1b2c3d4-e5f6-4a8b-9c0d-1e2f3a4b5c6d"
          },
          "created": {
            "type": "string"
          },
          "disabled": {
            "type": "boolean"
          },
          "disableNotifications": {
            "type": "boolean"
          },
          "generateShareLinks": {
            "type": "boolean"
          },
          "projectid": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "orgName": {
            "type": "string"
          },
          "serviceFlags": {
            "$ref": "#/components/schemas/Record_string.boolean_"
          },
          "orgid": {
            "type": "string"
          },
          "guid": {
            "type": "string"
          },
          "orgFk": {
            "type": "string"
          },
          "buildTimeoutMinutes": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "cachedIcon": {
            "type": "string"
          },
          "links": {
            "$ref": "#/components/schemas/Links"
          }
        },
        "required": [
          "settings",
          "defaultConnection",
          "created",
          "disabled",
          "disableNotifications",
          "generateShareLinks",
          "projectid",
          "name",
          "orgName",
          "serviceFlags",
          "orgid",
          "guid",
          "orgFk",
          "links"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ChangeType": {
        "description": "Change types for ChangedItem",
        "enum": [
          "Added",
          "Changed",
          "Copied",
          "Deleted",
          "Moved"
        ],
        "type": "string"
      },
      "ItemType": {
        "enum": [
          "File",
          "Directory"
        ],
        "type": "string"
      },
      "ChangedItem": {
        "description": "Alternative format for changed items",
        "properties": {
          "changeType": {
            "$ref": "#/components/schemas/ChangeType"
          },
          "itemType": {
            "$ref": "#/components/schemas/ItemType"
          },
          "path": {
            "type": "string"
          },
          "sourcePath": {
            "type": "string"
          },
          "branchName": {
            "type": "string"
          },
          "changesetId": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "changeType",
          "itemType",
          "path",
          "branchName",
          "changesetId"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "UvcsTriggerRequestBody": {
        "description": "Request body for UVCS trigger endpoint",
        "properties": {
          "PLASTIC_CHANGESET": {
            "type": "string",
            "description": "Changeset information in format: cs:2341@br:/main/task4638@rep:product@repserver:plastic.mysite.com:17590",
            "example": "cs:12345@br:/main/feature/task123@rep:myrepo@repserver:plastic.example.com:8087"
          },
          "PLASTIC_CLIENTMACHINE": {
            "type": "string",
            "description": "Client machine name",
            "example": "DEV-MACHINE-01"
          },
          "PLASTIC_COMMENT": {
            "type": "string",
            "description": "Commit comment",
            "example": "Fixed bug in login flow"
          },
          "PLASTIC_SERVER": {
            "type": "string",
            "description": "Plastic server address",
            "example": "plastic.example.com:8087"
          },
          "PLASTIC_SHELVE": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Whether this is a shelve operation",
            "example": "false"
          },
          "PLASTIC_USER": {
            "type": "string",
            "description": "User who performed the operation",
            "example": "john.doe"
          },
          "INPUT": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "$ref": "#/components/schemas/ChangedItem"
                }
              ]
            },
            "type": "array",
            "nullable": true,
            "description": "Array of input entries describing changed files.\n\nCan be either: - Legacy string format: 'CH \"/src/main.c\" FILE#br:(.*);changeset:(\\d+)@rep:(\\w+)@repserver:(.*)' - ChangedItem objects with changeType, path, branchName, and changesetId",
            "example": [
              "AD \"/models/character.fbx\" FILE#br:/main;changeset:12345@rep:myrepo@repserver:plastic.example.com:8087",
              "CH \"/textures/wall.png\" FILE#br:/main;changeset:12345@rep:myrepo@repserver:plastic.example.com:8087"
            ]
          },
          "CONTENT": {
            "type": "string",
            "description": "Additional content",
            "example": "Additional metadata or content"
          },
          "content": {
            "type": "string",
            "example": "Additional metadata or content"
          },
          "PLASTIC_MERGELINKS": {
            "type": "string",
            "description": "Merge links information",
            "example": "merge:123@branch:/develop"
          },
          "PLASTIC_MERGE_LINKS": {
            "type": "string",
            "example": "merge:123@branch:/develop"
          },
          "PLASTIC_BRANCH_NAME": {
            "type": "string",
            "example": "feature/awesome-new-feature"
          },
          "PLASTIC_FULL_BRANCH_NAME": {
            "type": "string",
            "example": "/feature/awesome-new-feature"
          },
          "PLASTIC_BRANCH_NEW_NAME": {
            "type": "string",
            "example": "task-001"
          },
          "PLASTIC_FULL_BRANCH_NEW_NAME": {
            "type": "string",
            "example": "/main/task-001"
          },
          "PLASTIC_REPOSITORY_NAME": {
            "type": "string",
            "example": "my-repo"
          },
          "PLASTIC_PROJECT_GUID": {
            "type": "string"
          },
          "PLASTIC_REPOSITORY_GUID": {
            "type": "string"
          },
          "PLASTIC_REPOSITORY_ID": {
            "type": "string"
          },
          "PLASTIC_CHANGESET_ID": {
            "type": "string"
          },
          "PLASTIC_BRANCH_DELETION_INCLUDES_CHANGESETS": {
            "type": "string"
          }
        },
        "required": [
          "PLASTIC_SERVER"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "SupportedSCMType": {
        "type": "string",
        "enum": [
          "git",
          "svn",
          "p4",
          "oauth",
          "plastic"
        ],
        "description": "Source control management (SCM) system type. Values: 'git', 'svn', 'p4' (Perforce), 'oauth', or 'plastic' (UVCS)"
      },
      "GitConnectionSettings": {
        "description": "Public SSH settings for a Git connection.",
        "properties": {
          "sshPublicKey": {
            "type": "string",
            "description": "The effective public key for an SSH Git connection.",
            "example": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC..."
          },
          "sshKeyType": {
            "type": "string",
            "enum": [
              "dsa",
              "ecdsa",
              "ed25519",
              "rsa"
            ],
            "description": "The actual type of the effective SSH key.",
            "example": "rsa"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "SupportedAuthType": {
        "type": "string",
        "enum": [
          "ticket",
          "password",
          "UPWorkingMode",
          "LDAPWorkingMode",
          "SSOWorkingMode"
        ],
        "description": "Authentication type for Perforce or Plastic SCM. Perforce: 'ticket' or 'password' Plastic: 'UPWorkingMode', 'LDAPWorkingMode', or 'SSOWorkingMode'"
      },
      "P4ConnectionSettings": {
        "description": "Public Perforce authentication settings.",
        "properties": {
          "authType": {
            "$ref": "#/components/schemas/SupportedAuthType"
          },
          "fingerprint": {
            "type": "string",
            "description": "The decrypted, server-managed fingerprint for a P4 connection.",
            "example": "a1b2c3d4e5f6g7h8i9j0"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "SupportedPlasticEnvironment": {
        "type": "string",
        "enum": [
          "prd",
          "stg"
        ],
        "description": "Plastic SCM environment. Values: 'prd' (production) or 'stg' (staging)"
      },
      "SupportedPlasticEncryptionMethod": {
        "type": "string",
        "enum": [
          "AES128",
          "AES192",
          "AES256"
        ],
        "description": "Plastic SCM encryption method. Values: 'AES128', 'AES192', or 'AES256' (Advanced Encryption Standard with key size)"
      },
      "PlasticConnectionSettings": {
        "description": "Public Plastic authentication and encryption settings.",
        "properties": {
          "authType": {
            "$ref": "#/components/schemas/SupportedAuthType"
          },
          "plasticEnvironment": {
            "$ref": "#/components/schemas/SupportedPlasticEnvironment"
          },
          "useEncryption": {
            "type": "boolean",
            "example": false
          },
          "encryptionMethod": {
            "$ref": "#/components/schemas/SupportedPlasticEncryptionMethod"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "SupportedOAuthProvider": {
        "type": "string",
        "enum": [
          "github",
          "gitlab",
          "bitbucket",
          "azure"
        ],
        "description": "OAuth provider name"
      },
      "BitbucketConnectionSettings": {
        "description": "Public workspace settings for a Bitbucket Git connection.",
        "properties": {
          "workspace": {
            "type": "string",
            "example": "my-workspace"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "AzureConnectionSettings": {
        "description": "Public organization and project settings for an Azure Git connection.",
        "properties": {
          "org": {
            "type": "string",
            "example": "my-azure-org"
          },
          "project": {
            "type": "string",
            "example": "my-azure-project"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "ConnectionResponse": {
        "description": "Public v3 SCM connection fields. URLs retain their stored values, including any credentials a caller embedded in them; dedicated credential fields are excluded from the response.",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/UUID"
          },
          "name": {
            "type": "string",
            "example": "my-repo"
          },
          "type": {
            "$ref": "#/components/schemas/SupportedSCMType"
          },
          "url": {
            "type": "string",
            "example": "https://github.com/unity/example-repo.git"
          },
          "user": {
            "type": "string",
            "example": "johndoe"
          },
          "git": {
            "$ref": "#/components/schemas/GitConnectionSettings"
          },
          "p4": {
            "$ref": "#/components/schemas/P4ConnectionSettings"
          },
          "plastic": {
            "$ref": "#/components/schemas/PlasticConnectionSettings"
          },
          "gitProvider": {
            "$ref": "#/components/schemas/SupportedOAuthProvider"
          },
          "bitbucket": {
            "$ref": "#/components/schemas/BitbucketConnectionSettings"
          },
          "azure": {
            "$ref": "#/components/schemas/AzureConnectionSettings"
          }
        },
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object",
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic",
        "description": "Service account key and secret, Base64-encoded as `keyId:secret` (HTTP Basic auth). Recommended for API clients and CI systems."
      },
      "jwt": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Bearer token (Authorization header). Used by the Unity dashboard and interactive sessions."
      }
    }
  }
}
```