# Generated with protoc-gen-openapi
# https://github.com/google/gnostic/tree/master/cmd/protoc-gen-openapi

openapi: 3.1.0
info:
    title: Cursor Origin API
    description: Public third-party-facing Origin API.
    version: v1alpha1
servers:
    - url: https://api.cursor.com
paths:
    /v1/origin/app:
        get:
            tags:
                - OriginService
            description: Returns metadata for the authenticated app.
            operationId: OriginService_GetAuthenticatedApp
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/App'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/app/installations:
        get:
            tags:
                - OriginService
            description: Lists installations for the authenticated app.
            operationId: OriginService_ListAppInstallations
            parameters:
                - name: pageSize
                  in: query
                  description: |-
                    Max installations to return. Defaults to 30 when unset or 0. Values
                     above 100 are clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAppInstallationsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/app/installations/{installationId}:
        get:
            tags:
                - OriginService
            description: Returns a single installation for the authenticated app.
            operationId: OriginService_GetAppInstallation
            parameters:
                - name: installationId
                  in: path
                  description: Installation identifier.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AppInstallation'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        delete:
            tags:
                - OriginService
            description: Deletes an installation that belongs to the authenticated app.
            operationId: OriginService_DeleteAppInstallation
            parameters:
                - name: installationId
                  in: path
                  description: |-
                    The unique identifier of the installation to delete. Bound from the URL
                     path; the installation must belong to the authenticated app.
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: OK
                    content: {}
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/app/installations/{installationId}/access_tokens:
        post:
            tags:
                - OriginService
            description: |-
                Creates an installation access token for the authenticated app.

                 Requires app signing-JWT authentication, like GetAuthenticatedApp. The
                 token is scoped to the named installation, which must belong to the
                 authenticated app.
                 Callers may attenuate the token to a subset of the installation's accepted
                 scopes and accessible repositories.
            operationId: OriginService_CreateInstallationAccessToken
            parameters:
                - name: installationId
                  in: path
                  description: |-
                    The unique identifier of the installation to scope the token to. Bound from
                     the URL path; the installation must belong to the authenticated app.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                scopes:
                                    type: array
                                    items:
                                        type: string
                                    description: |-
                                        Scope strings to grant the token. Values must be unique and included in the
                                         installation's accepted scopes. Empty or omitted inherits the full scope grant.
                                repositoryIds:
                                    type: array
                                    items:
                                        type: string
                                    description: |-
                                        Repository IDs to grant the token. Values must be unique, accessible to the
                                         installation, and contain at most 50 entries. Empty or omitted inherits all
                                         accessible repositories.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/InstallationAccessToken'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/app/webhook/deliveries:
        get:
            tags:
                - OriginService
            description: |-
                Lists webhook deliveries for the authenticated app, newest first.

                 A delivery is one event owed to one app; its id is the `webhook-id`
                 header value the receiver sees. `delivered=false` is the recovery
                 predicate: every delivery the receiver has never acknowledged with a 2xx,
                 regardless of where retries stand.

                 Deliveries are listable for 7 days after creation, and only while the app
                 has an active installation in the delivery's namespace. App-targeted
                 lifecycle events (for example `installation.deleted`) stay visible after
                 the uninstall they describe.
            operationId: OriginService_ListWebhookDeliveries
            parameters:
                - name: delivered
                  in: query
                  description: |-
                    Compares against `delivered_at`. `delivered=false` is the recovery
                     predicate: it selects every delivery that has never received a 2xx,
                     including deliveries whose retry ladder exhausted during an outage.
                  schema:
                    type: boolean
                - name: eventType
                  in: query
                  description: Exact event type, e.g. `pull_request.created`.
                  schema:
                    type: string
                - name: installationId
                  in: query
                  description: Narrow to one installation (`WebhookDelivery.installation.id`).
                  schema:
                    type: string
                - name: createdAfter
                  in: query
                  description: Bound the delivery's creation time. For browsing, not for recovery.
                  schema:
                    type: string
                    format: date-time
                - name: createdBefore
                  in: query
                  schema:
                    type: string
                    format: date-time
                - name: pageSize
                  in: query
                  description: Defaults to 30 when unset or 0. Values above 100 are clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListWebhookDeliveriesResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/app/webhook/deliveries:batchRedeliver:
        post:
            tags:
                - OriginService
            description: |-
                Asks Origin to send deliveries again.

                 The request means "ensure a send is in flight for each of these", not
                 "add another send". Follows BatchGetContents in returning one result per
                 unique input rather than failing the batch on a bad entry, so a single
                 expired id cannot block the rest of a recovery page.

                 Answers 202: the sends are queued, delivery itself is asynchronous. Poll
                 ListWebhookDeliveries for outcomes.
            operationId: OriginService_BatchRedeliverWebhookDeliveries
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/BatchRedeliverWebhookDeliveriesRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/BatchRedeliverWebhookDeliveriesResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/app/webhook/pings:
        post:
            tags:
                - OriginService
            description: |-
                Sends a synthetic `ping` test delivery to the authenticated app's
                 configured webhook URL and reports the receiver's response, so a
                 receiver can be verified during setup without waiting for a real event.

                 The ping is signed exactly like production deliveries (Standard Webhooks
                 headers; verify against `/v1/origin/keys`) with event type `ping` and a
                 payload identifying the app. It is sent once, synchronously, with no
                 retries, and does not appear in ListWebhookDeliveries. Requires a
                 configured webhook URL; rejected with FAILED_PRECONDITION otherwise.
            operationId: OriginService_PingWebhook
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/PingWebhookRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PingWebhookResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/installation/repos:
        get:
            tags:
                - OriginService
            description: |-
                Lists repositories accessible to the authenticated app installation.

                 Requires an installation access token (`oit_`) minted by
                 CreateInstallationAccessToken.
            operationId: OriginService_ListAppInstallationRepositories
            parameters:
                - name: pageSize
                  in: query
                  description: |-
                    Max repositories to return. Defaults to 30 when unset or 0. Values above
                     100 are clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAppInstallationRepositoriesResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/rate_limit:
        get:
            tags:
                - OriginService
            description: |-
                Returns the authenticated principal's current public API rate limit status.

                 Accessing this endpoint does not consume rate limit points. The response
                 covers the shared per-minute point budget used by other public API
                 endpoints for this principal.
            operationId: OriginService_GetRateLimit
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RateLimitStatus'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}:
        get:
            tags:
                - OriginService
            description: Lists repos belonging to an owner entity.
            operationId: OriginService_ListRepos
            parameters:
                - name: ownerSlug
                  in: path
                  description: Parent owner entity slug.
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Max repos to return. Defaults to 30 when unset or 0. Values above 100 are
                     clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page.
                  schema:
                    type: string
                - name: filter
                  in: query
                  description: Optional case-insensitive substring filter.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListReposResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - OriginService
            description: Creates a repo belonging to an owner.
            operationId: OriginService_CreateRepo
            parameters:
                - name: ownerSlug
                  in: path
                  description: Parent owner entity's slug.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/Repo'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Repo'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}:
        get:
            tags:
                - OriginService
            description: Returns a single repo by its `(owner_id, name)` identifier.
            operationId: OriginService_GetRepo
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Repo'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/branches:
        get:
            tags:
                - OriginService
            description: |-
                Lists the repo's branches and tip commits in ascending name order,
                 paginated with `page_size` and `page_token`.
            operationId: OriginService_ListBranches
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Max branches to return. Defaults to 30 when unset or 0. Values above 100
                     are clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page. Encodes the page offset, so `page_size` on a follow-up request
                     is ignored when a token is supplied.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListBranchesResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/check-runs:
        post:
            tags:
                - OriginService
            description: |-
                Upserts a check suite + check run using an installation access token with
                 `repository:checks:write`. The write is attributed to the app that owns
                 the authenticated installation. A repeated call with the same
                 `(repo, head_sha, suite.key, check.key)` updates the existing check run in
                 place rather than creating a duplicate.
            operationId: OriginService_PostCheckRun
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - headSha
                                - checkSuite
                                - checkRun
                            type: object
                            properties:
                                headSha:
                                    type: string
                                    description: Head commit SHA the check run is reported against (40- or 64-char hex).
                                checkSuite:
                                    allOf:
                                        - $ref: '#/components/schemas/CheckSuiteInput'
                                    description: The suite the check run belongs to; upserted alongside the check run.
                                checkRun:
                                    allOf:
                                        - $ref: '#/components/schemas/CheckRunInput'
                                    description: The check run to upsert.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PostCheckRunResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/check-runs/{checkRunId}:
        get:
            tags:
                - OriginService
            description: Returns a single check run by server-assigned id (`cr_…`).
            operationId: OriginService_GetCheckRun
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: checkRunId
                  in: path
                  description: Server-assigned check-run id (`cr_…`).
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CheckRun'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/check-runs/{checkRunId}/annotations:
        get:
            tags:
                - OriginService
            description: |-
                Lists a check run's annotations in ascending id order. Annotation ids are
                 time-sortable TypeIDs. Uses opaque pagination with a default page size of
                 30 and maximum of 100.
            operationId: OriginService_ListCheckRunAnnotations
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: checkRunId
                  in: path
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Max annotations to return. Defaults to 30 when unset or 0. Values above
                     100 are clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response. A supplied token fixes the page
                     size and scope, so `page_size` is ignored on follow-up requests.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCheckRunAnnotationsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - OriginService
            description: |-
                Atomically appends 1–25 annotations when the run's durable total would
                 remain at or below 100. This follows common Checks API annotation field
                 semantics, but uses a dedicated append-only operation and nested optional
                 location. The operation is not request-idempotent: retrying after an
                 ambiguous transport failure may append duplicates and consume capacity.
                 Identical content is intentionally allowed.
            operationId: OriginService_CreateCheckRunAnnotations
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: checkRunId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - annotations
                            type: object
                            properties:
                                annotations:
                                    type: array
                                    items:
                                        $ref: '#/components/schemas/CheckRunAnnotationInput'
                                    description: |-
                                        Atomic append batch. Must contain 1–25 entries. A check run stores at most
                                         100 annotations; non-idempotent retries append duplicates and consume that
                                         capacity. `location` is entirely optional; when present, its required
                                         fields must form a coherent range.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreateCheckRunAnnotationsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/check-runs:batchUpsert:
        post:
            tags:
                - OriginService
            description: |-
                Atomically upserts several check runs belonging to one suite. The request
                 accepts at most 10 runs and rejects duplicate `(external_id, key)`
                 identities. Every run is committed or the entire request is rolled back.
            operationId: OriginService_BatchUpsertCheckRuns
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - headSha
                                - checkSuite
                                - checkRuns
                            type: object
                            properties:
                                headSha:
                                    type: string
                                    description: Head commit SHA the check runs are reported against (40- or 64-char hex).
                                checkSuite:
                                    allOf:
                                        - $ref: '#/components/schemas/CheckSuiteInput'
                                    description: The suite shared by every check run in this request.
                                checkRuns:
                                    type: array
                                    items:
                                        $ref: '#/components/schemas/CheckRunInput'
                                    description: |-
                                        Check runs to upsert, in response order. Must contain 1–10 entries with
                                         unique `(external_id, key)` identities.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/BatchUpsertCheckRunsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/check-suites/{checkSuiteId}:
        get:
            tags:
                - OriginService
            description: |-
                Returns check suite metadata by server-assigned id (`crg_…`). Does not
                 embed check runs; use `ListCheckRunsForSuite` for the suite's runs.
            operationId: OriginService_GetCheckSuite
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: checkSuiteId
                  in: path
                  description: Server-assigned check suite id (`crg_…`).
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CheckSuite'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/check-suites/{checkSuiteId}/check-runs:
        get:
            tags:
                - OriginService
            description: Lists check runs belonging to a suite. Paginated.
            operationId: OriginService_ListCheckRunsForSuite
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: checkSuiteId
                  in: path
                  description: Server-assigned check suite id (`crg_…`).
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Max check runs to return. Defaults to 30 when unset or 0. Values above 100
                     are clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page. Encodes the last-seen check-run id scoped to this suite, so
                     `page_size` on a follow-up request is ignored when a token is supplied.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCheckRunsForSuiteResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/commits:
        get:
            tags:
                - OriginService
            description: Lists commits on a branch or starting ref.
            operationId: OriginService_ListCommits
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: sha
                  in: query
                  description: |-
                    SHA, branch, tag, or symbolic ref (for example `HEAD`) to start listing
                     from. Empty means the repo's default branch.
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Max commits to return. Defaults to 30 when unset or 0. Values above 100 are
                     clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page. Encodes the starting ref and page, so `sha`/`page_size` on a
                     follow-up request are ignored when a token is supplied.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCommitsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/commits/{sha}:
        get:
            tags:
                - OriginService
            description: Returns a single commit by SHA or ref with whole-commit aggregate stats.
            operationId: OriginService_GetCommit
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: sha
                  in: path
                  description: |-
                    SHA, branch, tag, or symbolic ref (for example `HEAD`) of the commit to
                     fetch.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Commit'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/commits/{sha}/check-runs:
        get:
            tags:
                - OriginService
            description: |-
                Lists every check run reported against a commit, across all suites.
                 Paginated.
            operationId: OriginService_ListCheckRunsForCommit
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: sha
                  in: path
                  description: Commit SHA (40- or 64-char hex) to list check runs for.
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Max check runs to return. Defaults to 30 when unset or 0. Values above 100
                     are clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page. Encodes the last-seen check-run id scoped to this commit, so
                     `page_size` on a follow-up request is ignored when a token is supplied.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCheckRunsForCommitResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/commits/{sha}/check-suites:
        get:
            tags:
                - OriginService
            description: |-
                Lists check suites reported against a commit. Returns suite metadata
                 only (no embedded runs). Paginated.
            operationId: OriginService_ListCheckSuitesForCommit
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: sha
                  in: path
                  description: Commit SHA (40- or 64-char hex) to list suites for.
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Max suites to return. Defaults to 30 when unset or 0. Values above 100 are
                     clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page. Encodes the last-seen check-suite id scoped to this commit, so
                     `page_size` on a follow-up request is ignored when a token is supplied.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCheckSuitesForCommitResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/commits/{sha}/files:
        get:
            tags:
                - OriginService
            description: Lists the files changed by a commit.
            operationId: OriginService_ListCommitFiles
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: sha
                  in: path
                  description: |-
                    SHA, branch, tag, or symbolic ref (for example `HEAD`) of the commit
                     whose files should be listed.
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Max changed files to return. Defaults to 30 when unset or 0. Values above
                     100 are clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page. The token fixes the resolved commit, page size, and file cursor,
                     so `sha` and `page_size` on a follow-up request must match the token.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCommitFilesResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/compare/{basehead}:
        get:
            tags:
                - OriginService
            description: |-
                Compares commits, refs, or tags relative to their merge base.
                 `basehead` is `"{base}...{head}"`; refs containing "/" must use their SHA.
            operationId: OriginService_CompareCommits
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: basehead
                  in: path
                  description: |-
                    `"{base}...{head}"`, where either revision may be a SHA, branch, tag, or
                     symbolic ref such as `HEAD`.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CommitComparison'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/contents:
        get:
            tags:
                - OriginService
            description: |-
                Returns file or directory contents at a ref.
                 The file path is passed as the `path` query parameter (supports nested
                 paths); omit or leave empty for the repository root directory.
                 Files larger than 1 MiB (decoded) are rejected with FailedPrecondition
                 (HTTP 400); fetch larger files by cloning the repository over Git HTTPS.
            operationId: OriginService_GetContents
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: path
                  in: query
                  description: |-
                    Path to the file or directory relative to the repository root. Empty
                     requests the root directory.
                  schema:
                    type: string
                - name: ref
                  in: query
                  description: |-
                    Commit, branch, tag, or symbolic ref (for example `HEAD`) to read from.
                     Empty means the repository's default branch.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Content'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/contents:batchGet:
        post:
            tags:
                - OriginService
            description: |-
                Returns the contents of several explicit paths at a ref in one request.
                 Each requested path yields a result marking whether it was found; a found
                 path carries the same `Content` shape as `GetContents` (files as base64,
                 directories as immediate `entries`, symlinks as files). Paths are matched
                 exactly — no globs or patterns — and at most 20 may be requested; duplicates
                 are removed. A single file larger than the GetContents 1 MiB cap fails the
                 whole batch with FailedPrecondition (HTTP 400). Uses POST because the path
                 list travels in the request body.
            operationId: OriginService_BatchGetContents
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - paths
                            type: object
                            properties:
                                paths:
                                    type: array
                                    items:
                                        type: string
                                    description: |-
                                        Exact paths to fetch, relative to the repository root (no globs or
                                         patterns). At most 20 entries; duplicates are removed. An empty string
                                         requests the repository root directory.
                                ref:
                                    type: string
                                    description: |-
                                        Commit, branch, tag, or symbolic ref (for example `HEAD`) to read from.
                                         Empty means the repository's default branch.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/BatchGetContentsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/git/blobs/{sha}:
        get:
            tags:
                - OriginService
            description: |-
                Returns a Git blob object by SHA.
                 Default response is JSON with MIME-wrapped base64 `content`. Pass
                 `Accept: application/vnd.origin.raw+json` (or `application/vnd.origin.raw`)
                 on the REST surface to receive raw blob bytes instead.
                 Blobs larger than 4 MiB (decoded) are rejected; fetch larger files by
                 cloning the repository over Git HTTPS. Empty repositories return 409
                 Conflict.
            operationId: OriginService_GetBlob
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: sha
                  in: path
                  description: Full or abbreviated hex SHA of the blob object.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Blob'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/git/commits/{sha}:
        get:
            tags:
                - OriginService
            description: |-
                Returns a Git commit object by SHA (or resolvable revision).
                 This is the low-level Git Database commit shape (flat author/message/tree),
                 not the higher-level `GetCommit` resource under `/commits/{sha}`.
                 `sha` accepts a commit SHA, branch, tag, or symbolic ref such as `HEAD`.
                 Empty repositories return 409 Conflict.
            operationId: OriginService_GetGitCommit
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: sha
                  in: path
                  description: |-
                    Full or abbreviated hex SHA of the commit object, or a branch, tag, or
                     symbolic ref such as `HEAD`.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GitCommit'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/git/matching-refs:
        get:
            tags:
                - OriginService
            description: |-
                Lists Git references whose names start with the given prefix.
                 REST responses unwrap to a JSON array (via `response_body`).
                 A trailing slash on `ref` is preserved (`heads/` → `refs/heads/`).
                 The symbolic `HEAD` is matched exactly (it is not under `refs/`).
                 Empty repositories return 409 Conflict.
            operationId: OriginService_ListMatchingGitRefs
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: ref
                  in: query
                  description: |-
                    Prefix to match. Typically `heads/<prefix>` or `tags/<prefix>`; a leading
                     `refs/` is accepted and normalized. Empty lists all refs (REST binding
                     without a trailing path segment).
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMatchingGitRefsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/git/matching-refs/{ref}:
        get:
            tags:
                - OriginService
            description: |-
                Lists Git references whose names start with the given prefix.
                 REST responses unwrap to a JSON array (via `response_body`).
                 A trailing slash on `ref` is preserved (`heads/` → `refs/heads/`).
                 The symbolic `HEAD` is matched exactly (it is not under `refs/`).
                 Empty repositories return 409 Conflict.
            operationId: OriginService_ListMatchingGitRefs
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: ref
                  in: path
                  description: |-
                    Prefix to match. Typically `heads/<prefix>` or `tags/<prefix>`; a leading
                     `refs/` is accepted and normalized. Empty lists all refs (REST binding
                     without a trailing path segment).
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMatchingGitRefsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/git/ref/{ref}:
        get:
            tags:
                - OriginService
            description: |-
                Returns a single Git reference by name.
                 `ref` is typically `heads/<branch>` or `tags/<tag>` (with or without a
                 leading `refs/`), or the symbolic `HEAD`. Exact match only; use
                 ListMatchingGitRefs for prefixes. Empty repositories return 409 Conflict.
            operationId: OriginService_GetGitRef
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: ref
                  in: path
                  description: |-
                    Git reference name. Typically `heads/<branch>` or `tags/<tag>`; a leading
                     `refs/` is accepted and normalized. The symbolic `HEAD` is also accepted
                     (returned as `ref: "HEAD"` with the tip commit). Exact match on the full
                     ref name.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GitRef'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/git/tags/{sha}:
        get:
            tags:
                - OriginService
            description: |-
                Returns an annotated Git tag object by SHA.
                 Lightweight tags are not tag objects and return NotFound.
                 Empty repositories return 409 Conflict.
            operationId: OriginService_GetTag
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: sha
                  in: path
                  description: Full or abbreviated hex SHA of the annotated tag object.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GitTag'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/git/trees/{sha}:
        get:
            tags:
                - OriginService
            description: |-
                Returns a Git tree object by SHA or resolvable revision.
                 `sha` accepts a tree SHA, commit SHA, branch, tag, or symbolic ref such as
                 `HEAD`. Set `recursive=true` (or `1`) to walk the whole tree; omitting the
                 parameter or passing any other value lists immediate children only.
                 Recursive listings truncate at
                 100,000 entries or 7 MiB and set `truncated=true`. Empty repositories
                 return 409 Conflict.
            operationId: OriginService_GetTree
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: sha
                  in: path
                  description: Tree SHA, commit SHA, branch, tag, or symbolic ref such as `HEAD`.
                  required: true
                  schema:
                    type: string
                - name: recursive
                  in: query
                  description: |-
                    When true, returns the full recursive walk of the tree. Query values
                     `true` and `1` enable recursion; omitting the parameter or passing any
                     other value (including `false` and `0`) lists immediate children only.
                  schema:
                    type: boolean
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GitTree'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/labels:
        get:
            tags:
                - OriginService
            description: |-
                Lists labels defined on a repository, ordered by name, paginated with
                 `page_size` and `page_token`. Default page size is 30; maximum is 100.
            operationId: OriginService_ListLabels
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Maximum labels to return. Defaults to 30 when omitted or zero; capped at
                     100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListLabelsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - OriginService
            description: |-
                Creates a repository label. Returns the created label. Requires
                 `repository:labels:write`. Duplicate names return ALREADY_EXISTS.
            operationId: OriginService_CreateLabel
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - name
                                - color
                            type: object
                            properties:
                                name:
                                    type: string
                                    description: |-
                                        Label name. Leading and trailing whitespace is trimmed. Maximum 50
                                         characters.
                                color:
                                    type: string
                                    description: Six-character hex color without a leading `#`.
                                description:
                                    type: string
                                    description: Optional description. Maximum 255 characters.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Label'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/labels/{labelName}:
        get:
            tags:
                - OriginService
            description: Returns a single repository label by name. Unknown names return NOT_FOUND.
            operationId: OriginService_GetLabel
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: labelName
                  in: path
                  description: Label name. Leading and trailing whitespace is trimmed before lookup.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Label'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        delete:
            tags:
                - OriginService
            description: Deletes a repository label by name. Requires `repository:labels:write`.
            operationId: OriginService_DeleteLabel
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: labelName
                  in: path
                  description: Label name. Leading and trailing whitespace is trimmed before lookup.
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: OK
                    content: {}
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        patch:
            tags:
                - OriginService
            description: |-
                Updates a repository label identified by its current name. Omitted fields
                 are left unchanged. Rename with `name`. Requires `repository:labels:write`.
            operationId: OriginService_UpdateLabel
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: labelName
                  in: path
                  description: |-
                    Current label name. Leading and trailing whitespace is trimmed before
                     lookup.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                name:
                                    type: string
                                    description: |-
                                        New label name. Leading and trailing whitespace is trimmed. Maximum 50
                                         characters. Omit to leave unchanged.
                                color:
                                    type: string
                                    description: Six-character hex color without a leading `#`. Omit to leave unchanged.
                                description:
                                    type: string
                                    description: Description. Maximum 255 characters. Omit to leave unchanged.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Label'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls:
        get:
            tags:
                - OriginService
            description: |-
                Lists pull requests in a repo, optionally filtered by head branch, base
                 branch, author, creation-time range, and state, in creation order
                 (newest first by default; set `direction=asc` for oldest first). Each
                 pull request includes its assigned labels.
            operationId: OriginService_ListPullRequests
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: head
                  in: query
                  description: Optional exact branch (head-ref) filter. Omit to list across every branch.
                  schema:
                    type: string
                - name: state
                  in: query
                  description: '"open" | "closed" | "all". Defaults to "open".'
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: Maximum results to return. Defaults to 30; maximum 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: Opaque token from the preceding page.
                  schema:
                    type: string
                - name: author
                  in: query
                  description: |-
                    Optional author filter: an actor id as returned in
                     `pull_request.author.id` (`user_…`, `app_…`, or `sa_…`). An unknown
                     author yields an empty list. Any other value, including the shared
                     `origin-cursor-managed-actor` id, is rejected with INVALID_ARGUMENT.
                  schema:
                    type: string
                - name: base
                  in: query
                  description: |-
                    Optional exact base-branch filter. Accepts a short name (`main`) or a
                     fully qualified ref (`refs/heads/main`). Omit to list across every base.
                  schema:
                    type: string
                - name: direction
                  in: query
                  description: |-
                    Sort direction by creation order (pull number): `"desc"` (newest first,
                     the default) or `"asc"` (oldest first).
                  schema:
                    type: string
                - name: since
                  in: query
                  description: |-
                    Optional inclusive lower bound on creation time (RFC 3339 timestamp,
                     e.g. `2026-08-01T00:00:00Z`): only pull requests created at or after
                     this instant. Malformed timestamps are rejected with INVALID_ARGUMENT.
                  schema:
                    type: string
                - name: until
                  in: query
                  description: |-
                    Optional inclusive upper bound on creation time (RFC 3339 timestamp):
                     only pull requests created at or before this instant. Malformed
                     timestamps are rejected with INVALID_ARGUMENT.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPullRequestsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - OriginService
            description: |-
                Creates a pull request from `head` into `base`.

                 Optional `parent_pull_number` stacks this change on another open or draft
                 pull request in the same repository.
            operationId: OriginService_CreatePullRequest
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - title
                                - head
                                - base
                            type: object
                            properties:
                                title:
                                    type: string
                                    description: Pull request title.
                                body:
                                    type: string
                                    description: Pull request body / description. May be empty.
                                head:
                                    type: string
                                    description: |-
                                        Source branch name (the head of the change). Must resolve in the repo at
                                         call time.
                                base:
                                    type: string
                                    description: |-
                                        Target branch name (what the change merges into). Must resolve in the repo
                                         at call time.
                                draft:
                                    type: boolean
                                    description: |-
                                        When true, create as a draft. When false or omitted, create as open
                                         (ready for review).
                                parentPullNumber:
                                    type: string
                                    description: |-
                                        Optional parent pull request number when stacking this change on another
                                         open/draft change in the same repository.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PullRequest'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/comments/{commentId}:
        get:
            tags:
                - OriginService
            description: Returns a single pull request comment by its stable Origin id.
            operationId: OriginService_GetPullRequestComment
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: commentId
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PullRequestComment'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        patch:
            tags:
                - OriginService
            description: Updates a pull request comment by its stable Origin id.
            operationId: OriginService_UpdatePullRequestComment
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: commentId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - body
                            type: object
                            properties:
                                body:
                                    type: string
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PullRequestComment'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}:
        get:
            tags:
                - OriginService
            description: Returns a single pull request, including its assigned labels.
            operationId: OriginService_GetPullRequest
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PullRequest'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        patch:
            tags:
                - OriginService
            description: |-
                Updates a pull request's title, body, base branch, and/or lifecycle state.

                 Omitted fields are unchanged. Present fields are applied in order:
                 metadata, then reopen/draft/ready-for-review, then base, then close. Close
                 runs last so a same-request retarget can still see an open change; reopen
                 runs before base so a closed pull can be retargeted. If a later step
                 fails, earlier steps may already have been committed.
            operationId: OriginService_UpdatePullRequest
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                title:
                                    type: string
                                    description: New title. Omitted fields are left unchanged.
                                body:
                                    type: string
                                    description: New body / description. An empty string clears the body.
                                state:
                                    type: string
                                    description: |-
                                        `"open"` or `"closed"`. `"closed"` closes the pull request. `"open"`
                                         without `draft: true` marks it ready for review, including publishing an
                                         existing draft. Merged is not writable — use `MergePullRequest`.
                                draft:
                                    type: boolean
                                    description: |-
                                        `true` marks the pull request draft; `false` marks it ready for review
                                         (and reopens it if currently closed). Ignored when `state` is `"closed"`.
                                base:
                                    type: string
                                    description: |-
                                        New base branch. Retargets the pull request and may update stack
                                         parentage when the new base is another change's head (or the default
                                         branch).
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PullRequest'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}/comments:
        get:
            tags:
                - OriginService
            description: |-
                Lists every comment on a pull request in chronological order. Each comment
                 includes its thread id so clients can group the flat response into threads.
            operationId: OriginService_ListPullRequestComments
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: Maximum comments to return. Defaults to 30; maximum 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: Opaque token from the preceding page.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPullRequestCommentsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - OriginService
            description: |-
                Creates a general-discussion comment or reply on an Origin pull request.
                 Omitting `thread_id` starts a new thread; providing it replies to that
                 thread. These are general-discussion comments, not diff-anchored review
                 comments.
            operationId: OriginService_CreatePullRequestComment
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - body
                            type: object
                            properties:
                                body:
                                    type: string
                                threadId:
                                    type: string
                                    description: |-
                                        Existing thread id to reply to. Omit to create a new general-discussion
                                         thread.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PullRequestComment'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}/commits:
        get:
            tags:
                - OriginService
            description: Lists the commits in a pull request.
            operationId: OriginService_ListPullRequestCommits
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Max commits to return. Defaults to 30 when unset or 0. Values above 100
                     are clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page. The token is bound to the repository, pull request version,
                     page size, and commit offset.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPullRequestCommitsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}/files:
        get:
            tags:
                - OriginService
            description: Lists the files changed in a pull request.
            operationId: OriginService_ListPullRequestFiles
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: |-
                    Max changed files to return. Defaults to 30 when unset or 0. Values above
                     100 are clamped to 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: |-
                    Opaque cursor from a previous response's `next_page_token`. Empty for the
                     first page. The token is bound to the repository, pull request version,
                     page size, and changed-file cursor.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPullRequestFilesResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}/labels:
        get:
            tags:
                - OriginService
            description: |-
                Lists every label assigned to a pull request, ordered by name. The
                 response is the full assigned list; a pull request can have at most 100
                 labels.
            operationId: OriginService_ListPullRequestLabels
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPullRequestLabelsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        put:
            tags:
                - OriginService
            description: |-
                Replaces every label assigned to a pull request with the provided names.
                 An empty list removes every assigned label. Unknown names and a missing
                 pull request return NOT_FOUND. Returns the labels assigned after the
                 replacement, ordered by name.
            operationId: OriginService_SetPullRequestLabels
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                labels:
                                    type: array
                                    items:
                                        type: string
                                    description: |-
                                        Label names to assign. Maximum 100. An empty list removes every assigned
                                         label. Duplicate names are ignored.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SetPullRequestLabelsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - OriginService
            description: Adds existing repository labels to a pull request.
            operationId: OriginService_AddPullRequestLabels
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - labels
                            type: object
                            properties:
                                labels:
                                    type: array
                                    items:
                                        type: string
                                    description: Label names to add. Maximum 100.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AddPullRequestLabelsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        delete:
            tags:
                - OriginService
            description: |-
                Removes every label from a pull request.
                 Succeeds when the pull request has no labels. A missing pull request
                 returns NOT_FOUND.
            operationId: OriginService_RemoveAllPullRequestLabels
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: OK
                    content: {}
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}/labels/{labelName}:
        delete:
            tags:
                - OriginService
            description: |-
                Removes a label from a pull request.
                 Returns the labels remaining on the pull request.
            operationId: OriginService_RemovePullRequestLabel
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
                - name: labelName
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemovePullRequestLabelResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}/merge:
        post:
            tags:
                - OriginService
            description: |-
                Merges a pull request into its base.

                 For a stacked pull request, merges the entire root-to-target prefix ending
                 at this pull number — not only this pull. Supported only on native Origin
                 repositories; mirrored repositories are rejected.
            operationId: OriginService_MergePullRequest
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  description: |-
                    Pull number to merge. When this pull is stacked, the merge lands every
                     pull from the stack root through this number.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            type: object
                            properties:
                                expectedHeadSha:
                                    type: string
                                    description: |-
                                        Optional guard against merging a head the caller has not seen: the full
                                         commit SHA (40- or 64-character hex) expected to be the pull request's
                                         current head. When set and the head has moved, the merge is rejected
                                         with ABORTED (HTTP 409 Conflict) and nothing is merged. Values that are
                                         not a full commit SHA are rejected with INVALID_ARGUMENT. Not evaluated
                                         when the pull request is already merged (the call returns idempotent
                                         success). Omit to merge whatever the current head is.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MergePullRequestResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}/requested_reviewers:
        get:
            tags:
                - OriginService
            description: |-
                Lists users and groups whose review is currently requested on a pull
                 request. A requested reviewer who has already submitted a review for the
                 current request is omitted; requesting review again after a submission
                 returns them to this list.
            operationId: OriginService_ListPullRequestRequestedReviewers
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPullRequestRequestedReviewersResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}/reviews:
        get:
            tags:
                - OriginService
            description: |-
                Lists submitted reviews on a pull request, ordered by `submitted_at`
                 ascending. Pending reviews are omitted.
            operationId: OriginService_ListPullRequestReviews
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
                - name: pageSize
                  in: query
                  description: Maximum reviews to return. Defaults to 30; maximum 100.
                  schema:
                    type: integer
                    format: int32
                - name: pageToken
                  in: query
                  description: Opaque token from the preceding page.
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPullRequestReviewsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - OriginService
            description: |-
                Creates and submits a review on a pull request.

                 The review is submitted immediately. A new `approve` or `request_changes`
                 review supersedes the caller's prior live decision review on the same pull
                 request, which is dismissed. Pull request authors cannot `approve` their
                 own pull request. Fails with FAILED_PRECONDITION while the caller has an
                 unsubmitted draft review on the pull request.
            operationId: OriginService_CreatePullRequestReview
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - verdict
                            type: object
                            properties:
                                verdict:
                                    enum:
                                        - approve
                                        - request_changes
                                        - comment
                                    type: string
                                    description: The review decision.
                                    format: enum
                                body:
                                    type: string
                                    description: Free-text review summary. May be empty.
                                versionNumber:
                                    type: string
                                    description: |-
                                        Pull request version number the review applies to (see
                                         `PullRequestVersion.number`). Omit to review the latest version at call
                                         time.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PullRequestReview'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}/reviews/{reviewId}:
        patch:
            tags:
                - OriginService
            description: |-
                Updates the body of a review. Only the review author can update it;
                 other callers receive PERMISSION_DENIED. A review that does not belong
                 to the named pull request returns NOT_FOUND.

                 Unsubmitted draft reviews can be updated too; a draft's response has no
                 `submitted_at`.
            operationId: OriginService_UpdatePullRequestReview
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
                - name: reviewId
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - body
                            type: object
                            properties:
                                body:
                                    type: string
                                    description: |-
                                        Replacement review summary text; replaces the prior body in full. Must
                                         contain a non-whitespace character; INVALID_ARGUMENT otherwise.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PullRequestReview'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/pulls/{pullNumber}/reviews/{reviewId}/dismissals:
        put:
            tags:
                - OriginService
            description: |-
                Dismisses a submitted review so its verdict no longer counts toward the
                 pull request's review state. The review itself is retained and keeps
                 appearing in ListPullRequestReviews, with `dismissal` set.

                 Dismissing does not require having authored the review; write permission
                 on the repository's pull request reviews is sufficient.

                 Only `approve` and `request_changes` reviews can be dismissed, and only
                 once: a `comment` review, an unsubmitted draft review, or an
                 already-dismissed review returns FAILED_PRECONDITION, and repeating the
                 call leaves the first dismissal in place. A review that does not belong to
                 the named pull request returns NOT_FOUND.
            operationId: OriginService_DismissPullRequestReview
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: pullNumber
                  in: path
                  required: true
                  schema:
                    type: string
                - name: reviewId
                  in: path
                  description: Stable Origin review identifier, as returned by ListPullRequestReviews.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - message
                            type: object
                            properties:
                                message:
                                    type: string
                                    description: |-
                                        Reason recorded with the dismissal. Must contain a non-whitespace
                                         character; INVALID_ARGUMENT otherwise.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PullRequestReview'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/rulesets:
        get:
            tags:
                - OriginService
            description: |-
                Lists every ruleset configured on a repository. Returns the full set in
                 one response (rulesets per repository are bounded configuration).
            operationId: OriginService_ListRulesets
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRulesetsResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        post:
            tags:
                - OriginService
            description: |-
                Creates a repository ruleset and returns the created ruleset, including
                 server-assigned rule and bypass-actor ids.
            operationId: OriginService_CreateRuleset
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - name
                                - enforcement
                                - kind
                            type: object
                            properties:
                                name:
                                    type: string
                                description:
                                    type: string
                                enforcement:
                                    enum:
                                        - active
                                        - evaluate
                                        - disabled
                                    type: string
                                    format: enum
                                kind:
                                    enum:
                                        - merge_branch
                                        - push_branch
                                        - push_tag
                                        - push_repository
                                    type: string
                                    format: enum
                                includedRefNames:
                                    type: array
                                    items:
                                        type: string
                                    description: |-
                                        Ref name patterns this ruleset includes. Supports globs and the tokens
                                         `~ALL` and `~DEFAULT_BRANCH`.
                                excludedRefNames:
                                    type: array
                                    items:
                                        type: string
                                    description: |-
                                        Ref name patterns this ruleset excludes. Same pattern language as
                                         `included_ref_names`.
                                rules:
                                    type: array
                                    items:
                                        $ref: '#/components/schemas/RulesetRuleInput'
                                bypassActors:
                                    type: array
                                    items:
                                        $ref: '#/components/schemas/RulesetBypassActorInput'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Ruleset'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}/rulesets/{rulesetId}:
        get:
            tags:
                - OriginService
            description: Returns a single repository ruleset by its stable Origin id.
            operationId: OriginService_GetRuleset
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: rulesetId
                  in: path
                  description: Stable Origin ruleset id.
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Ruleset'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        put:
            tags:
                - OriginService
            description: |-
                Updates an existing repository ruleset. Replaces the ruleset configuration
                 (including nested rules and bypass actors) and returns the updated
                 ruleset with server-assigned rule and bypass-actor ids.
            operationId: OriginService_UpdateRuleset
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: rulesetId
                  in: path
                  description: Stable Origin ruleset id.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - name
                                - enforcement
                                - kind
                            type: object
                            properties:
                                name:
                                    type: string
                                description:
                                    type: string
                                enforcement:
                                    enum:
                                        - active
                                        - evaluate
                                        - disabled
                                    type: string
                                    format: enum
                                kind:
                                    enum:
                                        - merge_branch
                                        - push_branch
                                        - push_tag
                                        - push_repository
                                    type: string
                                    format: enum
                                includedRefNames:
                                    type: array
                                    items:
                                        type: string
                                    description: |-
                                        Ref name patterns this ruleset includes. Supports globs and the tokens
                                         `~ALL` and `~DEFAULT_BRANCH`.
                                excludedRefNames:
                                    type: array
                                    items:
                                        type: string
                                    description: |-
                                        Ref name patterns this ruleset excludes. Same pattern language as
                                         `included_ref_names`.
                                rules:
                                    type: array
                                    items:
                                        $ref: '#/components/schemas/RulesetRuleInput'
                                bypassActors:
                                    type: array
                                    items:
                                        $ref: '#/components/schemas/RulesetBypassActorInput'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Ruleset'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
        delete:
            tags:
                - OriginService
            description: Deletes a repository ruleset by its stable Origin id.
            operationId: OriginService_DeleteRuleset
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
                - name: rulesetId
                  in: path
                  description: Stable Origin ruleset id.
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: OK
                    content: {}
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
    /v1/origin/repos/{ownerSlug}/{repoName}:syncMirror:
        post:
            tags:
                - OriginService
            description: |-
                Synchronizes one ref of a mirrored repository from its upstream source.
                 Returns HTTP 200 when the sync target is satisfied, or HTTP 202 when the
                 sync is still pending. `wait=false` (the default) schedules the sync and
                 usually returns 202; it returns 200 immediately when `sha` is already
                 reachable from `ref`. `wait=true` blocks until satisfied or the wait
                 budget (~2 minutes) expires; expiry still returns 202 and the sync
                 continues in the background.
                 Repositories that do not pull from an upstream source are rejected.
            operationId: OriginService_SyncMirror
            parameters:
                - name: ownerSlug
                  in: path
                  description: Owning entity's unique slug.
                  required: true
                  schema:
                    type: string
                - name: repoName
                  in: path
                  description: Repo name, unique to the owner entity.
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            required:
                                - ref
                            type: object
                            properties:
                                ref:
                                    type: string
                                    description: |-
                                        Full git ref name to fetch. Must start with `refs/` and name a ref
                                         after that prefix, for example `refs/heads/main` or `refs/tags/v1`.
                                         Short names such as `main` are rejected with INVALID_ARGUMENT.
                                wait:
                                    type: boolean
                                    description: When true, block until synced or the wait budget expires. Defaults to false.
                                sha:
                                    type: string
                                    description: |-
                                        Optional full commit object id: 40- or 64-character hex. Omit or leave
                                         empty to wait on the tip of `ref`. When set and reachable from `ref`,
                                         the call returns early without waiting for other mirror work to drain.
                                         Other values are rejected with INVALID_ARGUMENT.
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SyncMirrorResponse'
                "400":
                    description: Bad Request
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "401":
                    description: Unauthorized
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "403":
                    description: Forbidden
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                "429":
                    description: Too Many Requests
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
                default:
                    description: Default error response
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Status'
components:
    schemas:
        AddPullRequestLabelsRequest:
            required:
                - identifier
                - pullNumber
                - labels
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                labels:
                    type: array
                    items:
                        type: string
                    description: Label names to add. Maximum 100.
        AddPullRequestLabelsResponse:
            type: object
            properties:
                labels:
                    type: array
                    items:
                        $ref: '#/components/schemas/Label'
        App:
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                    description: Globally unique app identifier.
                slug:
                    readOnly: true
                    type: string
                displayName:
                    readOnly: true
                    type: string
                webhookUrl:
                    readOnly: true
                    type: string
                events:
                    readOnly: true
                    type: array
                    items:
                        type: string
                    description: Outbound webhook event subscriptions.
                createdAt:
                    readOnly: true
                    type: string
                    format: date-time
                updatedAt:
                    readOnly: true
                    type: string
                    format: date-time
                installationRedirectUris:
                    readOnly: true
                    type: array
                    items:
                        type: string
                    description: |-
                        OAuth install callback allowlist: redirect URIs an app-initiated install
                         may return to, matched exactly at authorize time.
            description: An Origin app.
        AppInstallation:
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                    description: Globally unique installation identifier.
                appId:
                    readOnly: true
                    type: string
                    description: The installed app's identifier.
                target:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/Owner'
                    description: Target owner entity the app is installed into.
                createdAt:
                    readOnly: true
                    type: string
                    format: date-time
                updatedAt:
                    readOnly: true
                    type: string
                    format: date-time
                repoSelectionMode:
                    readOnly: true
                    enum:
                        - all
                        - selected
                    type: string
                    description: Whether the app can access all repos belonging to the owner, or only selected repos.
                    format: enum
                scopes:
                    readOnly: true
                    type: array
                    items:
                        type: string
                    description: |-
                        Scopes granted to this installation as catalog scope strings, e.g.
                         "repository:contents:read".
                installedBy:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/OriginUserActor'
                    description: User who originally installed the app.
            description: An installation of an Origin app into a target owner entity.
        BatchGetContentsRequest:
            required:
                - identifier
                - paths
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: 'Identity of the repo: `(owner_slug, name)`.'
                paths:
                    type: array
                    items:
                        type: string
                    description: |-
                        Exact paths to fetch, relative to the repository root (no globs or
                         patterns). At most 20 entries; duplicates are removed. An empty string
                         requests the repository root directory.
                ref:
                    type: string
                    description: |-
                        Commit, branch, tag, or symbolic ref (for example `HEAD`) to read from.
                         Empty means the repository's default branch.
        BatchGetContentsResponse:
            type: object
            properties:
                results:
                    type: array
                    items:
                        $ref: '#/components/schemas/BatchGetContentsResult'
                    description: One result per unique requested path, in first-seen request order.
                resolvedCommitSha:
                    type: string
                    description: The commit SHA the `ref` resolved to.
        BatchGetContentsResult:
            type: object
            properties:
                path:
                    type: string
                    description: The requested path this result corresponds to (echoed verbatim).
                found:
                    type: boolean
                    description: |-
                        Whether the path exists at the resolved ref. When false, `content` is
                         unset.
                content:
                    allOf:
                        - $ref: '#/components/schemas/Content'
                    description: |-
                        The path's content when `found` is true; unset otherwise. Uses the same
                         representation as `GetContents`.
            description: The outcome for one requested path in a BatchGetContents response.
        BatchRedeliverWebhookDeliveriesRequest:
            required:
                - deliveryIds
            type: object
            properties:
                deliveryIds:
                    type: array
                    items:
                        type: string
                    description: |-
                        Deliveries to send again. At most 100 unique entries, matching the
                         page_size ceiling on ListWebhookDeliveries. Duplicates are removed,
                         keeping first-seen order. An empty list, or more than 100 unique
                         entries, is a 400 InvalidArgument.
        BatchRedeliverWebhookDeliveriesResponse:
            type: object
            properties:
                results:
                    type: array
                    items:
                        $ref: '#/components/schemas/BatchRedeliverWebhookDeliveryResult'
                    description: One result per unique requested delivery id, in first-seen request order.
        BatchRedeliverWebhookDeliveryResult:
            type: object
            properties:
                deliveryId:
                    type: string
                    description: The requested delivery id, echoed verbatim.
                outcome:
                    enum:
                        - queued
                        - already_in_flight
                        - not_found
                    type: string
                    description: |-
                        The result for this id: `queued` (a send was created),
                         `already_in_flight` (a send was already running; success, not an error),
                         or `not_found`. `not_found` covers unknown ids, ids older than the 7-day
                         retention window, and namespaces where the app is no longer installed.
                    format: enum
            description: The outcome for one requested delivery id.
        BatchUpsertCheckRunsRequest:
            required:
                - identifier
                - headSha
                - checkSuite
                - checkRuns
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: 'Identity of the repo the check runs target: `(owner_slug, name)`.'
                headSha:
                    type: string
                    description: Head commit SHA the check runs are reported against (40- or 64-char hex).
                checkSuite:
                    allOf:
                        - $ref: '#/components/schemas/CheckSuiteInput'
                    description: The suite shared by every check run in this request.
                checkRuns:
                    type: array
                    items:
                        $ref: '#/components/schemas/CheckRunInput'
                    description: |-
                        Check runs to upsert, in response order. Must contain 1–10 entries with
                         unique `(external_id, key)` identities.
        BatchUpsertCheckRunsResponse:
            type: object
            properties:
                checkSuite:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/CheckSuite'
                    description: The persisted suite shared by all returned check runs.
                checkRuns:
                    readOnly: true
                    type: array
                    items:
                        $ref: '#/components/schemas/CheckRun'
                    description: Persisted check runs in the same order as the request.
        Blob:
            type: object
            properties:
                sha:
                    type: string
                    description: Git blob object SHA (hex).
                size:
                    type: integer
                    description: |-
                        Decoded content size in bytes. `int32` ensures REST JSON emits a number.
                         The GetBlob size cap is 4 MiB.
                    format: int32
                encoding:
                    type: string
                    description: Always "base64".
                content:
                    type: string
                    description: |-
                        Base64-encoded blob contents wrapped at 60 characters per line, with a
                         trailing newline.
            description: A Git blob object.
        Branch:
            type: object
            properties:
                name:
                    type: string
                    description: Branch name without the "refs/heads/" prefix, e.g. "main".
                commit:
                    allOf:
                        - $ref: '#/components/schemas/BranchCommit'
                    description: The commit at the tip of the branch.
            description: A repository branch and the commit at its tip.
        BranchCommit:
            type: object
            properties:
                sha:
                    type: string
                    description: Full hex SHA of the commit at the tip of the branch.
            description: The commit a branch points at.
        CheckRun:
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                    description: Server-assigned unique ID of the check run.
                repository:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/RepositoryReference'
                    description: Repository the check run belongs to.
                checkSuite:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/CheckSuiteReference'
                    description: Suite this check run belongs to.
                sha:
                    readOnly: true
                    type: string
                    description: Resolved head commit SHA the check run is attached to (lowercase hex).
                key:
                    readOnly: true
                    type: string
                    description: App-chosen idempotency key for the check run.
                name:
                    readOnly: true
                    type: string
                    description: Human-facing check-run name.
                status:
                    readOnly: true
                    enum:
                        - queued
                        - in_progress
                        - completed
                    type: string
                    format: enum
                conclusion:
                    readOnly: true
                    enum:
                        - success
                        - failure
                        - neutral
                        - cancelled
                        - skipped
                        - timed_out
                        - action_required
                        - stale
                    type: string
                    description: Present iff `status == completed`.
                    format: enum
                detailsUrl:
                    readOnly: true
                    type: string
                    description: Link to more detail about this specific check run, if set.
                externalUpdatedAt:
                    readOnly: true
                    type: string
                    description: The external system's last-update time used for ordering.
                    format: date-time
                startedAt:
                    readOnly: true
                    type: string
                    description: When the check run started, if reported.
                    format: date-time
                completedAt:
                    readOnly: true
                    type: string
                    description: When the check run completed, if reported.
                    format: date-time
                createdAt:
                    readOnly: true
                    type: string
                    format: date-time
                updatedAt:
                    readOnly: true
                    type: string
                    format: date-time
                externalId:
                    readOnly: true
                    type: string
                    description: Provider-assigned immutable identity for this check attempt.
                actor:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/OriginActor'
                    description: Principal that produced the check run.
                output:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/CheckRunOutput'
                    description: Human-readable output for this check run, if set.
                deadlineAt:
                    readOnly: true
                    type: string
                    description: Optional deadline. Omitted or unset means no expiration.
                    format: date-time
            description: |-
                A persisted check run, as returned by `PostCheckRun`. All fields are
                 server-owned; the writable shape is `CheckRunInput`.
        CheckRunAnnotation:
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                checkRunId:
                    readOnly: true
                    type: string
                annotationLevel:
                    readOnly: true
                    enum:
                        - notice
                        - warning
                        - failure
                    type: string
                    format: enum
                message:
                    readOnly: true
                    type: string
                title:
                    readOnly: true
                    type: string
                rawDetails:
                    readOnly: true
                    type: string
                createdAt:
                    readOnly: true
                    type: string
                    format: date-time
                updatedAt:
                    readOnly: true
                    type: string
                    format: date-time
                location:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/CheckRunAnnotationLocation'
            description: Persisted append-only annotation. Non-inline annotations omit `location`.
        CheckRunAnnotationColumnRange:
            type: object
            properties:
                startColumn:
                    type: integer
                    format: int32
                endColumn:
                    type: integer
                    format: int32
            description: Optional paired columns for a single-line annotation range.
        CheckRunAnnotationInput:
            required:
                - annotationLevel
                - message
            type: object
            properties:
                annotationLevel:
                    enum:
                        - notice
                        - warning
                        - failure
                    type: string
                    format: enum
                message:
                    type: string
                    description: 'Non-empty annotation message. Maximum UTF-8 size: 65535 bytes.'
                title:
                    type: string
                    description: 'Optional title. Maximum length: 255 Unicode characters.'
                rawDetails:
                    type: string
                    description: 'Optional raw detail text. Maximum UTF-8 size: 65535 bytes.'
                location:
                    allOf:
                        - $ref: '#/components/schemas/CheckRunAnnotationLocation'
                    description: Omit for a general, non-inline annotation.
            description: |-
                Content fields follow common Checks API annotation semantics. Origin groups source
                 coordinates in optional `location`, allowing run-level annotations to omit it.
        CheckRunAnnotationLocation:
            required:
                - path
                - startLine
                - endLine
            type: object
            properties:
                path:
                    type: string
                    description: 'Maximum UTF-8 size: 4096 bytes.'
                startLine:
                    type: integer
                    format: int32
                endLine:
                    type: integer
                    format: int32
                columns:
                    $ref: '#/components/schemas/CheckRunAnnotationColumnRange'
            description: |-
                Optional source location for a check-run annotation. `path`, `start_line`,
                 and `end_line` are required whenever the enclosing annotation supplies this
                 message. `path` is canonical and repository-relative, lines and columns are
                 positive 1-based inclusive coordinates, and `columns` is supported only for
                 a single-line range.
        CheckRunInput:
            required:
                - key
                - name
                - status
                - externalUpdatedAt
                - externalId
            type: object
            properties:
                key:
                    type: string
                    description: Stable, app-chosen key identifying the logical check across attempts.
                name:
                    type: string
                    description: Human-facing check-run name.
                status:
                    enum:
                        - queued
                        - in_progress
                        - completed
                    type: string
                    format: enum
                conclusion:
                    enum:
                        - success
                        - failure
                        - neutral
                        - cancelled
                        - skipped
                        - timed_out
                        - action_required
                        - stale
                    type: string
                    description: Required iff `status == completed`.
                    format: enum
                externalUpdatedAt:
                    type: string
                    description: |-
                        The external system's last-update time. Used to order concurrent updates
                         so a stale retry can't overwrite newer state.
                    format: date-time
                startedAt:
                    type: string
                    description: When the check run started.
                    format: date-time
                completedAt:
                    type: string
                    description: When the check run completed.
                    format: date-time
                detailsUrl:
                    type: string
                    description: |-
                        Optional link to more detail about this specific check run (e.g. the
                         provider's job/build URL).
                externalId:
                    type: string
                    description: Provider-assigned immutable identity for this check attempt.
                output:
                    allOf:
                        - $ref: '#/components/schemas/CheckRunOutput'
                    description: Human-readable output for this check run.
                deadlineAt:
                    type: string
                    description: |-
                        Optional deadline. Omitted or unset means no expiration.
                         Must not be more than 24 hours in the future.
                    format: date-time
            description: |-
                A single check run to report. Combined with `CheckSuiteInput`, this is
                 upserted in one request.
        CheckRunOutput:
            type: object
            properties:
                title:
                    type: string
                    description: 'Short headline for the output. Maximum length: 255 characters.'
                summary:
                    type: string
                    description: |-
                        Summary of the output. May contain Markdown.
                         Maximum UTF-8 size: 65535 bytes.
                text:
                    type: string
                    description: |-
                        Detailed output. May contain Markdown.
                         Maximum UTF-8 size: 65535 bytes.
            description: Human-readable output reported for a check run.
        CheckRunWebhookPayload:
            type: object
            properties:
                repository:
                    $ref: '#/components/schemas/RepositoryReference'
                checkSuite:
                    $ref: '#/components/schemas/CheckSuite'
                checkRun:
                    $ref: '#/components/schemas/CheckRun'
                actor:
                    $ref: '#/components/schemas/OriginActor'
            description: Committed snapshot for an Origin check-run lifecycle event.
        CheckSuite:
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                    description: Server-assigned unique ID of the suite.
                repository:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/RepositoryReference'
                    description: Repository the suite belongs to.
                sha:
                    readOnly: true
                    type: string
                    description: Resolved head commit SHA the suite is attached to (lowercase hex).
                key:
                    readOnly: true
                    type: string
                    description: App-chosen idempotency key for the suite.
                name:
                    readOnly: true
                    type: string
                    description: Human-facing suite name.
                detailsUrl:
                    readOnly: true
                    type: string
                    description: Link to more detail about the suite as a whole, if set.
                createdAt:
                    readOnly: true
                    type: string
                    format: date-time
                updatedAt:
                    readOnly: true
                    type: string
                    format: date-time
                externalId:
                    readOnly: true
                    type: string
                    description: Provider-assigned immutable identity for this suite attempt.
                actor:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/OriginActor'
                    description: Principal that produced the suite.
            description: |-
                A persisted check suite, as returned by `PostCheckRun`. All fields are
                 server-owned; the writable shape is `CheckSuiteInput`.
        CheckSuiteInput:
            required:
                - key
                - name
                - externalId
            type: object
            properties:
                key:
                    type: string
                    description: Stable, app-chosen key identifying the logical suite across attempts.
                name:
                    type: string
                    description: Human-facing suite name.
                detailsUrl:
                    type: string
                    description: Optional link to more detail about the suite as a whole.
                externalId:
                    type: string
                    description: Provider-assigned immutable identity for this suite attempt.
        CheckSuiteReference:
            type: object
            properties:
                id:
                    type: string
        Commit:
            type: object
            properties:
                sha:
                    type: string
                    description: Full 40/64-char hex commit SHA.
                commit:
                    allOf:
                        - $ref: '#/components/schemas/CommitDetail'
                    description: Git-object metadata (author, committer, message, tree).
                parents:
                    type: array
                    items:
                        $ref: '#/components/schemas/CommitParent'
                stats:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/CommitStats'
                    description: Aggregate diff stats. `GetCommit` only.
            description: |-
                A commit with identity fields (`sha`, `parents`) at the top level and
                 git-object metadata nested under
                 `commit`. File diffs live in the paginated `ListCommitFiles` collection.
        CommitAuthor:
            type: object
            properties:
                name:
                    type: string
                email:
                    type: string
                date:
                    type: string
                    description: |-
                        ISO-8601 timestamp preserving the git signature's original timezone offset
                         (e.g. "2014-11-07T22:01:45+01:00").
            description: |-
                Git identity and timestamp for a commit's author or committer.

                 This is the identity recorded in the commit object, not a linked user
                 account.
        CommitComparison:
            type: object
            properties:
                status:
                    enum:
                        - identical
                        - ahead
                        - behind
                        - diverged
                    type: string
                    format: enum
                aheadBy:
                    type: integer
                    description: Commits `head` is ahead of the merge base.
                    format: int32
                behindBy:
                    type: integer
                    description: Commits `head` is behind `base`.
                    format: int32
                baseCommit:
                    allOf:
                        - $ref: '#/components/schemas/Commit'
                    description: Resolved `base`, using the list projection without `stats` or `files`.
                headCommit:
                    allOf:
                        - $ref: '#/components/schemas/Commit'
                    description: Resolved `head`, using the list projection without `stats` or `files`.
                mergeBaseCommit:
                    allOf:
                        - $ref: '#/components/schemas/Commit'
                    description: Merge base of `base` and `head`; unrelated histories return NOT_FOUND.
            description: A comparison summary without nested commit lists, file diffs, or URL fields.
        CommitDetail:
            type: object
            properties:
                author:
                    $ref: '#/components/schemas/CommitAuthor'
                committer:
                    $ref: '#/components/schemas/CommitAuthor'
                message:
                    type: string
                tree:
                    $ref: '#/components/schemas/CommitTree'
            description: Git-object metadata for a commit.
        CommitFile:
            type: object
            properties:
                filename:
                    type: string
                    description: New path of the file.
                status:
                    type: string
                    description: One of "added", "removed", "modified", "renamed", or "copied".
                additions:
                    type: integer
                    format: int32
                deletions:
                    type: integer
                    format: int32
                changes:
                    type: integer
                    description: '`additions + deletions`.'
                    format: int32
                patch:
                    type: string
                    description: Unified diff patch for this file. Empty for binary files.
                previousFilename:
                    type: string
                    description: Pre-rename path, set only when `status` is "renamed" or "copied".
            description: A single file changed by a commit. Populated only on `GetCommit`.
        CommitParent:
            type: object
            properties:
                sha:
                    type: string
            description: A parent commit reference. Only the SHA is exposed (URLs omitted).
        CommitStats:
            type: object
            properties:
                additions:
                    type: integer
                    format: int32
                deletions:
                    type: integer
                    format: int32
                total:
                    type: integer
                    description: '`additions + deletions`.'
                    format: int32
            description: |-
                Aggregate line stats for a commit's diff against its base. Populated only
                 on `GetCommit`, not in list responses.
        CommitTree:
            type: object
            properties:
                sha:
                    type: string
            description: The git tree a commit points at.
        CompareCommitsRequest:
            required:
                - identifier
                - basehead
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: Repository identity.
                basehead:
                    type: string
                    description: |-
                        `"{base}...{head}"`, where either revision may be a SHA, branch, tag, or
                         symbolic ref such as `HEAD`.
        Content:
            type: object
            properties:
                type:
                    type: string
                    description: One of "file" or "dir".
                encoding:
                    type: string
                    description: Present for files. Typically "base64".
                size:
                    type: string
                    description: |-
                        Decoded content size in bytes. GetContents / BatchGetContents reject file
                         payloads larger than 1 MiB.
                name:
                    type: string
                    description: Base name of the file or directory.
                path:
                    type: string
                    description: Path relative to the repository root.
                sha:
                    type: string
                    description: Git blob or tree object SHA (hex).
                content:
                    type: string
                    description: Base64-encoded file contents. Set only when `type` is "file".
                entries:
                    type: array
                    items:
                        $ref: '#/components/schemas/Content'
                    description: Immediate children when `type` is "dir".
            description: |-
                Repository file or directory content.

                 For a file (`type` = "file"): `encoding` and `content` are populated
                 (base64). For a directory (`type` = "dir"): `entries` lists immediate
                 children.
        CreateCheckRunAnnotationsRequest:
            required:
                - identifier
                - checkRunId
                - annotations
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                checkRunId:
                    type: string
                annotations:
                    type: array
                    items:
                        $ref: '#/components/schemas/CheckRunAnnotationInput'
                    description: |-
                        Atomic append batch. Must contain 1–25 entries. A check run stores at most
                         100 annotations; non-idempotent retries append duplicates and consume that
                         capacity. `location` is entirely optional; when present, its required
                         fields must form a coherent range.
        CreateCheckRunAnnotationsResponse:
            type: object
            properties:
                annotations:
                    readOnly: true
                    type: array
                    items:
                        $ref: '#/components/schemas/CheckRunAnnotation'
        CreateInstallationAccessTokenRequest:
            required:
                - installationId
            type: object
            properties:
                installationId:
                    type: string
                    description: |-
                        The unique identifier of the installation to scope the token to. Bound from
                         the URL path; the installation must belong to the authenticated app.
                scopes:
                    type: array
                    items:
                        type: string
                    description: |-
                        Scope strings to grant the token. Values must be unique and included in the
                         installation's accepted scopes. Empty or omitted inherits the full scope grant.
                repositoryIds:
                    type: array
                    items:
                        type: string
                    description: |-
                        Repository IDs to grant the token. Values must be unique, accessible to the
                         installation, and contain at most 50 entries. Empty or omitted inherits all
                         accessible repositories.
        CreateLabelRequest:
            required:
                - identifier
                - name
                - color
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                name:
                    type: string
                    description: |-
                        Label name. Leading and trailing whitespace is trimmed. Maximum 50
                         characters.
                color:
                    type: string
                    description: Six-character hex color without a leading `#`.
                description:
                    type: string
                    description: Optional description. Maximum 255 characters.
        CreatePullRequestCommentRequest:
            required:
                - identifier
                - pullNumber
                - body
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                body:
                    type: string
                threadId:
                    type: string
                    description: |-
                        Existing thread id to reply to. Omit to create a new general-discussion
                         thread.
        CreatePullRequestRequest:
            required:
                - identifier
                - title
                - head
                - base
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                title:
                    type: string
                    description: Pull request title.
                body:
                    type: string
                    description: Pull request body / description. May be empty.
                head:
                    type: string
                    description: |-
                        Source branch name (the head of the change). Must resolve in the repo at
                         call time.
                base:
                    type: string
                    description: |-
                        Target branch name (what the change merges into). Must resolve in the repo
                         at call time.
                draft:
                    type: boolean
                    description: |-
                        When true, create as a draft. When false or omitted, create as open
                         (ready for review).
                parentPullNumber:
                    type: string
                    description: |-
                        Optional parent pull request number when stacking this change on another
                         open/draft change in the same repository.
        CreatePullRequestReviewRequest:
            required:
                - identifier
                - pullNumber
                - verdict
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                verdict:
                    enum:
                        - approve
                        - request_changes
                        - comment
                    type: string
                    description: The review decision.
                    format: enum
                body:
                    type: string
                    description: Free-text review summary. May be empty.
                versionNumber:
                    type: string
                    description: |-
                        Pull request version number the review applies to (see
                         `PullRequestVersion.number`). Omit to review the latest version at call
                         time.
        CreateRepoRequest:
            required:
                - ownerSlug
                - repo
            type: object
            properties:
                ownerSlug:
                    type: string
                    description: Parent owner entity's slug.
                repo:
                    allOf:
                        - $ref: '#/components/schemas/Repo'
                    description: |-
                        The repo to create. Only `name` (required) and `default_branch` (optional;
                         defaults to "main" when omitted) are honored on input; OUTPUT_ONLY fields
                         are ignored.
        CreateRulesetRequest:
            required:
                - identifier
                - name
                - enforcement
                - kind
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                name:
                    type: string
                description:
                    type: string
                enforcement:
                    enum:
                        - active
                        - evaluate
                        - disabled
                    type: string
                    format: enum
                kind:
                    enum:
                        - merge_branch
                        - push_branch
                        - push_tag
                        - push_repository
                    type: string
                    format: enum
                includedRefNames:
                    type: array
                    items:
                        type: string
                    description: |-
                        Ref name patterns this ruleset includes. Supports globs and the tokens
                         `~ALL` and `~DEFAULT_BRANCH`.
                excludedRefNames:
                    type: array
                    items:
                        type: string
                    description: |-
                        Ref name patterns this ruleset excludes. Same pattern language as
                         `included_ref_names`.
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/RulesetRuleInput'
                bypassActors:
                    type: array
                    items:
                        $ref: '#/components/schemas/RulesetBypassActorInput'
        DeleteAppInstallationRequest:
            required:
                - installationId
            type: object
            properties:
                installationId:
                    type: string
                    description: |-
                        The unique identifier of the installation to delete. Bound from the URL
                         path; the installation must belong to the authenticated app.
        DeleteLabelRequest:
            required:
                - identifier
                - labelName
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                labelName:
                    type: string
                    description: Label name. Leading and trailing whitespace is trimmed before lookup.
        DeleteRulesetRequest:
            required:
                - identifier
                - rulesetId
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                rulesetId:
                    type: string
                    description: Stable Origin ruleset id.
        DismissPullRequestReviewRequest:
            required:
                - identifier
                - pullNumber
                - reviewId
                - message
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                reviewId:
                    type: string
                    description: Stable Origin review identifier, as returned by ListPullRequestReviews.
                message:
                    type: string
                    description: |-
                        Reason recorded with the dismissal. Must contain a non-whitespace
                         character; INVALID_ARGUMENT otherwise.
        GetAppInstallationRequest:
            required:
                - installationId
            type: object
            properties:
                installationId:
                    type: string
                    description: Installation identifier.
        GetAuthenticatedAppRequest:
            type: object
            properties: {}
        GetBlobRequest:
            required:
                - identifier
                - sha
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: 'Identity of the repo: `(owner_slug, name)`.'
                sha:
                    type: string
                    description: Full or abbreviated hex SHA of the blob object.
        GetCheckRunRequest:
            required:
                - identifier
                - checkRunId
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                checkRunId:
                    type: string
                    description: Server-assigned check-run id (`cr_…`).
        GetCheckSuiteRequest:
            required:
                - identifier
                - checkSuiteId
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                checkSuiteId:
                    type: string
                    description: Server-assigned check suite id (`crg_…`).
        GetCommitRequest:
            required:
                - identifier
                - sha
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: Repo identifier.
                sha:
                    type: string
                    description: |-
                        SHA, branch, tag, or symbolic ref (for example `HEAD`) of the commit to
                         fetch.
        GetContentsRequest:
            required:
                - identifier
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: 'Identity of the repo: `(owner_slug, name)`.'
                path:
                    type: string
                    description: |-
                        Path to the file or directory relative to the repository root. Empty
                         requests the root directory.
                ref:
                    type: string
                    description: |-
                        Commit, branch, tag, or symbolic ref (for example `HEAD`) to read from.
                         Empty means the repository's default branch.
        GetGitCommitRequest:
            required:
                - identifier
                - sha
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: 'Identity of the repo: `(owner_slug, name)`.'
                sha:
                    type: string
                    description: |-
                        Full or abbreviated hex SHA of the commit object, or a branch, tag, or
                         symbolic ref such as `HEAD`.
        GetGitRefRequest:
            required:
                - identifier
                - ref
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: 'Identity of the repo: `(owner_slug, name)`.'
                ref:
                    type: string
                    description: |-
                        Git reference name. Typically `heads/<branch>` or `tags/<tag>`; a leading
                         `refs/` is accepted and normalized. The symbolic `HEAD` is also accepted
                         (returned as `ref: "HEAD"` with the tip commit). Exact match on the full
                         ref name.
        GetLabelRequest:
            required:
                - identifier
                - labelName
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                labelName:
                    type: string
                    description: Label name. Leading and trailing whitespace is trimmed before lookup.
        GetMirroredRepoRequest:
            required:
                - sourceNodeId
            type: object
            properties:
                sourceNodeId:
                    type: string
                    description: Node ID of the repository on the mirrored source.
        GetPullRequestCommentRequest:
            required:
                - identifier
                - commentId
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                commentId:
                    type: string
        GetPullRequestRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
        GetRateLimitRequest:
            type: object
            properties: {}
        GetRepoRequest:
            required:
                - identifier
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
        GetRulesetRequest:
            required:
                - identifier
                - rulesetId
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                rulesetId:
                    type: string
                    description: Stable Origin ruleset id.
        GetTagRequest:
            required:
                - identifier
                - sha
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: 'Identity of the repo: `(owner_slug, name)`.'
                sha:
                    type: string
                    description: Full or abbreviated hex SHA of the annotated tag object.
        GetTreeRequest:
            required:
                - identifier
                - sha
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: 'Identity of the repo: `(owner_slug, name)`.'
                sha:
                    type: string
                    description: Tree SHA, commit SHA, branch, tag, or symbolic ref such as `HEAD`.
                recursive:
                    type: boolean
                    description: |-
                        When true, returns the full recursive walk of the tree. Query values
                         `true` and `1` enable recursion; omitting the parameter or passing any
                         other value (including `false` and `0`) lists immediate children only.
        GitCommit:
            type: object
            properties:
                sha:
                    type: string
                    description: Full hex commit SHA.
                author:
                    allOf:
                        - $ref: '#/components/schemas/CommitAuthor'
                    description: Author signature from the git object.
                committer:
                    allOf:
                        - $ref: '#/components/schemas/CommitAuthor'
                    description: Committer signature from the git object.
                message:
                    type: string
                    description: Full commit message.
                tree:
                    allOf:
                        - $ref: '#/components/schemas/CommitTree'
                    description: Tree this commit points at.
                parents:
                    type: array
                    items:
                        $ref: '#/components/schemas/CommitParent'
                    description: Parent commit SHAs (empty for a root commit).
            description: |-
                A Git commit object.
                 Distinct from `Commit`, which is the higher-level commits API shape
                 (`GET .../commits/{sha}`) with nested `commit` metadata and optional
                 diff `stats` / `files`.
        GitRef:
            type: object
            properties:
                ref:
                    type: string
                    description: Full ref name, e.g. "refs/heads/main".
                object:
                    allOf:
                        - $ref: '#/components/schemas/TaggedObject'
                    description: |-
                        Object this ref points at directly (unpeeled). For annotated tags,
                         `object.type` is "tag" and `object.sha` is the tag object SHA.
            description: A Git reference.
        GitTag:
            type: object
            properties:
                sha:
                    type: string
                    description: Tag object SHA (hex).
                tag:
                    type: string
                    description: Tag name, e.g. "v1.0".
                message:
                    type: string
                    description: Tag message.
                tagger:
                    allOf:
                        - $ref: '#/components/schemas/CommitAuthor'
                    description: Tagger signature from the tag object.
                object:
                    allOf:
                        - $ref: '#/components/schemas/TaggedObject'
                    description: Object this tag points at.
            description: |-
                An annotated Git tag object. Lightweight tags are refs only and are not
                 returned by this API.
        GitTree:
            type: object
            properties:
                sha:
                    type: string
                    description: Tree object SHA (hex).
                tree:
                    type: array
                    items:
                        $ref: '#/components/schemas/GitTreeEntry'
                    description: Entries under this tree (immediate children, or the full recursive walk).
                truncated:
                    type: boolean
                    description: True when the entry list was truncated by the entry-count or size cap.
            description: |-
                A Git tree object.

                 When `truncated` is true, the entry list was cut short by the 100,000-entry
                 or 7 MiB encoded-payload cap. Fetch subtrees non-recursively to page further.
        GitTreeEntry:
            type: object
            properties:
                path:
                    type: string
                    description: Path relative to the requested tree root.
                mode:
                    type: string
                    description: 'Git mode as an octal string: "100644", "100755", "040000", "120000", "160000".'
                type:
                    type: string
                    description: One of "blob", "tree", or "commit" (gitlink/submodule).
                sha:
                    type: string
                    description: Object SHA (hex).
                size:
                    type: integer
                    description: |-
                        Blob size in bytes. Unset for trees and gitlinks. `int32` ensures REST JSON
                         emits a number; individual blobs over 2 GiB are not representable.
                    format: int32
            description: One entry in a Git tree.
        GoogleProtobufAny:
            type: object
            properties:
                '@type':
                    type: string
                    description: The type of the serialized message.
            additionalProperties: true
            description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.
        InstallationAccessToken:
            type: object
            properties:
                token:
                    readOnly: true
                    type: string
                    description: |-
                        The installation access token. This is a secret credential; treat it like
                         a password and do not log it.
                expiresAt:
                    readOnly: true
                    type: string
                    description: |-
                        When the token expires, typically about one hour after creation. Serialized
                         as an RFC 3339 / ISO-8601 string in JSON.
                    format: date-time
            description: A short-lived installation access token.
        InstallationCreatedWebhookPayload:
            type: object
            properties:
                installation:
                    $ref: '#/components/schemas/WebhookInstallation'
                app:
                    $ref: '#/components/schemas/WebhookApp'
            description: Payload for an installation.created webhook.
        InstallationDeletedWebhookPayload:
            type: object
            properties:
                installation:
                    $ref: '#/components/schemas/WebhookInstallation'
                app:
                    $ref: '#/components/schemas/WebhookApp'
            description: Payload for an installation.deleted webhook.
        InstallationReference:
            type: object
            properties:
                id:
                    type: string
                target:
                    allOf:
                        - $ref: '#/components/schemas/Owner'
                    description: Target owner entity the app is installed into.
            description: |-
                Stable identity for an app installation: the installation id plus the
                 owner entity it is installed into, matching AppInstallation.
        InstallationSuspendedWebhookPayload:
            type: object
            properties:
                installation:
                    $ref: '#/components/schemas/WebhookInstallation'
                app:
                    $ref: '#/components/schemas/WebhookApp'
            description: Payload for an installation.suspended webhook.
        InstallationUnsuspendedWebhookPayload:
            type: object
            properties:
                installation:
                    $ref: '#/components/schemas/WebhookInstallation'
                app:
                    $ref: '#/components/schemas/WebhookApp'
            description: Payload for an installation.unsuspended webhook.
        InstallationUpdatedWebhookPayload:
            type: object
            properties:
                installation:
                    $ref: '#/components/schemas/WebhookInstallation'
                app:
                    $ref: '#/components/schemas/WebhookApp'
            description: Payload for an installation.updated webhook.
        Label:
            type: object
            properties:
                id:
                    type: string
                name:
                    type: string
                color:
                    type: string
                    description: Six-character hex color without a leading `#`.
                description:
                    type: string
        ListAppInstallationRepositoriesRequest:
            type: object
            properties:
                pageSize:
                    type: integer
                    description: |-
                        Max repositories to return. Defaults to 30 when unset or 0. Values above
                         100 are clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page.
        ListAppInstallationRepositoriesResponse:
            type: object
            properties:
                repositories:
                    type: array
                    items:
                        $ref: '#/components/schemas/Repo'
                nextPageToken:
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more pages.
                repoSelectionMode:
                    readOnly: true
                    enum:
                        - all
                        - selected
                    type: string
                    description: Whether the authenticated installation can access all repos belonging to an owner, or only selected repos.
                    format: enum
        ListAppInstallationsRequest:
            type: object
            properties:
                pageSize:
                    type: integer
                    description: |-
                        Max installations to return. Defaults to 30 when unset or 0. Values
                         above 100 are clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page.
        ListAppInstallationsResponse:
            type: object
            properties:
                installations:
                    type: array
                    items:
                        $ref: '#/components/schemas/AppInstallation'
                nextPageToken:
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more pages.
        ListBranchesRequest:
            required:
                - identifier
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pageSize:
                    type: integer
                    description: |-
                        Max branches to return. Defaults to 30 when unset or 0. Values above 100
                         are clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page. Encodes the page offset, so `page_size` on a follow-up request
                         is ignored when a token is supplied.
        ListBranchesResponse:
            type: object
            properties:
                branches:
                    type: array
                    items:
                        $ref: '#/components/schemas/Branch'
                nextPageToken:
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more pages.
        ListCheckRunAnnotationsRequest:
            required:
                - identifier
                - checkRunId
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                checkRunId:
                    type: string
                pageSize:
                    type: integer
                    description: |-
                        Max annotations to return. Defaults to 30 when unset or 0. Values above
                         100 are clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response. A supplied token fixes the page
                         size and scope, so `page_size` is ignored on follow-up requests.
        ListCheckRunAnnotationsResponse:
            type: object
            properties:
                annotations:
                    readOnly: true
                    type: array
                    items:
                        $ref: '#/components/schemas/CheckRunAnnotation'
                nextPageToken:
                    readOnly: true
                    type: string
        ListCheckRunsForCommitRequest:
            required:
                - identifier
                - sha
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                sha:
                    type: string
                    description: Commit SHA (40- or 64-char hex) to list check runs for.
                pageSize:
                    type: integer
                    description: |-
                        Max check runs to return. Defaults to 30 when unset or 0. Values above 100
                         are clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page. Encodes the last-seen check-run id scoped to this commit, so
                         `page_size` on a follow-up request is ignored when a token is supplied.
        ListCheckRunsForCommitResponse:
            type: object
            properties:
                checkRuns:
                    readOnly: true
                    type: array
                    items:
                        $ref: '#/components/schemas/CheckRun'
                nextPageToken:
                    readOnly: true
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more pages.
        ListCheckRunsForSuiteRequest:
            required:
                - identifier
                - checkSuiteId
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                checkSuiteId:
                    type: string
                    description: Server-assigned check suite id (`crg_…`).
                pageSize:
                    type: integer
                    description: |-
                        Max check runs to return. Defaults to 30 when unset or 0. Values above 100
                         are clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page. Encodes the last-seen check-run id scoped to this suite, so
                         `page_size` on a follow-up request is ignored when a token is supplied.
        ListCheckRunsForSuiteResponse:
            type: object
            properties:
                checkRuns:
                    readOnly: true
                    type: array
                    items:
                        $ref: '#/components/schemas/CheckRun'
                nextPageToken:
                    readOnly: true
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more pages.
        ListCheckSuitesForCommitRequest:
            required:
                - identifier
                - sha
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                sha:
                    type: string
                    description: Commit SHA (40- or 64-char hex) to list suites for.
                pageSize:
                    type: integer
                    description: |-
                        Max suites to return. Defaults to 30 when unset or 0. Values above 100 are
                         clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page. Encodes the last-seen check-suite id scoped to this commit, so
                         `page_size` on a follow-up request is ignored when a token is supplied.
        ListCheckSuitesForCommitResponse:
            type: object
            properties:
                checkSuites:
                    readOnly: true
                    type: array
                    items:
                        $ref: '#/components/schemas/CheckSuite'
                nextPageToken:
                    readOnly: true
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more pages.
        ListCommitFilesRequest:
            required:
                - identifier
                - sha
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                sha:
                    type: string
                    description: |-
                        SHA, branch, tag, or symbolic ref (for example `HEAD`) of the commit
                         whose files should be listed.
                pageSize:
                    type: integer
                    description: |-
                        Max changed files to return. Defaults to 30 when unset or 0. Values above
                         100 are clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page. The token fixes the resolved commit, page size, and file cursor,
                         so `sha` and `page_size` on a follow-up request must match the token.
        ListCommitFilesResponse:
            type: object
            properties:
                files:
                    readOnly: true
                    type: array
                    items:
                        $ref: '#/components/schemas/CommitFile'
                nextPageToken:
                    readOnly: true
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more files.
        ListCommitsRequest:
            required:
                - identifier
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                sha:
                    type: string
                    description: |-
                        SHA, branch, tag, or symbolic ref (for example `HEAD`) to start listing
                         from. Empty means the repo's default branch.
                pageSize:
                    type: integer
                    description: |-
                        Max commits to return. Defaults to 30 when unset or 0. Values above 100 are
                         clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page. Encodes the starting ref and page, so `sha`/`page_size` on a
                         follow-up request are ignored when a token is supplied.
        ListCommitsResponse:
            type: object
            properties:
                commits:
                    type: array
                    items:
                        $ref: '#/components/schemas/Commit'
                nextPageToken:
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more pages.
        ListLabelsRequest:
            required:
                - identifier
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pageSize:
                    type: integer
                    description: |-
                        Maximum labels to return. Defaults to 30 when omitted or zero; capped at
                         100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page.
        ListLabelsResponse:
            type: object
            properties:
                labels:
                    type: array
                    items:
                        $ref: '#/components/schemas/Label'
                nextPageToken:
                    type: string
                    description: Opaque cursor for the next page. Empty when there are no more results.
        ListMatchingGitRefsRequest:
            required:
                - identifier
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: 'Identity of the repo: `(owner_slug, name)`.'
                ref:
                    type: string
                    description: |-
                        Prefix to match. Typically `heads/<prefix>` or `tags/<prefix>`; a leading
                         `refs/` is accepted and normalized. Empty lists all refs (REST binding
                         without a trailing path segment).
        ListMatchingGitRefsResponse:
            type: object
            properties:
                refs:
                    type: array
                    items:
                        $ref: '#/components/schemas/GitRef'
                    description: Matching refs, sorted by full ref name.
        ListPullRequestCommentsRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                pageSize:
                    type: integer
                    description: Maximum comments to return. Defaults to 30; maximum 100.
                    format: int32
                pageToken:
                    type: string
                    description: Opaque token from the preceding page.
        ListPullRequestCommentsResponse:
            type: object
            properties:
                comments:
                    type: array
                    items:
                        $ref: '#/components/schemas/PullRequestComment'
                pullRequest:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestReference'
                    description: Pull request shared by every comment in this page.
                nextPageToken:
                    type: string
                    description: Empty when there are no more comments.
        ListPullRequestCommitsRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                pageSize:
                    type: integer
                    description: |-
                        Max commits to return. Defaults to 30 when unset or 0. Values above 100
                         are clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page. The token is bound to the repository, pull request version,
                         page size, and commit offset.
        ListPullRequestCommitsResponse:
            type: object
            properties:
                commits:
                    type: array
                    items:
                        $ref: '#/components/schemas/Commit'
                nextPageToken:
                    readOnly: true
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more commits.
        ListPullRequestFilesRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                pageSize:
                    type: integer
                    description: |-
                        Max changed files to return. Defaults to 30 when unset or 0. Values above
                         100 are clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page. The token is bound to the repository, pull request version,
                         page size, and changed-file cursor.
        ListPullRequestFilesResponse:
            type: object
            properties:
                files:
                    type: array
                    items:
                        $ref: '#/components/schemas/PullRequestFile'
                nextPageToken:
                    readOnly: true
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more files.
        ListPullRequestLabelsRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
        ListPullRequestLabelsResponse:
            type: object
            properties:
                labels:
                    type: array
                    items:
                        $ref: '#/components/schemas/Label'
                    description: Every label currently assigned to the pull request, sorted by name.
        ListPullRequestRequestedReviewersRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
        ListPullRequestRequestedReviewersResponse:
            type: object
            properties:
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/OriginUserActor'
                    description: Users whose review is currently requested.
                groups:
                    type: array
                    items:
                        $ref: '#/components/schemas/OriginGroup'
                    description: Groups whose review is currently requested.
        ListPullRequestReviewsRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                pageSize:
                    type: integer
                    description: Maximum reviews to return. Defaults to 30; maximum 100.
                    format: int32
                pageToken:
                    type: string
                    description: Opaque token from the preceding page.
        ListPullRequestReviewsResponse:
            type: object
            properties:
                reviews:
                    type: array
                    items:
                        $ref: '#/components/schemas/PullRequestReview'
                pullRequest:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestReference'
                    description: Pull request shared by every review in this page.
                nextPageToken:
                    type: string
                    description: Opaque token for the next page; empty when there are no more reviews.
        ListPullRequestsRequest:
            required:
                - identifier
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                head:
                    type: string
                    description: Optional exact branch (head-ref) filter. Omit to list across every branch.
                state:
                    type: string
                    description: '"open" | "closed" | "all". Defaults to "open".'
                pageSize:
                    type: integer
                    description: Maximum results to return. Defaults to 30; maximum 100.
                    format: int32
                pageToken:
                    type: string
                    description: Opaque token from the preceding page.
                author:
                    type: string
                    description: |-
                        Optional author filter: an actor id as returned in
                         `pull_request.author.id` (`user_…`, `app_…`, or `sa_…`). An unknown
                         author yields an empty list. Any other value, including the shared
                         `origin-cursor-managed-actor` id, is rejected with INVALID_ARGUMENT.
                base:
                    type: string
                    description: |-
                        Optional exact base-branch filter. Accepts a short name (`main`) or a
                         fully qualified ref (`refs/heads/main`). Omit to list across every base.
                direction:
                    type: string
                    description: |-
                        Sort direction by creation order (pull number): `"desc"` (newest first,
                         the default) or `"asc"` (oldest first).
                since:
                    type: string
                    description: |-
                        Optional inclusive lower bound on creation time (RFC 3339 timestamp,
                         e.g. `2026-08-01T00:00:00Z`): only pull requests created at or after
                         this instant. Malformed timestamps are rejected with INVALID_ARGUMENT.
                until:
                    type: string
                    description: |-
                        Optional inclusive upper bound on creation time (RFC 3339 timestamp):
                         only pull requests created at or before this instant. Malformed
                         timestamps are rejected with INVALID_ARGUMENT.
        ListPullRequestsResponse:
            type: object
            properties:
                pullRequests:
                    type: array
                    items:
                        $ref: '#/components/schemas/PullRequest'
                nextPageToken:
                    type: string
        ListReposRequest:
            required:
                - ownerSlug
            type: object
            properties:
                ownerSlug:
                    type: string
                    description: Parent owner entity slug.
                pageSize:
                    type: integer
                    description: |-
                        Max repos to return. Defaults to 30 when unset or 0. Values above 100 are
                         clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page.
                filter:
                    type: string
                    description: Optional case-insensitive substring filter.
        ListReposResponse:
            type: object
            properties:
                repositories:
                    type: array
                    items:
                        $ref: '#/components/schemas/Repo'
                nextPageToken:
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more pages.
        ListRulesetsRequest:
            required:
                - identifier
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
        ListRulesetsResponse:
            type: object
            properties:
                rulesets:
                    type: array
                    items:
                        $ref: '#/components/schemas/Ruleset'
                repository:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/RepositoryReference'
                    description: Repository shared by every ruleset in this response.
        ListWebhookDeliveriesRequest:
            type: object
            properties:
                delivered:
                    type: boolean
                    description: |-
                        Compares against `delivered_at`. `delivered=false` is the recovery
                         predicate: it selects every delivery that has never received a 2xx,
                         including deliveries whose retry ladder exhausted during an outage.
                eventType:
                    type: string
                    description: Exact event type, e.g. `pull_request.created`.
                installationId:
                    type: string
                    description: Narrow to one installation (`WebhookDelivery.installation.id`).
                createdAfter:
                    type: string
                    description: Bound the delivery's creation time. For browsing, not for recovery.
                    format: date-time
                createdBefore:
                    type: string
                    format: date-time
                pageSize:
                    type: integer
                    description: Defaults to 30 when unset or 0. Values above 100 are clamped to 100.
                    format: int32
                pageToken:
                    type: string
                    description: |-
                        Opaque cursor from a previous response's `next_page_token`. Empty for the
                         first page.
        ListWebhookDeliveriesResponse:
            type: object
            properties:
                deliveries:
                    type: array
                    items:
                        $ref: '#/components/schemas/WebhookDelivery'
                nextPageToken:
                    type: string
                    description: Opaque cursor for the next page; empty when there are no more pages.
        MergePullRequestRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                    description: |-
                        Pull number to merge. When this pull is stacked, the merge lands every
                         pull from the stack root through this number.
                expectedHeadSha:
                    type: string
                    description: |-
                        Optional guard against merging a head the caller has not seen: the full
                         commit SHA (40- or 64-character hex) expected to be the pull request's
                         current head. When set and the head has moved, the merge is rejected
                         with ABORTED (HTTP 409 Conflict) and nothing is merged. Values that are
                         not a full commit SHA are rejected with INVALID_ARGUMENT. Not evaluated
                         when the pull request is already merged (the call returns idempotent
                         success). Omit to merge whatever the current head is.
        MergePullRequestResponse:
            type: object
            properties:
                mergeCommitSha:
                    readOnly: true
                    type: string
                    description: SHA of the merge commit written to the base branch.
                mergedPullNumbers:
                    readOnly: true
                    type: array
                    items:
                        type: string
                    description: |-
                        Pull numbers (root-to-target order) transitioned to merged by this call.
                         Empty when the prefix was already merged.
                pullRequest:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/PullRequest'
                    description: The target pull request after the merge.
        OriginActor:
            type: object
            properties:
                user:
                    $ref: '#/components/schemas/OriginUserActor'
                app:
                    $ref: '#/components/schemas/OriginAppActor'
                serviceAccount:
                    $ref: '#/components/schemas/OriginServiceAccountActor'
            description: A user, app, or service account that performed an externally visible action.
        OriginAppActor:
            required:
                - slug
            type: object
            properties:
                id:
                    type: string
                slug:
                    type: string
        OriginGroup:
            type: object
            properties:
                id:
                    type: string
            description: Public Origin group identity (`grp_…`). Currently id-only.
        OriginServiceAccountActor:
            type: object
            properties:
                id:
                    type: string
        OriginUserActor:
            required:
                - email
            type: object
            properties:
                id:
                    type: string
                email:
                    type: string
        Owner:
            type: object
            properties:
                slug:
                    type: string
                    description: Unique URL-friendly name of the owner.
                id:
                    type: string
                    description: Unique ID of the owner namespace.
                type:
                    readOnly: true
                    enum:
                        - team
                        - user
                    type: string
                    description: '`team` or `user`. Output-only; unset when unknown.'
                    format: enum
            description: The owner of a repo.
        PingWebhookRequest:
            type: object
            properties: {}
        PingWebhookResponse:
            type: object
            properties:
                deliveryId:
                    readOnly: true
                    type: string
                    description: Standard Webhooks `webhook-id` of the test delivery.
                eventId:
                    readOnly: true
                    type: string
                    description: Event id inside the signed envelope (`event.id`).
                delivered:
                    readOnly: true
                    type: boolean
                    description: |-
                        True when the receiver answered with a 2xx status within the delivery
                         timeout. Always present in JSON responses (explicit presence keeps
                         `false` from being omitted as a proto3 default).
                responseStatusCode:
                    readOnly: true
                    type: integer
                    description: |-
                        HTTP status the receiver answered with; 0 when no response arrived
                         (connection failure or timeout). Always present in JSON responses.
                    format: int32
        PostCheckRunRequest:
            required:
                - identifier
                - headSha
                - checkSuite
                - checkRun
            type: object
            properties:
                identifier:
                    allOf:
                        - $ref: '#/components/schemas/RepoIdentifier'
                    description: 'Identity of the repo the check run targets: `(owner_slug, name)`.'
                headSha:
                    type: string
                    description: Head commit SHA the check run is reported against (40- or 64-char hex).
                checkSuite:
                    allOf:
                        - $ref: '#/components/schemas/CheckSuiteInput'
                    description: The suite the check run belongs to; upserted alongside the check run.
                checkRun:
                    allOf:
                        - $ref: '#/components/schemas/CheckRunInput'
                    description: The check run to upsert.
        PostCheckRunResponse:
            type: object
            properties:
                checkSuite:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/CheckSuite'
                    description: The upserted check suite.
                checkRun:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/CheckRun'
                    description: The upserted check run.
        PullRequest:
            type: object
            properties:
                id:
                    type: string
                    description: Stable Origin pull request identifier.
                number:
                    type: string
                    description: Pull request number within its repository.
                state:
                    type: string
                    description: '"open" or "closed". A draft is "open"; merged and closed pull requests are both "closed".'
                draft:
                    type: boolean
                    description: Whether the pull request is still a draft.
                merged:
                    type: boolean
                    description: Whether the pull request has been merged.
                title:
                    type: string
                    description: Pull request title.
                body:
                    type: string
                    description: Pull request description.
                head:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestRef'
                    description: The source side of the pull request - what is being merged in.
                base:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestRef'
                    description: The target side of the pull request — what it merges into.
                author:
                    allOf:
                        - $ref: '#/components/schemas/OriginActor'
                    description: The principal that opened the pull request.
                createdAt:
                    type: string
                    description: When the pull request was opened.
                    format: date-time
                updatedAt:
                    type: string
                    description: When the pull request was last updated.
                    format: date-time
                closedAt:
                    type: string
                    description: When the pull request was closed or merged; unset while open.
                    format: date-time
                mergedAt:
                    type: string
                    description: When the pull request was merged; unset unless merged.
                    format: date-time
                mergeCommitSha:
                    type: string
                    description: SHA of the resulting merge commit; set once merged.
                additions:
                    type: integer
                    description: Lines added by the pull request's latest version.
                    format: int32
                deletions:
                    type: integer
                    description: Lines deleted by the pull request's latest version.
                    format: int32
                changedFiles:
                    type: integer
                    description: Files changed by the pull request's latest version.
                    format: int32
                labels:
                    type: array
                    items:
                        $ref: '#/components/schemas/Label'
                    description: |-
                        Labels currently assigned to this pull request, sorted by name. Empty when
                         none are assigned. A pull request can have at most 100 labels.
                version:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestVersion'
                    description: The pull request's latest version.
            description: A pull request.
        PullRequestComment:
            type: object
            properties:
                id:
                    type: string
                thread:
                    $ref: '#/components/schemas/ThreadReference'
                body:
                    type: string
                author:
                    $ref: '#/components/schemas/OriginActor'
                createdAt:
                    type: string
                    format: date-time
                updatedAt:
                    type: string
                    format: date-time
            description: A threaded comment on a pull request.
        PullRequestCommentWebhookPayload:
            type: object
            properties:
                pullRequest:
                    $ref: '#/components/schemas/PullRequestReference'
                comment:
                    $ref: '#/components/schemas/PullRequestComment'
        PullRequestFile:
            type: object
            properties:
                filename:
                    type: string
                status:
                    type: string
                    description: '"added" / "removed" / "modified" / "renamed" / "copied"'
                additions:
                    type: integer
                    format: int32
                deletions:
                    type: integer
                    format: int32
                changes:
                    type: integer
                    format: int32
                patch:
                    type: string
                previousFilename:
                    type: string
            description: A file changed in a pull request.
        PullRequestRef:
            type: object
            properties:
                ref:
                    type: string
                    description: The ref this side points at, as Origin records it.
                sha:
                    type: string
                    description: Tip commit SHA of this side at the change's latest version.
            description: One side (head or base) of a change.
        PullRequestReference:
            type: object
            properties:
                id:
                    type: string
                    description: Immutable Origin change id.
                number:
                    type: string
                repository:
                    allOf:
                        - $ref: '#/components/schemas/RepositoryReference'
                    description: Repository reference for this pull request.
            description: Stable identity and display coordinates for an Origin pull request.
        PullRequestRequestedReviewer:
            type: object
            properties:
                user:
                    $ref: '#/components/schemas/OriginUserActor'
                group:
                    $ref: '#/components/schemas/OriginGroup'
            description: A user or group whose review has been requested on a pull request.
        PullRequestReview:
            type: object
            properties:
                id:
                    type: string
                    description: Stable Origin review identifier.
                author:
                    allOf:
                        - $ref: '#/components/schemas/OriginActor'
                    description: The principal that authored the review.
                verdict:
                    enum:
                        - approve
                        - request_changes
                        - comment
                    type: string
                    format: enum
                body:
                    type: string
                    description: Free-text review summary. Empty when the reviewer left no summary.
                submittedAt:
                    type: string
                    description: When the review was submitted. Unset for an unsubmitted draft review.
                    format: date-time
                pullRequestVersion:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestVersion'
                    description: The pull request version and head SHA the verdict applies to.
                dismissal:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestReviewDismissal'
                    description: |-
                        Set once the review has been dismissed; absent while the verdict still
                         counts toward the pull request's review state.
            description: A pull request review.
        PullRequestReviewDismissal:
            type: object
            properties:
                dismissedBy:
                    allOf:
                        - $ref: '#/components/schemas/OriginActor'
                    description: |-
                        The principal that dismissed the review. Absent when the dismissal was
                         recorded under an actor kind this API does not expose.
                dismissedAt:
                    type: string
                    description: When the review was dismissed.
                    format: date-time
                message:
                    type: string
                    description: |-
                        Reason recorded with the dismissal. Reviews retired automatically because
                         their author submitted a newer verdict carry a server-generated reason.
            description: |-
                Records that a submitted review no longer counts toward the pull request's
                 review state.
        PullRequestReviewWebhookPayload:
            type: object
            properties:
                pullRequest:
                    $ref: '#/components/schemas/PullRequestReference'
                review:
                    $ref: '#/components/schemas/PullRequestReview'
            description: pull_request.review.submitted webhook payload.
        PullRequestReviewerWebhookPayload:
            type: object
            properties:
                pullRequest:
                    $ref: '#/components/schemas/PullRequestReference'
                reviewer:
                    $ref: '#/components/schemas/PullRequestRequestedReviewer'
                createdVia:
                    enum:
                        - manual
                        - codeowners
                    type: string
                    format: enum
                createdBy:
                    $ref: '#/components/schemas/OriginActor'
                createdAt:
                    type: string
                    format: date-time
            description: pull_request.reviewer.{added,removed,rerequested} webhook payload.
        PullRequestVersion:
            type: object
            properties:
                number:
                    type: string
                    description: Monotonic version number within the change (1-based).
                headSha:
                    type: string
                    description: Head commit SHA for this version.
                baseSha:
                    type: string
                    description: Base commit SHA this version is diffed against.
                createdAt:
                    type: string
                    description: When this version was created.
                    format: date-time
            description: |-
                A numbered revision of a change. Each push produces a new version with its
                 own head/base SHAs and diff stats.
        PullRequestWebhook:
            type: object
            properties:
                id:
                    type: string
                    description: Stable Origin pull request identifier.
                number:
                    type: string
                    description: Pull request number within its repository.
                state:
                    type: string
                    description: '"open" or "closed". A draft is "open"; merged and closed pull requests are both "closed".'
                draft:
                    type: boolean
                    description: Whether the pull request is still a draft.
                merged:
                    type: boolean
                    description: Whether the pull request has been merged.
                title:
                    type: string
                    description: Pull request title.
                body:
                    type: string
                    description: Pull request description.
                head:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestRef'
                    description: The source side of the pull request - what is being merged in.
                base:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestRef'
                    description: The target side of the pull request — what it merges into.
                author:
                    allOf:
                        - $ref: '#/components/schemas/OriginActor'
                    description: The principal that opened the pull request.
                createdAt:
                    type: string
                    description: When the pull request was opened.
                    format: date-time
                updatedAt:
                    type: string
                    description: When the pull request was last updated.
                    format: date-time
                closedAt:
                    type: string
                    description: When the pull request was closed or merged; unset while open.
                    format: date-time
                mergedAt:
                    type: string
                    description: When the pull request was merged; unset unless merged.
                    format: date-time
                mergeCommitSha:
                    type: string
                    description: SHA of the resulting merge commit; set once merged.
                additions:
                    type: integer
                    description: Lines added by the pull request's latest version.
                    format: int32
                deletions:
                    type: integer
                    description: Lines deleted by the pull request's latest version.
                    format: int32
                changedFiles:
                    type: integer
                    description: Files changed by the pull request's latest version.
                    format: int32
                version:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestVersion'
                    description: The pull request's latest version.
            description: |-
                A pull request snapshot for webhook payloads. Assigned labels are omitted;
                 GetPullRequest and ListPullRequests return them.
        PullRequestWebhookPayload:
            type: object
            properties:
                pullRequest:
                    allOf:
                        - $ref: '#/components/schemas/PullRequestWebhook'
                    description: The pull request snapshot. Assigned labels are omitted.
                repository:
                    allOf:
                        - $ref: '#/components/schemas/RepositoryReference'
                    description: The repository the pull request belongs to.
            description: Payload for a pull request lifecycle event.
        RateLimitResource:
            type: object
            properties:
                limit:
                    type: integer
                    description: Maximum points available in the current window.
                    format: int32
                remaining:
                    type: integer
                    description: Points remaining in the current window.
                    format: int32
                reset:
                    type: integer
                    description: Unix timestamp (UTC seconds) when the current window resets.
                    format: int32
                used:
                    type: integer
                    description: Points consumed in the current window.
                    format: int32
            description: Point budget for one rate limit resource in the current window.
        RateLimitResources:
            type: object
            properties:
                core:
                    allOf:
                        - $ref: '#/components/schemas/RateLimitResource'
                    description: Shared per-minute point budget for public API endpoints.
            description: Rate limit resources for the authenticated principal.
        RateLimitStatus:
            type: object
            properties:
                resources:
                    $ref: '#/components/schemas/RateLimitResources'
                rate:
                    allOf:
                        - $ref: '#/components/schemas/RateLimitResource'
                    description: Alias of `resources.core`. Prefer `resources.core` in new clients.
            description: Rate limit status for the authenticated principal.
        RemoveAllPullRequestLabelsRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
        RemovePullRequestLabelRequest:
            required:
                - identifier
                - pullNumber
                - labelName
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                labelName:
                    type: string
        RemovePullRequestLabelResponse:
            type: object
            properties:
                labels:
                    type: array
                    items:
                        $ref: '#/components/schemas/Label'
        Repo:
            required:
                - name
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                name:
                    type: string
                    description: The repo name, unique to its owner. Required on create.
                fullName:
                    readOnly: true
                    type: string
                    description: '"{owner.login}/{name}". Derived.'
                owner:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/Owner'
                    description: The owning entity. Determined by the parent on create; not settable directly.
                defaultBranch:
                    type: string
                    description: Default branch name. Always set on responses. On create, omitting this field or leaving it empty defaults to "main".
                createdAt:
                    readOnly: true
                    type: string
                    format: date-time
                updatedAt:
                    readOnly: true
                    type: string
                    format: date-time
                pushedAt:
                    readOnly: true
                    type: string
                    description: Most-recent-push timestamp on any branch; absent until the first push.
                    format: date-time
                cloneUrl:
                    readOnly: true
                    type: string
                    description: HTTPS URL for cloning the repository.
                mirror:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/RepositoryMirror'
                    description: |-
                        Mirror metadata. Absent for a native repository and before a mirror's
                         initial sync is ready.
            description: A repository.
        RepoIdentifier:
            type: object
            properties:
                ownerSlug:
                    type: string
                    description: Owning entity's unique slug.
                name:
                    type: string
                    description: Repo name, unique to the owner entity.
            description: |-
                Addresses a repository as `{owner_slug}/{name}` or `/_/{id}` (`_` is not
                 a valid namespace). Unauthorized `/_/{id}` lookups return the same NotFound
                 as an unknown id; knowing an id is not authorization.
        RepositoryCreatedWebhookPayload:
            type: object
            properties:
                repository:
                    $ref: '#/components/schemas/Repo'
            description: Payload for a repository.created webhook.
        RepositoryMirror:
            type: object
            properties:
                source:
                    readOnly: true
                    enum:
                        - github
                    type: string
                    format: enum
                sourceId:
                    readOnly: true
                    type: string
                    description: Opaque repository identifier assigned by the source.
                status:
                    readOnly: true
                    enum:
                        - inbound
                        - outbound
                    type: string
                    description: Effective direction during a transition, until cutover completes.
                    format: enum
            description: The external source and lifecycle state of a mirrored repository.
        RepositoryPushCommit:
            type: object
            properties:
                sha:
                    type: string
                author:
                    $ref: '#/components/schemas/CommitAuthor'
                committer:
                    $ref: '#/components/schemas/CommitAuthor'
                message:
                    type: string
            description: |-
                Commit at the peeled tip of a pushed ref. The SHA may differ from the ref's
                 `after` value when an annotated tag points to the commit.
        RepositoryPushRefUpdate:
            type: object
            properties:
                ref:
                    type: string
                    description: |-
                        The full git ref that was pushed.
                         Example: `refs/heads/main` or `refs/tags/v3.14.1`.
                before:
                    type: string
                    description: |-
                        The SHA of the most recent commit on `ref` before the push. All-zero
                         (`0000000000000000000000000000000000000000`) when the ref was just created.
                after:
                    type: string
                    description: |-
                        The SHA of the most recent commit on `ref` after the push. All-zero
                         (`0000000000000000000000000000000000000000`) when the ref was deleted.
                created:
                    type: boolean
                    description: Whether this push created the ref.
                deleted:
                    type: boolean
                    description: Whether this push deleted the ref.
                forced:
                    type: boolean
                    description: |-
                        Whether this push rewrote history: a non-fast-forward update of an existing
                         ref (the new tip is not a descendant of the old tip). False for ref
                         creates, deletes, fast-forward updates, and pushes observed before Origin
                         tracked force-push status.
                headCommit:
                    allOf:
                        - $ref: '#/components/schemas/RepositoryPushCommit'
                    description: |-
                        Best-effort metadata for the commit at the peeled new tip. Unset for
                         deletions, non-commit refs, historical pushes, and extraction failures.
            description: One ref update within an atomic repository push.
        RepositoryPushWebhookPayload:
            type: object
            properties:
                repository:
                    allOf:
                        - $ref: '#/components/schemas/RepositoryReference'
                    description: The repository the push targeted.
                refUpdates:
                    type: array
                    items:
                        $ref: '#/components/schemas/RepositoryPushRefUpdate'
                    description: Refs included from this push.
                pushedAt:
                    type: string
                    description: When Origin observed the push.
                    format: date-time
                pusher:
                    allOf:
                        - $ref: '#/components/schemas/OriginActor'
                    description: The principal that performed the push, as verified by Origin.
                refUpdatesCount:
                    type: integer
                    description: |-
                        Number of ref updates in the atomic push. ref_updates may be shorter when
                         the producer capped the list.
                    format: uint32
            description: Payload for one atomic push, which may update several refs.
        RepositoryReference:
            type: object
            properties:
                id:
                    type: string
                name:
                    type: string
                owner:
                    $ref: '#/components/schemas/Owner'
            description: Stable identity and display coordinates for a repository.
        Ruleset:
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                    description: Stable Origin ruleset id.
                name:
                    type: string
                description:
                    type: string
                enforcement:
                    enum:
                        - active
                        - evaluate
                        - disabled
                    type: string
                    format: enum
                kind:
                    enum:
                        - merge_branch
                        - push_branch
                        - push_tag
                        - push_repository
                    type: string
                    format: enum
                includedRefNames:
                    type: array
                    items:
                        type: string
                    description: |-
                        Ref name patterns this ruleset includes. Supports globs and the tokens
                         `~ALL` and `~DEFAULT_BRANCH`. Create/update reject more than 64 entries;
                         list/get therefore never paginate this field.
                excludedRefNames:
                    type: array
                    items:
                        type: string
                    description: |-
                        Ref name patterns this ruleset excludes. Same pattern language and 64-entry
                         write cap as `included_ref_names`.
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/RulesetRule'
                    description: |-
                        Protection rules in this ruleset. Create/update reject more than 20
                         entries; list/get therefore never paginate this field.
                bypassActors:
                    type: array
                    items:
                        $ref: '#/components/schemas/RulesetBypassActor'
                    description: |-
                        Bypass principals for this ruleset. Create/update reject more than 15
                         entries; list/get therefore never paginate this field.
            description: |-
                A named bundle of branch, merge, and push protections for one repository.
                 This is a stable caller-facing projection: repository coordinates live on
                 the request path (and are hoisted once on list responses), not on each
                 ruleset.
        RulesetAppBypassActor:
            type: object
            properties:
                id:
                    type: string
                    description: App id (`app_…`).
            description: An app principal that may bypass ruleset enforcement.
        RulesetBypassActor:
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                    description: Stable Origin id for this bypass actor row.
                bypassMode:
                    enum:
                        - always
                        - pull_request_only
                    type: string
                    format: enum
                user:
                    $ref: '#/components/schemas/RulesetUserBypassActor'
                team:
                    $ref: '#/components/schemas/RulesetTeamBypassActor'
                app:
                    $ref: '#/components/schemas/RulesetAppBypassActor'
                originRole:
                    $ref: '#/components/schemas/RulesetOriginRoleBypassActor'
            description: |-
                A principal that may bypass ruleset enforcement. Identity is a typed
                 `actor` oneof (user, team, app, or Origin role), not a parallel kind enum
                 plus opaque JSON payload.
        RulesetBypassActorInput:
            required:
                - bypassMode
            type: object
            properties:
                bypassMode:
                    enum:
                        - always
                        - pull_request_only
                    type: string
                    format: enum
                user:
                    $ref: '#/components/schemas/RulesetUserBypassActor'
                team:
                    $ref: '#/components/schemas/RulesetTeamBypassActor'
                app:
                    $ref: '#/components/schemas/RulesetAppBypassActor'
                originRole:
                    $ref: '#/components/schemas/RulesetOriginRoleBypassActor'
            description: |-
                Input for one bypass actor when creating a ruleset. Does not include the
                 server-assigned bypass-actor id.
        RulesetOriginRoleBypassActor:
            type: object
            properties:
                role:
                    enum:
                        - namespace_admin
                        - repository_admin
                        - repository_write
                    type: string
                    format: enum
            description: |-
                Bypass granted to holders of a policy-backed Origin role. Payload role is
                 one of `namespace_admin`, `repository_admin`, or `repository_write`.
        RulesetRule:
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                    description: Stable Origin id for this rule row.
                ruleType:
                    type: string
                    description: |-
                        Rule type string, for example `pull_request`, `require_status_checks`,
                         `require_branch_up_to_date`, `deletion`, or `non_fast_forward`.
                parameters:
                    type: object
                    description: Type-specific parameters as a JSON object. Shape depends on `rule_type`.
            description: One rule inside a repository ruleset.
        RulesetRuleInput:
            required:
                - ruleType
            type: object
            properties:
                ruleType:
                    type: string
                    description: |-
                        Rule type string, for example `pull_request`, `require_status_checks`,
                         `require_branch_up_to_date`, `deletion`, or `non_fast_forward`.
                parameters:
                    type: object
                    description: Type-specific parameters as a JSON object. Shape depends on `rule_type`.
            description: |-
                Input for one rule when creating a ruleset. Does not include the
                 server-assigned rule id.
        RulesetTeamBypassActor:
            type: object
            properties:
                organizationPublicId:
                    type: string
                groupPublicId:
                    type: string
            description: |-
                A team principal that may bypass ruleset enforcement. Identity is the
                 immutable org/group `public_id` pair (never mutable slugs).
        RulesetUserBypassActor:
            type: object
            properties:
                id:
                    type: string
                    description: |-
                        Numeric maindb user id, encoded as a decimal string. Internal upsert
                         stamps the actor-registry id (`act_…`) from this value.
            description: A user principal that may bypass ruleset enforcement.
        SetPullRequestLabelsRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                labels:
                    type: array
                    items:
                        type: string
                    description: |-
                        Label names to assign. Maximum 100. An empty list removes every assigned
                         label. Duplicate names are ignored.
        SetPullRequestLabelsResponse:
            type: object
            properties:
                labels:
                    type: array
                    items:
                        $ref: '#/components/schemas/Label'
        Status:
            type: object
            properties:
                code:
                    type: integer
                    description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
                    format: int32
                message:
                    type: string
                    description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
                details:
                    type: array
                    items:
                        $ref: '#/components/schemas/GoogleProtobufAny'
                    description: A list of messages that carry the error details.  There is a common set of message types for APIs to use.
            description: 'The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).'
        SyncMirrorRequest:
            required:
                - identifier
                - ref
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                ref:
                    type: string
                    description: |-
                        Full git ref name to fetch. Must start with `refs/` and name a ref
                         after that prefix, for example `refs/heads/main` or `refs/tags/v1`.
                         Short names such as `main` are rejected with INVALID_ARGUMENT.
                wait:
                    type: boolean
                    description: When true, block until synced or the wait budget expires. Defaults to false.
                sha:
                    type: string
                    description: |-
                        Optional full commit object id: 40- or 64-character hex. Omit or leave
                         empty to wait on the tip of `ref`. When set and reachable from `ref`,
                         the call returns early without waiting for other mirror work to drain.
                         Other values are rejected with INVALID_ARGUMENT.
        SyncMirrorResponse:
            type: object
            properties:
                synced:
                    type: boolean
                    description: |-
                        True when the sync target is known to be satisfied; false while the sync
                         is still pending. Always present in JSON responses, mirroring the HTTP
                         status (200 when true, 202 when false).
        TaggedObject:
            type: object
            properties:
                sha:
                    type: string
                    description: Hex SHA of the target object.
                type:
                    type: string
                    description: One of "commit", "tree", "blob", or "tag".
            description: The git object an annotated tag points at.
        ThreadReference:
            type: object
            properties:
                id:
                    type: string
            description: Stable identity for a pull request comment thread.
        UpdateLabelRequest:
            required:
                - identifier
                - labelName
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                labelName:
                    type: string
                    description: |-
                        Current label name. Leading and trailing whitespace is trimmed before
                         lookup.
                name:
                    type: string
                    description: |-
                        New label name. Leading and trailing whitespace is trimmed. Maximum 50
                         characters. Omit to leave unchanged.
                color:
                    type: string
                    description: Six-character hex color without a leading `#`. Omit to leave unchanged.
                description:
                    type: string
                    description: Description. Maximum 255 characters. Omit to leave unchanged.
        UpdatePullRequestCommentRequest:
            required:
                - identifier
                - commentId
                - body
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                commentId:
                    type: string
                body:
                    type: string
        UpdatePullRequestRequest:
            required:
                - identifier
                - pullNumber
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                title:
                    type: string
                    description: New title. Omitted fields are left unchanged.
                body:
                    type: string
                    description: New body / description. An empty string clears the body.
                state:
                    type: string
                    description: |-
                        `"open"` or `"closed"`. `"closed"` closes the pull request. `"open"`
                         without `draft: true` marks it ready for review, including publishing an
                         existing draft. Merged is not writable — use `MergePullRequest`.
                draft:
                    type: boolean
                    description: |-
                        `true` marks the pull request draft; `false` marks it ready for review
                         (and reopens it if currently closed). Ignored when `state` is `"closed"`.
                base:
                    type: string
                    description: |-
                        New base branch. Retargets the pull request and may update stack
                         parentage when the new base is another change's head (or the default
                         branch).
        UpdatePullRequestReviewRequest:
            required:
                - identifier
                - pullNumber
                - reviewId
                - body
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                pullNumber:
                    type: string
                reviewId:
                    type: string
                body:
                    type: string
                    description: |-
                        Replacement review summary text; replaces the prior body in full. Must
                         contain a non-whitespace character; INVALID_ARGUMENT otherwise.
        UpdateRulesetRequest:
            required:
                - identifier
                - rulesetId
                - name
                - enforcement
                - kind
            type: object
            properties:
                identifier:
                    $ref: '#/components/schemas/RepoIdentifier'
                rulesetId:
                    type: string
                    description: Stable Origin ruleset id.
                name:
                    type: string
                description:
                    type: string
                enforcement:
                    enum:
                        - active
                        - evaluate
                        - disabled
                    type: string
                    format: enum
                kind:
                    enum:
                        - merge_branch
                        - push_branch
                        - push_tag
                        - push_repository
                    type: string
                    format: enum
                includedRefNames:
                    type: array
                    items:
                        type: string
                    description: |-
                        Ref name patterns this ruleset includes. Supports globs and the tokens
                         `~ALL` and `~DEFAULT_BRANCH`.
                excludedRefNames:
                    type: array
                    items:
                        type: string
                    description: |-
                        Ref name patterns this ruleset excludes. Same pattern language as
                         `included_ref_names`.
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/RulesetRuleInput'
                bypassActors:
                    type: array
                    items:
                        $ref: '#/components/schemas/RulesetBypassActorInput'
            description: |-
                Same configuration body as `CreateRulesetRequest`, plus the ruleset id on
                 the path. Nested rules and bypass actors are fully replaced.
        WebhookApp:
            type: object
            properties:
                id:
                    type: string
                slug:
                    type: string
        WebhookDelivery:
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                event:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/WebhookEventReference'
                    description: The event this delivery carries.
                installation:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/InstallationReference'
                    description: |-
                        The installation this delivery belongs to. `id` is the current active
                         installation for the target owner; unset when none exists (possible only
                         for app-targeted lifecycle events after an uninstall).
                createdAt:
                    readOnly: true
                    type: string
                    format: date-time
                deliveredAt:
                    readOnly: true
                    type: string
                    description: |-
                        First 2xx from any attempt, automatic or manual. Set once, never cleared.
                         Unset means the receiver has never acknowledged this delivery.
                    format: date-time
                lastAttempt:
                    readOnly: true
                    allOf:
                        - $ref: '#/components/schemas/WebhookDeliveryAttempt'
                    description: |-
                        The most recent HTTP attempt, when one exists: its response status code,
                         latency, transport error, trigger, and time.
            description: |-
                A delivery obligation: one event owed to one app. Its id is the
                 `webhook-id` header the receiver sees, stable across every attempt.
        WebhookDeliveryAttempt:
            type: object
            properties:
                id:
                    readOnly: true
                    type: string
                deliveryId:
                    readOnly: true
                    type: string
                trigger:
                    readOnly: true
                    enum:
                        - automatic
                        - manual
                    type: string
                    format: enum
                responseStatusCode:
                    readOnly: true
                    type: integer
                    description: Unset when the POST produced no HTTP response (transport error, timeout).
                    format: int32
                latencyMs:
                    readOnly: true
                    type: integer
                    format: int32
                errorMessage:
                    readOnly: true
                    type: string
                    description: Transport error detail when there was no HTTP response; empty otherwise.
                attemptedAt:
                    readOnly: true
                    type: string
                    format: date-time
            description: One HTTP POST of a delivery's payload to the app's webhook URL.
        WebhookEventReference:
            type: object
            properties:
                id:
                    type: string
                type:
                    type: string
            description: |-
                The event a delivery carries. `type` is the subscription event type, e.g.
                 `pull_request.created`; `id` is shared by every app's delivery of the same
                 event.
        WebhookInstallation:
            type: object
            properties:
                id:
                    type: string
                target:
                    $ref: '#/components/schemas/Owner'
                repoSelectionMode:
                    enum:
                        - all
                        - selected
                    type: string
                    format: enum
                repositories:
                    type: array
                    items:
                        $ref: '#/components/schemas/RepositoryReference'
                    description: Empty when repository_selection is "all". Capped; see repositories_count for the true total.
                scopes:
                    type: array
                    items:
                        type: string
                repositoriesCount:
                    type: integer
                    description: True total; 0 when repository_selection is "all".
                    format: int32
                createdAt:
                    type: string
                    format: date-time
                deletedAt:
                    type: string
                    format: date-time
                suspendedAt:
                    type: string
                    description: Set while the installation is suspended; unset when it is active.
                    format: date-time
                installedBy:
                    allOf:
                        - $ref: '#/components/schemas/OriginUserActor'
                    description: User who originally installed the app.
    securitySchemes:
        bearerAuth:
            type: http
            description: 'Origin API credentials are sent as `Authorization: Bearer` tokens: an app JWT for app-level endpoints, or an installation access token (`oit_...`) for installation-scoped endpoints.'
            scheme: bearer
security:
    - bearerAuth: []
tags:
    - name: OriginService
