openapi: 3.0.3
info:
    title: Speakeasy API Description
    description: Speakeasy is the tools platform for AI agents
    version: 0.0.1
servers:
    - url: https://app.getgram.ai
paths:
    /admin/assets.serveImage:
        get:
            description: Serve a public image, preserving the existing image serving contract.
            operationId: adminServeImage
            parameters:
                - allowEmptyValue: true
                  description: The ID of the asset to serve
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the asset to serve
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                format: binary
                                type: string
                    description: OK response.
                    headers:
                        Access-Control-Allow-Origin:
                            schema:
                                type: string
                        Content-Length:
                            schema:
                                format: int64
                                type: integer
                        Content-Type:
                            schema:
                                type: string
                        Cross-Origin-Resource-Policy:
                            schema:
                                type: string
                        Last-Modified:
                            schema:
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            summary: serveImage admin
            tags:
                - admin
            x-speakeasy-name-override: serveImage
    /admin/assets.uploadImage:
        post:
            description: Upload a global issuer logo, limited to 4 MiB and PNG, JPEG, GIF or WebP.
            operationId: adminUploadPlatformImage
            parameters:
                - allowEmptyValue: true
                  in: header
                  name: Content-Type
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UploadImageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: uploadPlatformImage admin
            tags:
                - admin
            x-speakeasy-name-override: uploadPlatformImage
    /admin/auth.callback:
        get:
            tags:
                - admin
            summary: callback admin
            operationId: admin#callback
            parameters:
                - name: code
                  in: query
                  description: The authorization code returned by the provider on success
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: The authorization code returned by the provider on success
                - name: state
                  in: query
                  description: The state parameter returned, which should match the one generated in the login step
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    description: The state parameter returned, which should match the one generated in the login step
                - name: error
                  in: query
                  description: OAuth error code returned by the provider (e.g. login_required for prompt=none failures)
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: OAuth error code returned by the provider (e.g. login_required for prompt=none failures)
                - name: error_description
                  in: query
                  description: Human-readable OAuth error description
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Human-readable OAuth error description
                - name: gram_admin_login_state
                  in: cookie
                  description: The state cookie value for CSRF sanity checking against the state parameter
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: The state cookie value for CSRF sanity checking against the state parameter
            responses:
                "307":
                    description: Temporary Redirect response.
                    headers:
                        Location:
                            description: The URL to redirect the client to after processing the callback
                            schema:
                                type: string
                                description: The URL to redirect the client to after processing the callback
                        Set-Cookie:
                            description: Admin session cookie
                            schema:
                                type: string
                                description: Admin session cookie
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
    /admin/auth.login:
        get:
            tags:
                - admin
            summary: login admin
            operationId: admin#login
            parameters:
                - name: return_to
                  in: query
                  description: Optional URL to return the user to after login. Relative paths and absolute URLs whose origin is in the admin allowed-origins list are accepted.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Optional URL to return the user to after login. Relative paths and absolute URLs whose origin is in the admin allowed-origins list are accepted.
                - name: prompt
                  in: query
                  description: Optional OAuth prompt parameter forwarded to the provider. Pass 'none' to attempt silent re-authentication.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Optional OAuth prompt parameter forwarded to the provider. Pass 'none' to attempt silent re-authentication.
            responses:
                "307":
                    description: Temporary Redirect response.
                    headers:
                        Location:
                            description: The URL to redirect the user to for Google authentication
                            schema:
                                type: string
                                description: The URL to redirect the user to for Google authentication
                        Set-Cookie:
                            description: CSRF state cookie for sanity-checking the callback
                            schema:
                                type: string
                                description: CSRF state cookie for sanity-checking the callback
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
    /admin/auth.logout:
        post:
            tags:
                - admin
            summary: logout admin
            operationId: admin#logout
            parameters:
                - name: gram_admin
                  in: cookie
                  description: The session cookie value to clear for logging out
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: The session cookie value to clear for logging out
            responses:
                "204":
                    description: No Content response.
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
    /admin/externalMcpMigration.listCandidates:
        get:
            description: Lists every live server across all organizations whose latest toolset version proxies an external MCP attachment on its project's active deployment, with the blockers that stop each one from migrating.
            operationId: adminListExternalMcpMigrationCandidates
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminListExternalMcpMigrationCandidatesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: listExternalMcpMigrationCandidates admin
            tags:
                - admin
            x-speakeasy-name-override: listExternalMcpMigrationCandidates
    /admin/externalMcpMigration.migrate:
        post:
            description: Switches each server in place from its external MCP attachment to a remote MCP source on the same sign-in provider, keeping its ID, address and everything that references it, and disables the old toolset. A candidate left with nothing to migrate is deleted instead, with its server, addresses and plugin entries, as the toolset delete API does. Servers run one at a time, each in its own transaction, and the run stops at the first failure. Never creates a sign-in provider or a client and never registers one with the upstream.
            operationId: adminMigrateExternalMcpServers
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/MigrateExternalMcpServersRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminExternalMcpMigrationResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: migrateExternalMcpServers admin
            tags:
                - admin
            x-speakeasy-name-override: migrateExternalMcpServers
    /admin/externalMcpMigration.preview:
        post:
            description: Runs each server's migration or deletion inside a transaction that is rolled back, reporting what would happen without changing anything.
            operationId: adminPreviewExternalMcpMigration
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/PreviewExternalMcpMigrationRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminExternalMcpMigrationResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: previewExternalMcpMigration admin
            tags:
                - admin
            x-speakeasy-name-override: previewExternalMcpMigration
    /admin/hookClients.get:
        get:
            description: 'Fleet-wide client health grids: which hook client (legacy curl or hooks binary version) each organization''s new sessions use per day, inference hook traffic per Claude app, and device agent versions per day.'
            operationId: adminGetHookClients
            parameters:
                - allowEmptyValue: true
                  description: Window in days.
                  in: query
                  name: window_days
                  schema:
                    default: 15
                    description: Window in days.
                    format: int64
                    maximum: 30
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Skip the cache and read ClickHouse now.
                  in: query
                  name: refresh
                  schema:
                    default: false
                    description: Skip the cache and read ClickHouse now.
                    type: boolean
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminHookClientsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getHookClients admin
            tags:
                - admin
            x-speakeasy-name-override: getHookClients
            x-speakeasy-react-hook:
                name: AdminGetHookClients
    /admin/onboarding.playbooks:
        get:
            description: Read every playbook, or, when an organization is named, the shared ones and its own.
            operationId: adminListOnboardingPlaybooks
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: organization_id
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingPlaybookList'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: listOnboardingPlaybooks admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: AdminOnboardingPlaybooks
    /admin/onboarding.playbooks.clone:
        post:
            description: Copy a playbook into a custom one for an organization, so staff can edit it for that organization alone.
            operationId: adminCloneOnboardingPlaybook
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CloneOnboardingPlaybookRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingPlaybook'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: cloneOnboardingPlaybook admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: CloneAdminOnboardingPlaybook
    /admin/onboarding.playbooks.create:
        post:
            description: Create a playbook from top-level steps, for a use case or for one organization, not both. Every prerequisite of a step must be in the playbook, before it. Marking a default replaces the use case's previous default.
            operationId: adminCreateOnboardingPlaybook
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateOnboardingPlaybookRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingPlaybook'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: createOnboardingPlaybook admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: CreateAdminOnboardingPlaybook
    /admin/onboarding.playbooks.delete:
        post:
            description: Retire a playbook. Organizations assigned it fall back to their setup task selection.
            operationId: adminDeleteOnboardingPlaybook
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DeleteOnboardingPlaybookRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingPlaybookList'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: deleteOnboardingPlaybook admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: DeleteAdminOnboardingPlaybook
    /admin/onboarding.playbooks.update:
        post:
            description: Replace a playbook's name, description, default mark and steps. A custom playbook is also checked against its organization's stack.
            operationId: adminUpdateOnboardingPlaybook
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateOnboardingPlaybookRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingPlaybook'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: updateOnboardingPlaybook admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: UpdateAdminOnboardingPlaybook
    /admin/onboarding.stackOptions:
        get:
            description: Read the vendors, plans and platforms the stack form offers, from the support matrix catalog.
            operationId: adminGetOnboardingStackOptions
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingStackOptions'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getOnboardingStackOptions admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: AdminOnboardingStackOptions
    /admin/onboarding.steps:
        get:
            description: Read the onboarding steps the code defines, mirrored into the database, with their groups, methods and prerequisites.
            operationId: adminListOnboardingSteps
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingStepList'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: listOnboardingSteps admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: AdminOnboardingSteps
    /admin/onboarding.useCases:
        get:
            description: Read the use cases staff defined, each with its default playbook.
            operationId: adminListOnboardingUseCases
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingUseCaseList'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: listOnboardingUseCases admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: AdminOnboardingUseCases
    /admin/onboarding.useCases.create:
        post:
            description: Define a use case.
            operationId: adminCreateOnboardingUseCase
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateOnboardingUseCaseRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingUseCase'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: createOnboardingUseCase admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: CreateAdminOnboardingUseCase
    /admin/onboarding.useCases.delete:
        post:
            description: Retire a use case and its playbooks. Organizations assigned one of them fall back to their setup task selection.
            operationId: adminDeleteOnboardingUseCase
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DeleteOnboardingUseCaseRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingUseCaseList'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: deleteOnboardingUseCase admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: DeleteAdminOnboardingUseCase
    /admin/onboarding.useCases.update:
        post:
            description: Rename or describe a use case. The slug never changes.
            operationId: adminUpdateOnboardingUseCase
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateOnboardingUseCaseRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingUseCase'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: updateOnboardingUseCase admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: UpdateAdminOnboardingUseCase
    /admin/organization.activity:
        get:
            description: Lists activity belonging to an organization for admin operators.
            operationId: adminListOrganizationActivity
            parameters:
                - allowEmptyValue: true
                  description: Organization ID.
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    description: Organization ID.
                    type: string
                - allowEmptyValue: true
                  description: Cursor for paginating through organization activity.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for paginating through organization activity.
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminListOrganizationActivityResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: listOrganizationActivity admin
            tags:
                - admin
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
    /admin/organization.cancelStripeSubscription:
        post:
            tags:
                - admin
            summary: cancelStripeSubscription admin
            description: Schedules an organization's PAYG subscription to cancel at period end.
            operationId: adminCancelStripeSubscription
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CancelStripeSubscriptionRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminStripeSubscription'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.chatAnalysisSettings:
        get:
            tags:
                - admin
            summary: getOrganizationChatAnalysisSettings admin
            operationId: adminGetOrganizationChatAnalysisSettings
            parameters:
                - name: organization_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminChatAnalysisSettings'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
        post:
            tags:
                - admin
            summary: setOrganizationChatAnalysisSettings admin
            operationId: adminSetOrganizationChatAnalysisSettings
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetOrganizationChatAnalysisSettingsRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminChatAnalysisSettings'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.chatAnalysisTrigger:
        post:
            tags:
                - admin
            summary: triggerOrganizationChatAnalysis admin
            operationId: adminTriggerOrganizationChatAnalysis
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/TriggerOrganizationChatAnalysisRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminChatAnalysisTriggerResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.create:
        post:
            tags:
                - admin
            summary: createOrganization admin
            description: 'Creates an organization in WorkOS and in Speakeasy, so an operator does not have to leave the admin app for the WorkOS dashboard. The organization starts with no members, is not whitelisted, and gets no trial. Idempotent against the WorkOS organization webhook: the Speakeasy ID is derived from the WorkOS ID, so both writers converge on one row.'
            operationId: adminCreateOrganization
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateOrganizationRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.disable:
        post:
            tags:
                - admin
            summary: disableOrganization admin
            description: 'Disables an organization, recording the moment of the action in disabled_at. Idempotent: disabling an already-disabled organization keeps the original timestamp.'
            operationId: adminDisableOrganization
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DisableOrganizationRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.enable:
        post:
            tags:
                - admin
            summary: enableOrganization admin
            description: 'Re-enables a disabled organization by clearing disabled_at. Idempotent: an organization that is already active is unaffected.'
            operationId: adminEnableOrganization
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/EnableOrganizationRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.features:
        get:
            operationId: adminGetOrganizationFeatures
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ProductFeatures'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getOrganizationFeatures admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: AdminOrganizationFeatures
        post:
            operationId: adminSetOrganizationFeature
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetOrganizationFeatureRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ProductFeatures'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: setOrganizationFeature admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: SetAdminOrganizationFeature
    /admin/organization.get:
        get:
            tags:
                - admin
            summary: getOrganization admin
            description: Returns full admin details for a single organization by id or slug.
            operationId: adminGetOrganization
            parameters:
                - name: id_or_slug
                  in: query
                  description: Organization ID or slug.
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    description: Organization ID or slug.
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.inferenceKeys:
        get:
            tags:
                - admin
            summary: getInferenceKeys admin
            description: Returns the configured state of every materialized platform-managed OpenRouter key for an organization.
            operationId: adminGetInferenceKeys
            parameters:
                - name: organization_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                type: array
                                items:
                                    $ref: '#/components/schemas/AdminInferenceKey'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.inferenceSpendHistory:
        get:
            tags:
                - admin
            summary: getInferenceSpendHistory admin
            description: Returns up to twelve complete UTC calendar months of recorded inference spend for an organization.
            operationId: adminGetInferenceSpendHistory
            parameters:
                - name: organization_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                type: array
                                items:
                                    $ref: '#/components/schemas/AdminInferenceSpendMonth'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.members:
        get:
            tags:
                - admin
            summary: listOrganizationMembers admin
            description: Lists members of an organization (admin view, no auth scoping).
            operationId: adminListOrganizationMembers
            parameters:
                - name: organization_id
                  in: query
                  description: Organization ID.
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    description: Organization ID.
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminListOrganizationMembersResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.onboardingPlaybook:
        get:
            description: Read the playbook assigned to an organization and how each of its steps fares against the recorded stack.
            operationId: adminGetOrganizationOnboardingPlaybook
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganizationOnboardingPlaybook'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getOrganizationOnboardingPlaybook admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: AdminOrganizationOnboardingPlaybook
        post:
            description: Assign a playbook to an organization, or clear it. Rejected when a step's methods do not apply to the recorded stack; the error names the steps.
            operationId: adminAssignOrganizationOnboardingPlaybook
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AssignOrganizationOnboardingPlaybookRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganizationOnboardingPlaybook'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: assignOrganizationOnboardingPlaybook admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: AssignAdminOrganizationOnboardingPlaybook
    /admin/organization.onboardingStack:
        get:
            description: 'Read the stack staff recorded for an organization: its vendors with plans and its device management.'
            operationId: adminGetOrganizationOnboardingStack
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingStack'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getOrganizationOnboardingStack admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: AdminOrganizationOnboardingStack
        post:
            description: Replace the stack recorded for an organization. Vendors and plans must come from the catalog; other needs a name and none clears it.
            operationId: adminSetOrganizationOnboardingStack
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetOrganizationOnboardingStackRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOnboardingStack'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: setOrganizationOnboardingStack admin
            tags:
                - admin
            x-speakeasy-react-hook:
                name: SetAdminOrganizationOnboardingStack
    /admin/organization.open-dashboard:
        post:
            tags:
                - admin
            summary: openOrganizationInDashboard admin
            operationId: adminOpenOrganizationInDashboard
            parameters:
                - name: organization_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
            responses:
                "303":
                    description: See Other response.
                    headers:
                        Cache-Control:
                            schema:
                                type: string
                        Location:
                            schema:
                                type: string
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.paygBillingSummary:
        get:
            tags:
                - admin
            summary: getPaygBillingSummary admin
            description: Returns current PAYG usage and estimated cost for an organization.
            operationId: adminGetPaygBillingSummary
            parameters:
                - name: organization_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminPaygBillingSummary'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.projects:
        get:
            tags:
                - admin
            summary: listOrganizationProjects admin
            description: Lists projects belonging to an organization (admin view, no auth scoping).
            operationId: adminListOrganizationProjects
            parameters:
                - name: organization_id
                  in: query
                  description: Organization ID.
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    description: Organization ID.
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminListOrganizationProjectsResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.repairInferenceKey:
        post:
            tags:
                - admin
            summary: repairInferenceKey admin
            description: Removes explicitly selected known disable causes without changing tier, credits, or runtime. Staff confirmation and reason required.
            operationId: adminRepairInferenceKey
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RepairInferenceKeyRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminInferenceKeyRepairResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.resumeStripeSubscription:
        post:
            tags:
                - admin
            summary: resumeStripeSubscription admin
            description: Removes a scheduled period-end cancellation from an organization's PAYG subscription.
            operationId: adminResumeStripeSubscription
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ResumeStripeSubscriptionRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminStripeSubscription'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.setInferenceKeyMonthlyLimit:
        post:
            tags:
                - admin
            summary: setInferenceKeyMonthlyLimit admin
            description: Sets the monthly limit for one materialized platform-managed OpenRouter key.
            operationId: adminSetInferenceKeyMonthlyLimit
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetInferenceKeyMonthlyLimitRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminInferenceKeyLimit'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.setStripeCustomer:
        post:
            tags:
                - admin
            summary: setStripeCustomer admin
            description: Sets an organization's Stripe customer ID when it has no existing Stripe customer or subscription.
            operationId: adminSetStripeCustomer
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetStripeCustomerRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.setStripeSubscription:
        post:
            tags:
                - admin
            summary: setStripeSubscription admin
            description: Records a Stripe subscription ID on a PAYG organization when its subscription ID is empty, after verifying the subscription belongs to the organization's Stripe customer.
            operationId: adminSetStripeSubscription
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetStripeSubscriptionRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.spendBreakdown:
        get:
            description: Returns exact current PAYG list-price estimates for an organization's three metered products over a maximum of three calendar months. Available for every organization regardless of account type or subscription state.
            operationId: adminGetSpendBreakdown
            parameters:
                - allowEmptyValue: true
                  description: Organization ID or canonical slug.
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    description: Organization ID or canonical slug.
                    type: string
                - allowEmptyValue: true
                  description: Inclusive UTC midnight reporting boundary. Must be paired with to.
                  in: query
                  name: from
                  schema:
                    description: Inclusive UTC midnight reporting boundary. Must be paired with to.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Exclusive UTC midnight reporting boundary. Must be paired with from and no later than three calendar months after from, clamped to the target month's last day.
                  in: query
                  name: to
                  schema:
                    description: Exclusive UTC midnight reporting boundary. Must be paired with from and no later than three calendar months after from, clamped to the target month's last day.
                    format: date-time
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminSpendBreakdownResponse'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: getSpendBreakdown admin
            tags:
                - admin
            x-speakeasy-name-override: getSpendBreakdown
    /admin/organization.stripeCustomer:
        get:
            tags:
                - admin
            summary: getStripeCustomer admin
            description: Returns Stripe customer details for confirmation before assigning the customer to an organization.
            operationId: adminGetStripeCustomer
            parameters:
                - name: organization_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                - name: stripe_customer_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    pattern: ^cus_[A-Za-z0-9_]+$
                    maxLength: 255
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminStripeCustomer'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.stripeSubscription:
        get:
            tags:
                - admin
            summary: getStripeSubscription admin
            description: Returns the live Stripe subscription and payment state for an organization.
            operationId: adminGetStripeSubscription
            parameters:
                - name: organization_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminStripeSubscription'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.stripeSubscriptionCandidate:
        get:
            tags:
                - admin
            summary: getStripeSubscriptionCandidate admin
            description: Returns live Stripe subscription details for confirmation before recording the subscription on a PAYG organization that has a customer and no subscription.
            operationId: adminGetStripeSubscriptionCandidate
            parameters:
                - name: organization_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                - name: stripe_subscription_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    pattern: ^sub_[A-Za-z0-9_]+$
                    maxLength: 255
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminStripeSubscriptionCandidate'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organization.update:
        post:
            tags:
                - admin
            summary: updateOrganization admin
            description: Updates admin-managed fields on an organization. At least one of account_type or whitelisted must be supplied.
            operationId: adminUpdateOrganization
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateOrganizationRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organizations.bulkUpdateAccountType:
        post:
            tags:
                - admin
            summary: bulkUpdateAccountType admin
            description: Sets one account type on many organizations in a single statement. An ID that matches no organization is reported back rather than failing the batch, so a stale ID costs the operator that row and not the whole call.
            operationId: adminBulkUpdateAccountType
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/BulkUpdateAccountTypeRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminBulkUpdateAccountTypeResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organizations.customerUsage:
        get:
            description: 'Returns estimated usage at current PAYG list prices for every active paying organization: enterprise organizations not on a running or ending trial, and pro or payg organizations that never trialled.'
            operationId: adminListCustomerUsage
            parameters:
                - allowEmptyValue: true
                  description: Chart bucketing. monthly gives one bucket per billing cycle over the last six cycles. daily and weekly bucket the current cycle.
                  in: query
                  name: interval
                  schema:
                    default: monthly
                    description: Chart bucketing. monthly gives one bucket per billing cycle over the last six cycles. daily and weekly bucket the current cycle.
                    enum:
                        - daily
                        - weekly
                        - monthly
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminCustomerUsageResponse'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: listCustomerUsage admin
            tags:
                - admin
            x-speakeasy-name-override: listCustomerUsage
    /admin/organizations.getMeterUsage:
        get:
            tags:
                - admin
            summary: getMeterUsage admin
            description: Returns totals-only ordinary meter usage for an organization over a bounded UTC-day window.
            operationId: adminGetMeterUsage
            parameters:
                - name: organization_id
                  in: query
                  description: Organization ID or canonical slug.
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    description: Organization ID or canonical slug.
                - name: family
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    enum:
                        - agent_session_storage
                        - mcp_bandwidth
                        - risk_content_scans
                - name: from
                  in: query
                  description: Inclusive UTC midnight reporting boundary. Must be paired with to.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Inclusive UTC midnight reporting boundary. Must be paired with to.
                    format: date-time
                - name: to
                  in: query
                  description: Exclusive UTC midnight reporting boundary. Must be paired with from and no later than three calendar months after from.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Exclusive UTC midnight reporting boundary. Must be paired with from and no later than three calendar months after from.
                    format: date-time
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminMeterUsageResponse'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/organizations.list:
        get:
            description: Lists organizations for platform admin operations with optional search and filters. Defaults to created_at descending, with id ascending to break ties.
            operationId: adminListOrganizations
            parameters:
                - allowEmptyValue: true
                  description: Search term, trimmed of surrounding whitespace. Matches name and slug as a case-insensitive substring, with % and _ taken literally, and matches organization id and WorkOS id exactly, ignoring case. All filters apply even to exact ID matches.
                  in: query
                  name: q
                  schema:
                    description: Search term, trimmed of surrounding whitespace. Matches name and slug as a case-insensitive substring, with % and _ taken literally, and matches organization id and WorkOS id exactly, ignoring case. All filters apply even to exact ID matches.
                    type: string
                - allowEmptyValue: true
                  description: Filter by a single gram_account_type (e.g. free, pro, payg, enterprise). Superseded by account_types, which it joins as one more member of the same set.
                  in: query
                  name: account_type
                  schema:
                    description: Filter by a single gram_account_type (e.g. free, pro, payg, enterprise). Superseded by account_types, which it joins as one more member of the same set.
                    type: string
                - allowEmptyValue: true
                  description: Match any of these gram_account_type values. Empty matches every account type. A value no organization carries matches nothing rather than failing the request.
                  in: query
                  name: account_types
                  schema:
                    description: Match any of these gram_account_type values. Empty matches every account type. A value no organization carries matches nothing rather than failing the request.
                    items:
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Match any of running, ending_soon, expired, demoted, converted or none. Empty matches every trial state. An unrecognised value matches nothing rather than failing the request.
                  in: query
                  name: trial_states
                  schema:
                    description: Match any of running, ending_soon, expired, demoted, converted or none. Empty matches every trial state. An unrecognised value matches nothing rather than failing the request.
                    items:
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: 'Organization status: all (default), active (disabled_at IS NULL), or disabled (disabled_at IS NOT NULL). Applies even to exact ID matches.'
                  in: query
                  name: disabled_status
                  schema:
                    description: 'Organization status: all (default), active (disabled_at IS NULL), or disabled (disabled_at IS NOT NULL). Applies even to exact ID matches.'
                    enum:
                        - all
                        - active
                        - disabled
                    type: string
                - allowEmptyValue: true
                  description: Inclusive minimum active member count, from 0 through 9223372036854775807. The generated TypeScript SDK accepts bigint. The handwritten admin client accepts safe integers or decimal strings; use decimal strings above Number.MAX_SAFE_INTEGER.
                  in: query
                  name: min_members
                  schema:
                    description: Inclusive minimum active member count, from 0 through 9223372036854775807. The generated TypeScript SDK accepts bigint. The handwritten admin client accepts safe integers or decimal strings; use decimal strings above Number.MAX_SAFE_INTEGER.
                    format: int64
                    minimum: 0
                    type: integer
                - allowEmptyValue: true
                  description: Inclusive maximum active member count, from 0 through 9223372036854775807. Must be at least min_members. The generated TypeScript SDK accepts bigint. The handwritten admin client accepts safe integers or decimal strings; use decimal strings above Number.MAX_SAFE_INTEGER.
                  in: query
                  name: max_members
                  schema:
                    description: Inclusive maximum active member count, from 0 through 9223372036854775807. Must be at least min_members. The generated TypeScript SDK accepts bigint. The handwritten admin client accepts safe integers or decimal strings; use decimal strings above Number.MAX_SAFE_INTEGER.
                    format: int64
                    minimum: 0
                    type: integer
                - allowEmptyValue: true
                  description: Inclusive creation date in strict YYYY-MM-DD UTC calendar format. Each date bound is optional; must not be after created_to.
                  in: query
                  name: created_from
                  schema:
                    description: Inclusive creation date in strict YYYY-MM-DD UTC calendar format. Each date bound is optional; must not be after created_to.
                    type: string
                - allowEmptyValue: true
                  description: Inclusive creation date in strict YYYY-MM-DD UTC calendar format. Includes the entire UTC day, implemented as an exclusive bound at the following midnight.
                  in: query
                  name: created_to
                  schema:
                    description: Inclusive creation date in strict YYYY-MM-DD UTC calendar format. Includes the entire UTC day, implemented as an exclusive bound at the following midnight.
                    type: string
                - allowEmptyValue: true
                  description: 'Pagination cursor: id of the last item from the previous page in created_at descending, id ascending order. The anchor is resolved regardless of filters; a deleted or unknown id returns an empty page. Ignored when sort or page is supplied.'
                  in: query
                  name: cursor
                  schema:
                    description: 'Pagination cursor: id of the last item from the previous page in created_at descending, id ascending order. The anchor is resolved regardless of filters; a deleted or unknown id returns an empty page. Ignored when sort or page is supplied.'
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: 'Column to sort by: name, slug, account_type, account_tier, member_count, created_at, disabled_at or trial_ends_at. account_tier ranks enterprise first, then pro and payg, then free, then any other account type; desc reverses that order. Omitted or unknown values use created_at descending. Ties always sort by id ascending. Supplying it selects offset paging.'
                  in: query
                  name: sort
                  schema:
                    description: 'Column to sort by: name, slug, account_type, account_tier, member_count, created_at, disabled_at or trial_ends_at. account_tier ranks enterprise first, then pro and payg, then free, then any other account type; desc reverses that order. Omitted or unknown values use created_at descending. Ties always sort by id ascending. Supplying it selects offset paging.'
                    type: string
                - allowEmptyValue: true
                  description: Sort direction, asc or desc, applied to the column named by sort. Any other value sorts ascending. Ignored when sort is omitted or unknown, preserving the newest-first default. On its own it does not select offset paging.
                  in: query
                  name: direction
                  schema:
                    description: Sort direction, asc or desc, applied to the column named by sort. Any other value sorts ascending. Ignored when sort is omitted or unknown, preserving the newest-first default. On its own it does not select offset paging.
                    type: string
                - allowEmptyValue: true
                  description: 1-based page number for offset paging (default 1). Supplying it selects offset paging.
                  in: query
                  name: page
                  schema:
                    description: 1-based page number for offset paging (default 1). Supplying it selects offset paging.
                    format: int64
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminListOrganizationsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: listOrganizations admin
            tags:
                - admin
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
    /admin/organizations.stats:
        get:
            tags:
                - admin
            summary: getOrganizationStats admin
            description: 'Returns platform-wide organization counts for the strip above the organizations list. Every figure counts the whole platform: none of them narrows to the caller''s list filters, so the strip does not move when an operator filters.'
            operationId: adminGetOrganizationStats
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganizationStats'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/project.get:
        get:
            tags:
                - admin
            summary: getProject admin
            description: Returns full admin details for a project by id or slug, including aggregated counts of child resources.
            operationId: adminGetProject
            parameters:
                - name: id_or_slug
                  in: query
                  description: Project ID or slug.
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    description: Project ID or slug.
                - name: organization_id_or_slug
                  in: query
                  description: Organization the project must belong to, by id or slug. A project outside it is reported as not found. Optional, because the global project lookup has no organization to scope by.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Organization the project must belong to, by id or slug. A project outside it is reported as not found. Optional, because the global project lookup has no organization to scope by.
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminProjectDetail'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/project.mcpServerHealth:
        get:
            description: 'Describes one MCP server''s health: authentication configuration and session counts (admin view, no auth scoping). Tool calls come from getMcpServerToolCalls.'
            operationId: adminDescribeMcpServerHealth
            parameters:
                - allowEmptyValue: true
                  description: Organization the project must belong to. A project outside it is reported as not found.
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    description: Organization the project must belong to. A project outside it is reported as not found.
                    type: string
                - allowEmptyValue: true
                  description: Project ID.
                  in: query
                  name: project_id
                  required: true
                  schema:
                    description: Project ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The server id from listProjectMcpServers; the toolset ID for toolset-only servers.
                  in: query
                  name: mcp_server_id
                  required: true
                  schema:
                    description: The server id from listProjectMcpServers; the toolset ID for toolset-only servers.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Window in days for distinct_subjects_in_window.
                  in: query
                  name: window_days
                  schema:
                    default: 14
                    description: Window in days for distinct_subjects_in_window.
                    enum:
                        - 14
                        - 30
                        - 90
                    format: int64
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminMcpServerHealth'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: describeMcpServerHealth admin
            tags:
                - admin
            x-speakeasy-name-override: describeMcpServerHealth
            x-speakeasy-react-hook:
                name: AdminDescribeMcpServerHealth
    /admin/project.mcpServerToolCalls:
        get:
            description: Reads one MCP server's tool call outcomes and series over a window (admin view, no auth scoping). Returns logging:disabled without reading telemetry when the organization's logs are off.
            operationId: adminGetMcpServerToolCalls
            parameters:
                - allowEmptyValue: true
                  description: Organization the project must belong to. A project outside it is reported as not found.
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    description: Organization the project must belong to. A project outside it is reported as not found.
                    type: string
                - allowEmptyValue: true
                  description: Project ID.
                  in: query
                  name: project_id
                  required: true
                  schema:
                    description: Project ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The server id from listProjectMcpServers; the toolset ID for toolset-only servers.
                  in: query
                  name: mcp_server_id
                  required: true
                  schema:
                    description: The server id from listProjectMcpServers; the toolset ID for toolset-only servers.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Window in days. 90 days is bucketed weekly, shorter windows daily.
                  in: query
                  name: window_days
                  schema:
                    default: 14
                    description: Window in days. 90 days is bucketed weekly, shorter windows daily.
                    enum:
                        - 14
                        - 30
                        - 90
                    format: int64
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminMcpServerToolCalls'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getMcpServerToolCalls admin
            tags:
                - admin
            x-speakeasy-name-override: getMcpServerToolCalls
            x-speakeasy-react-hook:
                name: AdminGetMcpServerToolCalls
    /admin/project.mcpServers:
        get:
            tags:
                - admin
            summary: listProjectMcpServers admin
            description: Lists the MCP servers in a project (admin view, no auth scoping).
            operationId: adminListProjectMcpServers
            parameters:
                - name: organization_id
                  in: query
                  description: Organization the project must belong to. A project outside it is reported as not found.
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    description: Organization the project must belong to. A project outside it is reported as not found.
                - name: project_id
                  in: query
                  description: Project ID.
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    description: Project ID.
                    format: uuid
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminListProjectMcpServersResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/registry.create:
        post:
            description: Staff-only registry administration.
            operationId: adminCreateRegistryEntry
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRegistryEntryRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminRegistryEntry'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: createRegistryEntry admin
            tags:
                - admin
            x-speakeasy-name-override: createRegistryEntry
    /admin/registry.get:
        get:
            description: Staff-only registry administration.
            operationId: adminGetRegistryEntry
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: id
                  required: true
                  schema:
                    format: uuid
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminRegistryEntry'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getRegistryEntry admin
            tags:
                - admin
            x-speakeasy-name-override: getRegistryEntry
    /admin/registry.list:
        get:
            description: Staff-only registry administration.
            operationId: adminListRegistryEntries
            parameters:
                - allowEmptyValue: true
                  description: Search query; at most 1024 UTF-8 bytes (enforced by the server).
                  in: query
                  name: query
                  schema:
                    description: Search query; at most 1024 UTF-8 bytes (enforced by the server).
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: published
                  schema:
                    type: boolean
                - allowEmptyValue: true
                  description: Opaque continuation cursor from next_cursor; at most 8192 UTF-8 bytes (enforced by the server).
                  in: query
                  name: cursor
                  schema:
                    description: Opaque continuation cursor from next_cursor; at most 8192 UTF-8 bytes (enforced by the server).
                    type: string
                - allowEmptyValue: true
                  description: Page size; zero uses the server default of 25.
                  in: query
                  name: limit
                  schema:
                    description: Page size; zero uses the server default of 25.
                    format: int32
                    maximum: 50
                    minimum: 0
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminRegistryPage'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: listRegistryEntries admin
            tags:
                - admin
            x-speakeasy-name-override: listRegistryEntries
    /admin/registry.oktaCandidates:
        get:
            description: 'Staff-only registry administration: Okta application names observed across synced tenants that plausibly belong to the entry, for confirmation in the editor.'
            operationId: adminGetRegistryOktaCandidates
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: id
                  required: true
                  schema:
                    format: uuid
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminRegistryOktaCandidates'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getRegistryOktaCandidates admin
            tags:
                - admin
            x-speakeasy-name-override: getRegistryOktaCandidates
    /admin/registry.oktaUnmapped:
        get:
            description: 'Staff-only registry administration: observed Okta application names no entry claims yet, with the entry the heuristic would propose.'
            operationId: adminListRegistryOktaUnmapped
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminRegistryOktaUnmapped'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: listRegistryOktaUnmapped admin
            tags:
                - admin
            x-speakeasy-name-override: listRegistryOktaUnmapped
    /admin/registry.save:
        post:
            description: Staff-only registry administration.
            operationId: adminSaveRegistryEntry
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SaveRegistryEntryRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminRegistryEntry'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: saveRegistryEntry admin
            tags:
                - admin
            x-speakeasy-name-override: saveRegistryEntry
    /admin/registry.setPublished:
        post:
            description: Staff-only registry administration.
            operationId: adminSetRegistryEntryPublished
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetRegistryEntryPublishedRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminRegistryEntry'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: setRegistryEntryPublished admin
            tags:
                - admin
            x-speakeasy-name-override: setRegistryEntryPublished
    /admin/remote-session-issuers.createGlobalIssuer:
        post:
            description: Create a global remote_session_issuer (project_id NULL, organization_id NULL). Requires platform admin.
            operationId: adminCreateGlobalIssuer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRemoteSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: createGlobalIssuer admin
            tags:
                - admin
            x-speakeasy-name-override: createGlobalIssuer
    /admin/remote-session-issuers.deleteGlobalIssuer:
        delete:
            description: Soft-delete a global remote_session_issuer. Blocked when any global remote_session_clients still reference it. Requires platform admin.
            operationId: adminDeleteGlobalIssuer
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_issuer id.
                    format: uuid
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: deleteGlobalIssuer admin
            tags:
                - admin
            x-speakeasy-name-override: deleteGlobalIssuer
    /admin/remote-session-issuers.fetchGlobalIssuerMetadata:
        post:
            description: Hit an upstream issuer's RFC 8414 .well-known/oauth-authorization-server document and return a draft suitable for createGlobalIssuer. Keyed by issuer URL; no record need exist and nothing is persisted. Requires platform admin.
            operationId: adminFetchGlobalIssuerMetadata
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/FetchIssuerMetadataRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerDraft'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: fetchGlobalIssuerMetadata admin
            tags:
                - admin
            x-speakeasy-name-override: fetchGlobalIssuerMetadata
    /admin/remote-session-issuers.getGlobalIssuer:
        get:
            description: Get a global remote_session_issuer by id. Requires platform admin.
            operationId: adminGetGlobalIssuer
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_issuer id.
                    format: uuid
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GlobalRemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: getGlobalIssuer admin
            tags:
                - admin
            x-speakeasy-name-override: getGlobalIssuer
    /admin/remote-session-issuers.getGlobalIssuerDuplicatePreflight:
        get:
            description: |-
                Report the global remote_session_issuers that already describe an upstream issuer URL, so the catalog create and edit forms can warn before curating a second entry for the same authorization server. Requires platform admin.

                Scoped to the global partition only. Tenant issuers naming the same URL are deliberately not reported here — listGlobalIssuerConvergenceCandidates is the surface for those, and it is keyed on a global issuer that already exists.

                The global tier is unique on slug but not on issuer, so nothing prevents a duplicate catalog entry and this warning is the only thing that will catch one. Advisory all the same: it never blocks the write. Matching uses the same canonicalization as the tenant-facing preflights, and an unparseable URL returns no matches rather than an error.
            operationId: adminGetGlobalIssuerDuplicatePreflight
            parameters:
                - allowEmptyValue: true
                  description: The upstream issuer URL being entered (e.g. https://login.linear.app). Empty or unparseable returns no matches.
                  in: query
                  name: issuer
                  schema:
                    description: The upstream issuer URL being entered (e.g. https://login.linear.app). Empty or unparseable returns no matches.
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerDuplicatePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: getGlobalIssuerDuplicatePreflight admin
            tags:
                - admin
            x-speakeasy-name-override: getGlobalIssuerDuplicatePreflight
    /admin/remote-session-issuers.getGlobalIssuerMigratePreflight:
        get:
            description: 'Authoritative impact summary for consolidating a tenant remote_session_issuer onto a global one: the clients that would move, the affected MCP servers, and every blocker (endpoint mismatches, conflicting MCP-server bindings). Also reports how many tenant-owned clients the target already carries, since those permanently block deleting it. Requires platform admin.'
            operationId: adminGetGlobalIssuerMigratePreflight
            parameters:
                - allowEmptyValue: true
                  description: The organization- or project-level remote_session_issuer to migrate away from.
                  in: query
                  name: source_id
                  required: true
                  schema:
                    description: The organization- or project-level remote_session_issuer to migrate away from.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The global remote_session_issuer to migrate onto.
                  in: query
                  name: target_id
                  required: true
                  schema:
                    description: The global remote_session_issuer to migrate onto.
                    format: uuid
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/IssuerMigratePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: getGlobalIssuerMigratePreflight admin
            tags:
                - admin
            x-speakeasy-name-override: getGlobalIssuerMigratePreflight
    /admin/remote-session-issuers.list:
        get:
            description: List global remote_session_issuers. Requires platform admin.
            operationId: adminListGlobalIssuers
            parameters:
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListGlobalRemoteSessionIssuersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: listGlobalIssuers admin
            tags:
                - admin
            x-speakeasy-name-override: listGlobalIssuers
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
    /admin/remote-session-issuers.listGlobalIssuerConvergenceCandidates:
        get:
            description: List the organization- and project-level remote_session_issuers that describe the same upstream authorization server as a given global issuer, and so could be consolidated onto it. Matching is by canonical issuer URL, collapsing trailing-slash and default-port spellings. Each candidate carries its owning organization, the number of clients that would move, and the metadata differences that would block or accompany the migration. Requires platform admin.
            operationId: adminListGlobalIssuerConvergenceCandidates
            parameters:
                - allowEmptyValue: true
                  description: The global remote_session_issuer that candidates would be consolidated onto.
                  in: query
                  name: target_id
                  required: true
                  schema:
                    description: The global remote_session_issuer that candidates would be consolidated onto.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListIssuerConvergenceCandidatesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: listGlobalIssuerConvergenceCandidates admin
            tags:
                - admin
            x-speakeasy-name-override: listGlobalIssuerConvergenceCandidates
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
    /admin/remote-session-issuers.migrateToGlobalIssuer:
        post:
            description: 'Consolidate an organization- or project-level remote_session_issuer onto a global one: re-point every client from the source issuer onto the target, then soft-delete the source. Existing remote sessions are preserved, so no user re-authenticates. The source may belong to any organization; the target must be a global issuer. Both must agree on issuer (compared canonically), token_endpoint, and authorization_endpoint. One source per call. Requires platform admin.'
            operationId: adminMigrateToGlobalIssuer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/MigrateRemoteSessionIssuerRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MigrateRemoteSessionIssuerResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: migrateToGlobalIssuer admin
            tags:
                - admin
            x-speakeasy-name-override: migrateToGlobalIssuer
    /admin/remote-session-issuers.refreshGlobalIssuerMetadata:
        post:
            description: Re-fetch an existing global remote_session_issuer's RFC 8414 metadata document and persist the discovered values. Keyed by issuer id. Only RFC 8414-derived columns are written — endpoints, the *_supported arrays, client_id_metadata_document_supported, and the documentation URLs. Speakeasy behavior and display fields (oidc, passthrough, name, slug, logo, client setup documentation) are left alone. Requires platform admin.
            operationId: adminRefreshGlobalIssuerMetadata
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerRefresh'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: refreshGlobalIssuerMetadata admin
            tags:
                - admin
            x-speakeasy-name-override: refreshGlobalIssuerMetadata
    /admin/remote-session-issuers.updateGlobalIssuer:
        post:
            description: Update a global remote_session_issuer. Requires platform admin.
            operationId: adminUpdateGlobalIssuer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateRemoteSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - admin_auth_header_Authorization: []
            summary: updateGlobalIssuer admin
            tags:
                - admin
            x-speakeasy-name-override: updateGlobalIssuer
    /admin/session.get:
        get:
            tags:
                - admin
            summary: getSession admin
            operationId: adminGetSession
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminSession'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/signupOffers:
        get:
            tags:
                - admin
            summary: listSignupOffers admin
            description: List staff-managed signup offers. Stripe owns all promotion terms.
            operationId: adminListSignupOffers
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSignupOffersResponseBody'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/signupOffers.create:
        post:
            tags:
                - admin
            summary: createSignupOffer admin
            description: Create a disabled signup offer mapped to an exact Stripe promotion code ID.
            operationId: adminCreateSignupOffer
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateSignupOfferRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminSignupOffer'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/signupOffers.update:
        post:
            tags:
                - admin
            summary: updateSignupOffer admin
            description: Edit, enable or disable a signup offer. Existing accepted promotion applications are unchanged.
            operationId: adminUpdateSignupOffer
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateSignupOfferRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminSignupOffer'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/supportCoverage.get:
        get:
            description: 'Observed support coverage for one organization: per-surface evidence for session activity, policy enforcement, identity attribution, token usage and shadow MCP exposure.'
            operationId: adminGetSupportCoverage
            parameters:
                - allowEmptyValue: true
                  description: Organization to report coverage for.
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    description: Organization to report coverage for.
                    type: string
                - allowEmptyValue: true
                  description: Observation window in days.
                  in: query
                  name: window_days
                  schema:
                    default: 30
                    description: Observation window in days.
                    format: int64
                    maximum: 90
                    minimum: 1
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SupportCoverageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getSupportCoverage admin
            tags:
                - admin
            x-speakeasy-name-override: getSupportCoverage
            x-speakeasy-react-hook:
                name: AdminGetSupportCoverage
    /admin/supportMatrix.get:
        get:
            description: Read the shared support catalog and product coverage.
            operationId: adminGetSupportMatrix
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SupportMatrix'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getSupportMatrix admin
            tags:
                - admin
            x-speakeasy-name-override: getSupportMatrix
            x-speakeasy-react-hook:
                name: AdminGetSupportMatrix
    /admin/supportMatrix.update:
        post:
            description: Save coverage against the last read revision; rejects concurrent changes.
            operationId: adminUpdateSupportMatrix
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateSupportMatrixRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SupportMatrix'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: updateSupportMatrix admin
            tags:
                - admin
            x-speakeasy-name-override: updateSupportMatrix
            x-speakeasy-react-hook:
                name: AdminUpdateSupportMatrix
    /admin/trial.changeEndDate:
        post:
            tags:
                - admin
            summary: changeTrialEndDate admin
            description: Sets a running trial's end date to a future instant, shortening or extending it without restarting the trial.
            operationId: adminChangeTrialEndDate
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ChangeTrialEndDateRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/trial.convert:
        post:
            tags:
                - admin
            summary: markEnterpriseTrialConverted admin
            description: Records that an organization's enterprise trial converted to a signed contract.
            operationId: adminMarkEnterpriseTrialConverted
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/MarkEnterpriseTrialConvertedRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MarkEnterpriseTrialConvertedResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/trial.extend:
        post:
            tags:
                - admin
            summary: extendTrial admin
            description: 'Extends a running enterprise trial by adding days to its current end date. Only a running trial can be extended: one that has converted, has been demoted, or has already expired is rejected rather than re-armed.'
            operationId: adminExtendTrial
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ExtendTrialRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/trial.rearm:
        post:
            tags:
                - admin
            summary: rearmTrial admin
            description: 'Puts a demoted enterprise trial back on: restores the organization''s account type and whitelist flag, revives its model provider keys, and gives the trial a fresh run of the given length counted from now. Only a demoted trial can be re-armed; one that has converted or is already running is rejected.'
            operationId: adminRearmTrial
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RearmTrialRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/trial.start:
        post:
            tags:
                - admin
            summary: startTrial admin
            description: 'Starts a new enterprise trial for an organization that has never trialled, or restarts one that has expired without converting or being demoted. Sets the account type, whitelist flag, trial entitlements and a fresh runway counted from now. A running, demoted or converted trial is rejected: those are extend, re-arm and a contract.'
            operationId: adminStartTrial
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/StartTrialRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOrganization'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/upstreamOAuthMigration.organizations:
        get:
            description: Lists every organization the upstream OAuth migration applies to, so staff can check and migrate them one by one.
            operationId: adminListUpstreamOAuthMigrationOrganizations
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminUpstreamOAuthMigrationOrganizations'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: listUpstreamOAuthMigrationOrganizations admin
            tags:
                - admin
            x-speakeasy-name-override: listUpstreamOAuthMigrationOrganizations
    /admin/upstreamOAuthMigration.run:
        post:
            description: 'Migrates one organization''s upstream OAuth configuration: records the server to client associations its configuration proves, then each live credential''s client choice. Idempotent, so it is safe to run again; a server the configuration does not prove is reported and never guessed.'
            operationId: adminRunUpstreamOAuthMigration
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RunUpstreamOAuthMigrationRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminUpstreamOAuthMigrationRun'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: runUpstreamOAuthMigration admin
            tags:
                - admin
            x-speakeasy-name-override: runUpstreamOAuthMigration
    /admin/upstreamOAuthMigration.status:
        get:
            description: Reports where one organization stands in the upstream OAuth migration from a dry run that writes nothing.
            operationId: adminGetUpstreamOAuthMigrationStatus
            parameters:
                - allowEmptyValue: true
                  description: The organization ID.
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    description: The organization ID.
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminUpstreamOAuthMigrationStatus'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - admin_auth_header_Authorization: []
            summary: getUpstreamOAuthMigrationStatus admin
            tags:
                - admin
            x-speakeasy-name-override: getUpstreamOAuthMigrationStatus
    /admin/users.list:
        get:
            tags:
                - admin
            summary: listUsers admin
            description: Staff-only active user discovery.
            operationId: adminListUsers
            parameters:
                - name: q
                  in: query
                  allowEmptyValue: true
                  schema:
                    type: string
                - name: page
                  in: query
                  allowEmptyValue: true
                  schema:
                    type: integer
                    format: int64
                    minimum: 1
                - name: limit
                  in: query
                  allowEmptyValue: true
                  schema:
                    type: integer
                    format: int64
                    minimum: 1
                    maximum: 100
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminListUsersResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /admin/users.organizations.list:
        get:
            tags:
                - admin
            summary: listUserOrganizations admin
            description: Staff-only active user discovery.
            operationId: adminListUserOrganizations
            parameters:
                - name: user_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                - name: page
                  in: query
                  allowEmptyValue: true
                  schema:
                    type: integer
                    format: int64
                    minimum: 1
                - name: limit
                  in: query
                  allowEmptyValue: true
                  schema:
                    type: integer
                    format: int64
                    minimum: 1
                    maximum: 100
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminListUserOrganizationsResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - admin_auth_header_Authorization: []
    /otel/v1/logs:
        post:
            description: Endpoint to receive OTEL logs data from LLM providers and harnesses.
            operationId: uploadLogs
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Encoding applied to the OTLP request body. Supported values are gzip and identity.
                  in: header
                  name: Content-Encoding
                  schema:
                    description: Encoding applied to the OTLP request body. Supported values are gzip and identity.
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: logs otel
            tags:
                - otel
            x-speakeasy-name-override: uploadLogs
            x-speakeasy-react-hook:
                name: UploadOpenTelemetryLogs
    /otel/v1/metrics:
        post:
            description: Endpoint to receive OTEL metrics data from LLM providers and harnesses.
            operationId: uploadMetrics
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Encoding applied to the OTLP request body. Supported values are gzip and identity.
                  in: header
                  name: Content-Encoding
                  schema:
                    description: Encoding applied to the OTLP request body. Supported values are gzip and identity.
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: metrics otel
            tags:
                - otel
            x-speakeasy-name-override: uploadMetrics
            x-speakeasy-react-hook:
                name: UploadOpenTelemetryMetrics
    /otel/v1/traces:
        post:
            description: Endpoint to receive OTEL traces data from LLM providers and harnesses.
            operationId: uploadTraces
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Encoding applied to the OTLP request body. Supported values are gzip and identity.
                  in: header
                  name: Content-Encoding
                  schema:
                    description: Encoding applied to the OTLP request body. Supported values are gzip and identity.
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: traces otel
            tags:
                - otel
            x-speakeasy-name-override: uploadTraces
            x-speakeasy-react-hook:
                name: UploadOpenTelemetryTraces
    /rpc/access.applyDirectoryRoleSetup:
        post:
            description: 'Apply a reviewed bulk setup in one transaction: create the requested new roles and replace each listed source''s role set. New roles get no grants unless grant_set is given, in which case every new role in the batch gets exactly that set. If any item''s version no longer matches, nothing is written and the request returns conflict; preview again. WorkOS role sync for new roles is requested after commit and reported as requested, not done. Creating roles sets up no plugin distribution.'
            operationId: applyDirectoryRoleSetup
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ApplyDirectoryRoleSetupForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApplyDirectoryRoleSetupResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: applyDirectoryRoleSetup access
            tags:
                - access
            x-speakeasy-name-override: applyDirectoryRoleSetup
            x-speakeasy-react-hook:
                name: ApplyDirectoryRoleSetup
                type: mutation
    /rpc/access.createRole:
        post:
            description: Create a new custom role.
            operationId: createRole
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRoleForm'
                required: true
            responses:
                "201":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Role'
                    description: Created response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: createRole access
            tags:
                - access
            x-speakeasy-name-override: createRole
            x-speakeasy-react-hook:
                name: CreateRole
    /rpc/access.deleteDirectoryRoleMapping:
        delete:
            description: Remove a directory role mapping.
            operationId: deleteDirectoryRoleMapping
            parameters:
                - allowEmptyValue: true
                  description: The ID of the mapping to remove.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the mapping to remove.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: deleteDirectoryRoleMapping access
            tags:
                - access
            x-speakeasy-name-override: deleteDirectoryRoleMapping
            x-speakeasy-react-hook:
                name: DeleteDirectoryRoleMapping
                type: mutation
    /rpc/access.deleteRole:
        delete:
            description: Delete a custom role (system roles cannot be deleted).
            operationId: deleteRole
            parameters:
                - allowEmptyValue: true
                  description: The ID of the role to delete.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the role to delete.
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: deleteRole access
            tags:
                - access
            x-speakeasy-name-override: deleteRole
            x-speakeasy-react-hook:
                name: DeleteRole
    /rpc/access.explainResourceAccess:
        get:
            description: 'Explain whether one organization member can connect to, view, and manage one resource, and which rules decide it. The decision comes from the same evaluation as runtime enforcement. A gateway is refused: nothing checks access on its own id, so check each server it fronts instead. Like listIdentityAccess it describes one person''s access, so it takes a session only: API keys are not checked against grants and would see any member''s rules.'
            operationId: explainResourceAccess
            parameters:
                - allowEmptyValue: true
                  description: The kind of resource to explain.
                  in: query
                  name: resource_kind
                  required: true
                  schema:
                    description: The kind of resource to explain.
                    enum:
                        - mcp
                    type: string
                - allowEmptyValue: true
                  description: The resource to explain.
                  in: query
                  name: resource_id
                  required: true
                  schema:
                    description: The resource to explain.
                    type: string
                - allowEmptyValue: true
                  description: The organization member whose access to explain.
                  in: query
                  name: user_id
                  required: true
                  schema:
                    description: The organization member whose access to explain.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ExplainResourceAccessResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: explainResourceAccess access
            tags:
                - access
            x-speakeasy-name-override: explainResourceAccess
            x-speakeasy-react-hook:
                name: ExplainResourceAccess
    /rpc/access.getDirectoryReviewSettings:
        get:
            description: 'Get the organization''s directory review settings: whether its admins are emailed when directory changes are waiting for a decision.'
            operationId: getDirectoryReviewSettings
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DirectoryReviewSettings'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: getDirectoryReviewSettings access
            tags:
                - access
            x-speakeasy-name-override: getDirectoryReviewSettings
            x-speakeasy-react-hook:
                name: DirectoryReviewSettings
    /rpc/access.getRole:
        get:
            description: Get a role by ID.
            operationId: getRole
            parameters:
                - allowEmptyValue: true
                  description: The ID of the role.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the role.
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Role'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: getRole access
            tags:
                - access
            x-speakeasy-name-override: getRole
            x-speakeasy-react-hook:
                name: Role
    /rpc/access.getShadowMCPInventoryServer:
        get:
            description: Get one project-scoped Shadow MCP server inventory URL with usage and policy-bypass state. Requires an authenticated session authorized for org:admin on the active organization.
            operationId: getShadowMCPInventoryServer
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: project_id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Shadow MCP server slug to inspect.
                  in: query
                  name: server_slug
                  required: true
                  schema:
                    description: Shadow MCP server slug to inspect.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ShadowMCPInventoryServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getShadowMCPInventoryServer access
            tags:
                - access
            x-speakeasy-name-override: getShadowMCPInventoryServer
            x-speakeasy-react-hook:
                name: ShadowMCPInventoryServer
    /rpc/access.listAIDetectionUsers:
        get:
            description: 'List the enrolled users one detected AI tool was found for, each with their devices, signals, versions and first and last sightings: the evidence listEmployeeAIDetections gives per tool for one person, expanded the other way round. Org-scoped like listAIDetections and, like it, requires an authenticated session authorized for org:admin on the active organization. Linked alias emails are folded to the canonical identity, so one person is one row. A target with no detections in the organization is not_found.'
            operationId: listAIDetectionUsers
            parameters:
                - allowEmptyValue: true
                  description: Id of the detection target to expand. Accepted exactly as agents report it, under the same length bound the scan-report ingest stores it with, so every id in the inventory can be expanded.
                  in: query
                  name: target_id
                  required: true
                  schema:
                    description: Id of the detection target to expand. Accepted exactly as agents report it, under the same length bound the scan-report ingest stores it with, so every id in the inventory can be expanded.
                    maxLength: 64
                    minLength: 1
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAIDetectionUsersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listAIDetectionUsers access
            tags:
                - access
            x-speakeasy-name-override: listAIDetectionUsers
            x-speakeasy-react-hook:
                name: AIDetectionUsers
    /rpc/access.listAIDetections:
        get:
            description: List AI tools detected on enrolled devices by device-agent AI scans, aggregated per detection target across the organization. Org-scoped — detections attach to devices and enrolled users, not projects. Requires an authenticated session authorized for org:admin on the active organization. Each row carries the organization's gateway access decision for that tool. Display names and categories are decorated from the server's detection target catalog at read time; targets the catalog does not know are listed under their raw reported id.
            operationId: listAIDetections
            parameters:
                - allowEmptyValue: true
                  description: Filter to detection targets of one category.
                  in: query
                  name: category
                  schema:
                    description: Filter to detection targets of one category.
                    enum:
                        - harness
                        - assistant
                        - local_model
                    type: string
                - allowEmptyValue: true
                  description: Filter to detections attributed to active members of this SCIM directory group. A group with no active members yields an empty list.
                  in: query
                  name: directory_group_id
                  schema:
                    description: Filter to detections attributed to active members of this SCIM directory group. A group with no active members yields an empty list.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAIDetectionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listAIDetections access
            tags:
                - access
            x-speakeasy-name-override: listAIDetections
            x-speakeasy-react-hook:
                name: AIDetections
    /rpc/access.listAudienceOptions:
        get:
            description: 'List the principals that can be given access: everyone, roles, people, and agents.'
            operationId: listAudienceOptions
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAudienceOptionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listAudienceOptions access
            tags:
                - access
            x-speakeasy-name-override: listAudienceOptions
            x-speakeasy-react-hook:
                name: AudienceOptions
    /rpc/access.listChallengeBuckets:
        get:
            description: List authz challenges grouped into time-based burst buckets. Consecutive challenges with the same dimensions within a 10-minute window are collapsed into a single bucket.
            operationId: listChallengeBuckets
            parameters:
                - allowEmptyValue: true
                  description: Filter by outcome.
                  in: query
                  name: outcome
                  schema:
                    description: Filter by outcome.
                    enum:
                        - allow
                        - deny
                    type: string
                - allowEmptyValue: true
                  description: Filter by principal URN.
                  in: query
                  name: principal_urn
                  schema:
                    description: Filter by principal URN.
                    type: string
                - allowEmptyValue: true
                  description: Filter by scope.
                  in: query
                  name: scope
                  schema:
                    description: Filter by scope.
                    type: string
                - allowEmptyValue: true
                  description: Filter to a specific project.
                  in: query
                  name: project_id
                  schema:
                    description: Filter to a specific project.
                    type: string
                - allowEmptyValue: true
                  description: Filter by resolution state. True = only resolved, false = only unresolved.
                  in: query
                  name: resolved
                  schema:
                    description: Filter by resolution state. True = only resolved, false = only unresolved.
                    type: boolean
                - allowEmptyValue: true
                  description: Maximum number of buckets to return.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: Maximum number of buckets to return.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Number of buckets to skip.
                  in: query
                  name: offset
                  schema:
                    default: 0
                    description: Number of buckets to skip.
                    format: int64
                    minimum: 0
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListChallengeBucketsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listChallengeBuckets access
            tags:
                - access
            x-speakeasy-name-override: listChallengeBuckets
            x-speakeasy-react-hook:
                name: ChallengeBuckets
    /rpc/access.listChallenges:
        get:
            description: List authz challenge events from ClickHouse, enriched with resolution state from PostgreSQL.
            operationId: listChallenges
            parameters:
                - allowEmptyValue: true
                  description: Filter by outcome.
                  in: query
                  name: outcome
                  schema:
                    description: Filter by outcome.
                    enum:
                        - allow
                        - deny
                    type: string
                - allowEmptyValue: true
                  description: Filter by principal URN.
                  in: query
                  name: principal_urn
                  schema:
                    description: Filter by principal URN.
                    type: string
                - allowEmptyValue: true
                  description: Filter by scope.
                  in: query
                  name: scope
                  schema:
                    description: Filter by scope.
                    type: string
                - allowEmptyValue: true
                  description: Filter to a specific project.
                  in: query
                  name: project_id
                  schema:
                    description: Filter to a specific project.
                    type: string
                - allowEmptyValue: true
                  description: Filter by resolution state. True = only resolved, false = only unresolved.
                  in: query
                  name: resolved
                  schema:
                    description: Filter by resolution state. True = only resolved, false = only unresolved.
                    type: boolean
                - allowEmptyValue: true
                  description: Fetch specific challenges by ID. When set, other filters and pagination are ignored.
                  in: query
                  name: ids
                  schema:
                    description: Fetch specific challenges by ID. When set, other filters and pagination are ignored.
                    items:
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Inclusive start of the window to list challenges from. Omit for the whole history.
                  in: query
                  name: from
                  schema:
                    description: Inclusive start of the window to list challenges from. Omit for the whole history.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Exclusive end of the window to list challenges from. Omit for the whole history.
                  in: query
                  name: to
                  schema:
                    description: Exclusive end of the window to list challenges from. Omit for the whole history.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Maximum number of results to return.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: Maximum number of results to return.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Number of results to skip.
                  in: query
                  name: offset
                  schema:
                    default: 0
                    description: Number of results to skip.
                    format: int64
                    minimum: 0
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListChallengesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listChallenges access
            tags:
                - access
            x-speakeasy-name-override: listChallenges
            x-speakeasy-react-hook:
                name: Challenges
    /rpc/access.listDirectoryPeople:
        get:
            description: List every live directory profile in the active organization with its name, groups and whether it belongs to a member. Requires an authenticated session authorized for org:admin, because it names people who are not members; API keys cannot enumerate it. Attribute values are not returned.
            operationId: listDirectoryPeople
            parameters:
                - allowEmptyValue: true
                  description: Maximum number of people to return.
                  in: query
                  name: limit
                  schema:
                    default: 500
                    description: Maximum number of people to return.
                    format: int64
                    maximum: 1000
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Cursor for the next page of results.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of results.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDirectoryPeopleResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listDirectoryPeople access
            tags:
                - access
            x-speakeasy-name-override: listDirectoryPeople
            x-speakeasy-react-hook:
                name: DirectoryPeople
    /rpc/access.listDirectoryReviewItems:
        get:
            description: 'List the directory changes waiting for an admin decision, oldest first: a directory group first seen after review started, with no mapping; a new value of an attribute key that already has mappings; and a mapped group or attribute value that has gone from the directory. Each item carries the same proposal and version as previewDirectoryRoleSetup, for resolveDirectoryReviewItem. Nothing is written.'
            operationId: listDirectoryReviewItems
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDirectoryReviewItemsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listDirectoryReviewItems access
            tags:
                - access
            x-speakeasy-name-override: listDirectoryReviewItems
            x-speakeasy-react-hook:
                name: DirectoryReviewItems
    /rpc/access.listDirectoryRoleMappings:
        get:
            description: List the organization's directory groups and attribute values, and the roles mapped to them.
            operationId: listDirectoryRoleMappings
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDirectoryRoleMappingsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listDirectoryRoleMappings access
            tags:
                - access
            x-speakeasy-name-override: listDirectoryRoleMappings
            x-speakeasy-react-hook:
                name: DirectoryRoleMappings
    /rpc/access.listEmployeeAIDetections:
        get:
            description: List AI tools detected for one enrolled employee in the active organization. The employee email is required so project viewers cannot broaden the request into an organization-wide inventory. Linked alias emails are folded to the canonical identity. Requires project:read on the active project; the access decision on each row carries its state but not who recorded it, when, or why.
            operationId: listEmployeeAIDetections
            parameters:
                - allowEmptyValue: true
                  description: Canonical enrolled-employee email to list detections for.
                  in: query
                  name: user_email
                  required: true
                  schema:
                    description: Canonical enrolled-employee email to list detections for.
                    format: email
                    maxLength: 320
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAIDetectionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listEmployeeAIDetections access
            tags:
                - access
            x-speakeasy-name-override: listEmployeeAIDetections
            x-speakeasy-react-hook:
                name: EmployeeAIDetections
    /rpc/access.listGrants:
        get:
            description: List the current user's effective grants, including inherited role grants.
            operationId: listGrants
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUserGrantsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listGrants access
            tags:
                - access
            x-speakeasy-name-override: listGrants
            x-speakeasy-react-hook:
                name: Grants
    /rpc/access.listIdentityAccess:
        get:
            description: 'List the MCP servers and skills an identity is authorized to reach, through grants on the user or on any role they hold, less any blocking grant that withdraws the same scope. Authorization only: plugin membership decides what a resource is distributed through, not who may use it, so it does not widen this list.'
            operationId: listIdentityAccess
            parameters:
                - allowEmptyValue: true
                  description: The Speakeasy user ID to look up accessible resources for.
                  in: query
                  name: user_id
                  required: true
                  schema:
                    description: The Speakeasy user ID to look up accessible resources for.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListIdentityAccessResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listIdentityAccess access
            tags:
                - access
            x-speakeasy-name-override: listIdentityAccess
            x-speakeasy-react-hook:
                name: IdentityAccess
    /rpc/access.listMembers:
        get:
            description: List all team members with their role assignments.
            operationId: listMembers
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMembersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listMembers access
            tags:
                - access
            x-speakeasy-name-override: listMembers
            x-speakeasy-react-hook:
                name: Members
    /rpc/access.listResourceAudience:
        get:
            description: 'List who can reach one resource: the principals granted or blocked on it, and the organization-wide rules they inherit.'
            operationId: listResourceAudience
            parameters:
                - allowEmptyValue: true
                  description: The kind of resource to describe.
                  in: query
                  name: resource_kind
                  required: true
                  schema:
                    description: The kind of resource to describe.
                    enum:
                        - mcp
                    type: string
                - allowEmptyValue: true
                  description: The resource to describe.
                  in: query
                  name: resource_id
                  required: true
                  schema:
                    description: The resource to describe.
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ResourceAudienceResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listResourceAudience access
            tags:
                - access
            x-speakeasy-name-override: listResourceAudience
            x-speakeasy-react-hook:
                name: ResourceAudience
    /rpc/access.listRoles:
        get:
            description: List all roles for the current organization.
            operationId: listRoles
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRolesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listRoles access
            tags:
                - access
            x-speakeasy-name-override: listRoles
            x-speakeasy-react-hook:
                name: Roles
    /rpc/access.listScopes:
        get:
            description: List all available scopes and their resource types.
            operationId: listScopes
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListScopesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listScopes access
            tags:
                - access
            x-speakeasy-name-override: listScopes
            x-speakeasy-react-hook:
                name: ListScopes
    /rpc/access.listShadowMCPInventory:
        get:
            description: List project-scoped Shadow MCP server inventory composed from observed URLs, telemetry usage, and policy-bypass state. Requires an authenticated session authorized for org:admin on the active organization.
            operationId: listShadowMCPInventory
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: project_id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: limit
                  schema:
                    default: 50
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Cursor for the next page of results.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of results.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListShadowMCPInventoryResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listShadowMCPInventory access
            tags:
                - access
            x-speakeasy-name-override: listShadowMCPInventory
            x-speakeasy-react-hook:
                name: ShadowMCPInventory
    /rpc/access.listShadowMCPInventoryServersForUser:
        get:
            description: List the Shadow MCP servers one person reached, with each server's access state. The inverse of listShadowMCPInventoryUsers, which expands a single server into its users.
            operationId: listShadowMCPInventoryServersForUser
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: project_id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The identifiers to attribute usage to, matched against the reported email or user id. Pass every identifier the subject is known by.
                  in: query
                  name: user_keys
                  required: true
                  schema:
                    description: The identifiers to attribute usage to, matched against the reported email or user id. Pass every identifier the subject is known by.
                    items:
                        type: string
                    maxItems: 200
                    minItems: 1
                    type: array
                - allowEmptyValue: true
                  description: Inclusive start of the window to attribute calls from. Omit for the whole history.
                  in: query
                  name: from
                  schema:
                    description: Inclusive start of the window to attribute calls from. Omit for the whole history.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Exclusive end of the window to attribute calls from. Omit for the whole history.
                  in: query
                  name: to
                  schema:
                    description: Exclusive end of the window to attribute calls from. Omit for the whole history.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: limit
                  schema:
                    default: 50
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListShadowMCPInventoryResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listShadowMCPInventoryServersForUser access
            tags:
                - access
            x-speakeasy-name-override: listShadowMCPInventoryServersForUser
            x-speakeasy-react-hook:
                name: ShadowMCPInventoryServersForUser
    /rpc/access.listShadowMCPInventoryUsers:
        get:
            description: List users with observed telemetry usage for one project-scoped Shadow MCP server URL.
            operationId: listShadowMCPInventoryUsers
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: project_id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Shadow MCP server URL to expand.
                  in: query
                  name: server_url
                  required: true
                  schema:
                    description: Shadow MCP server URL to expand.
                    format: uri
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: limit
                  schema:
                    default: 50
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Cursor for the next page of results.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of results.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListShadowMCPInventoryUsersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listShadowMCPInventoryUsers access
            tags:
                - access
            x-speakeasy-name-override: listShadowMCPInventoryUsers
            x-speakeasy-react-hook:
                name: ShadowMCPInventoryUsers
    /rpc/access.previewDirectoryRoleSetup:
        get:
            description: 'Propose roles for every live directory group and mappable attribute value, for bulk setup. An unmapped source is proposed one role: the live role whose slug matches the source name, or a new role named after the source. A mapped source is listed with its current roles. Nothing is written. Each item carries a version that applyDirectoryRoleSetup checks to detect changes since the preview; the version authorizes nothing.'
            operationId: previewDirectoryRoleSetup
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DirectoryRoleSetupPreviewResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: previewDirectoryRoleSetup access
            tags:
                - access
            x-speakeasy-name-override: previewDirectoryRoleSetup
            x-speakeasy-react-hook:
                name: DirectoryRoleSetupPreview
    /rpc/access.requestAccess:
        post:
            description: Request access to a scope by sending an email notification to organization administrators.
            operationId: requestAccess
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RequestAccessForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RequestAccessResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: requestAccess access
            tags:
                - access
            x-speakeasy-name-override: requestAccess
            x-speakeasy-react-hook:
                name: RequestAccess
                type: mutation
    /rpc/access.resolveChallenge:
        post:
            description: Dismiss one or more denied authz challenges, or atomically add one custom role to the denied user before recording the challenges as resolved.
            operationId: resolveChallenge
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ResolveChallengeForm'
                required: true
            responses:
                "201":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ResolveChallengesResult'
                    description: Created response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: resolveChallenge access
            tags:
                - access
            x-speakeasy-name-override: resolveChallenge
            x-speakeasy-react-hook:
                name: ResolveChallenge
    /rpc/access.resolveDirectoryReviewItem:
        post:
            description: Decide one pending directory review item. approve on a new group or attribute value maps it to the given role set, creating new roles as applyDirectoryRoleSetup does; approve on a missing source removes its mappings. dismiss leaves a new source unmapped, or keeps a missing source's mappings. opt_out_key dismisses a new attribute value and stops raising new values of its key. approve checks version as applyDirectoryRoleSetup does and returns conflict if the source changed. An item that is no longer pending returns conflict.
            operationId: resolveDirectoryReviewItem
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ResolveDirectoryReviewItemForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ResolveDirectoryReviewItemResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: resolveDirectoryReviewItem access
            tags:
                - access
            x-speakeasy-name-override: resolveDirectoryReviewItem
            x-speakeasy-react-hook:
                name: ResolveDirectoryReviewItem
                type: mutation
    /rpc/access.resolveShadowMCPInventoryRequest:
        post:
            description: Review the latest pending Shadow MCP URL request and resolve all pending requests for that URL.
            operationId: resolveShadowMCPInventoryRequest
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ResolveShadowMCPInventoryRequestForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ShadowMCPInventoryURLState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: resolveShadowMCPInventoryRequest access
            tags:
                - access
            x-speakeasy-name-override: resolveShadowMCPInventoryRequest
            x-speakeasy-react-hook:
                name: ResolveShadowMCPInventoryRequest
                type: mutation
    /rpc/access.setAIToolDecision:
        post:
            description: 'Record whether a detected AI tool may reach this organization''s MCP gateway. The decision is organization-level and applies to every server: a blocked tool is refused when it authenticates, so its users see an error their client cannot recover from. Enforcement needs a credential Speakeasy can verify, so a tool that carries no verifiable gateway matcher — one linked only by a self-reported client name, or by nothing at all — cannot be decided on: the request is rejected with bad_request, nothing is recorded, and no summary is returned. An id the organization''s scan target catalog does not know is rejected with not_found. Requires an authenticated session authorized for org:admin on the active organization.'
            operationId: setAIToolDecision
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetAIToolDecisionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SetAIToolDecisionResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: setAIToolDecision access
            tags:
                - access
            x-speakeasy-name-override: setAIToolDecision
            x-speakeasy-react-hook:
                name: SetAIToolDecision
                type: mutation
    /rpc/access.setDirectoryRoleMapping:
        post:
            deprecated: true
            description: Deprecated compatibility endpoint for older dashboard clients. Use setDirectoryRoleMappings. Rejects replacement when the source already grants multiple roles.
            operationId: setDirectoryRoleMapping
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetDirectoryRoleMappingForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DirectoryRoleMapping'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: setDirectoryRoleMapping access
            tags:
                - access
            x-speakeasy-name-override: setDirectoryRoleMapping
            x-speakeasy-react-hook:
                name: SetDirectoryRoleMapping
                type: mutation
    /rpc/access.setDirectoryRoleMappings:
        post:
            description: Replace the full set of roles granted by a directory group or attribute value. An empty role list removes all mappings for the source.
            operationId: setDirectoryRoleMappings
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetDirectoryRoleMappingsForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                items:
                                    $ref: '#/components/schemas/DirectoryRoleMapping'
                                type: array
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: setDirectoryRoleMappings access
            tags:
                - access
            x-speakeasy-name-override: setDirectoryRoleMappings
            x-speakeasy-react-hook:
                name: SetDirectoryRoleMappings
                type: mutation
    /rpc/access.setResourceAudience:
        post:
            description: Replace the rules that name one resource. Organization-wide rules are left untouched.
            operationId: setResourceAudience
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetResourceAudienceForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ResourceAudienceResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: setResourceAudience access
            tags:
                - access
            x-speakeasy-name-override: setResourceAudience
            x-speakeasy-react-hook:
                name: SetResourceAudience
                type: mutation
    /rpc/access.syncDirectoryGroups:
        post:
            description: Fetch the organization's directory groups from WorkOS and save any that are new or changed.
            operationId: syncDirectoryGroups
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SyncDirectoryGroupsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: syncDirectoryGroups access
            tags:
                - access
            x-speakeasy-name-override: syncDirectoryGroups
            x-speakeasy-react-hook:
                name: SyncDirectoryGroups
                type: mutation
    /rpc/access.updateDirectoryReviewSettings:
        post:
            description: Turn the organization's directory review emails on or off. Pending items stay listed in the dashboard either way, and webhooks are unaffected.
            operationId: updateDirectoryReviewSettings
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DirectoryReviewSettings'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DirectoryReviewSettings'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: updateDirectoryReviewSettings access
            tags:
                - access
            x-speakeasy-name-override: updateDirectoryReviewSettings
            x-speakeasy-react-hook:
                name: UpdateDirectoryReviewSettings
                type: mutation
    /rpc/access.updateMemberRoles:
        put:
            description: Update a team member's role assignments.
            operationId: updateMemberRoles
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateMemberRolesForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AccessMember'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: updateMemberRoles access
            tags:
                - access
            x-speakeasy-name-override: updateMemberRoles
            x-speakeasy-react-hook:
                name: UpdateMemberRoles
    /rpc/access.updateRole:
        put:
            description: Update an existing custom role.
            operationId: updateRole
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateRoleForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Role'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: updateRole access
            tags:
                - access
            x-speakeasy-name-override: updateRole
            x-speakeasy-react-hook:
                name: UpdateRole
    /rpc/access.updateShadowMCPInventoryServerName:
        post:
            description: Update or clear the administrator-defined display name for one project-scoped Shadow MCP inventory server URL.
            operationId: updateShadowMCPInventoryServerName
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateShadowMCPInventoryServerNameForm'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateShadowMCPInventoryServerName access
            tags:
                - access
            x-speakeasy-name-override: updateShadowMCPInventoryServerName
            x-speakeasy-react-hook:
                name: UpdateShadowMCPInventoryServerName
                type: mutation
    /rpc/adminAssets.uploadImage:
        post:
            description: Upload a platform-tier image (e.g. a global remote identity provider logo). Requires platform admin.
            operationId: uploadPlatformImage
            parameters:
                - allowEmptyValue: true
                  in: header
                  name: Content-Type
                  required: true
                  schema:
                    type: string
                - allowEmptyValue: true
                  in: header
                  name: Content-Length
                  required: true
                  schema:
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UploadImageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: uploadPlatformImage adminAssets
            tags:
                - adminAssets
            x-speakeasy-name-override: uploadImage
            x-speakeasy-react-hook:
                name: UploadPlatformImage
    /rpc/adminChatAnalysis.getSettings:
        get:
            description: Get the named organization's chat analysis settings. Requires platform admin.
            operationId: getChatAnalysisSettings
            parameters:
                - allowEmptyValue: true
                  description: Organization whose settings to read.
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    description: Organization whose settings to read.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ChatAnalysisSettings'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getSettings adminChatAnalysis
            tags:
                - adminChatAnalysis
            x-speakeasy-name-override: getSettings
            x-speakeasy-react-hook:
                name: ChatAnalysisSettings
    /rpc/adminChatAnalysis.triggerAnalysis:
        post:
            description: Wake the chat analysis coordinator for every project in the named organization, instead of waiting for the periodic sweep. Requires platform admin.
            operationId: triggerChatAnalysis
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/TriggerAnalysisRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminChatAnalysisTriggerResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: triggerAnalysis adminChatAnalysis
            tags:
                - adminChatAnalysis
            x-speakeasy-name-override: triggerAnalysis
            x-speakeasy-react-hook:
                name: TriggerChatAnalysis
    /rpc/adminChatAnalysis.upsertBusinessMemorySettings:
        post:
            description: Create or replace the named organization's business-memory extraction settings. Requires platform admin.
            operationId: upsertBusinessMemoryAnalysisSettings
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertBusinessMemorySettingsRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ChatAnalysisSettings'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: upsertBusinessMemorySettings adminChatAnalysis
            tags:
                - adminChatAnalysis
            x-speakeasy-name-override: upsertBusinessMemorySettings
            x-speakeasy-react-hook:
                name: UpsertBusinessMemoryAnalysisSettings
    /rpc/adminChatAnalysis.upsertWorkUnitsSettings:
        post:
            description: Create or replace the named organization's chat analysis settings. Requires platform admin.
            operationId: upsertChatAnalysisSettings
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertWorkUnitsSettingsRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ChatAnalysisSettings'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: upsertWorkUnitsSettings adminChatAnalysis
            tags:
                - adminChatAnalysis
            x-speakeasy-name-override: upsertWorkUnitsSettings
            x-speakeasy-react-hook:
                name: UpsertChatAnalysisSettings
    /rpc/adminExternalCredentials.createGcpIam:
        post:
            description: Create a platform GCP IAM external credential (organization_id NULL, project_id NULL). Requires platform admin.
            operationId: createGcpIamPlatformCredential
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreatePlatformGcpIamCredentialForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GcpIamCredential'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createGcpIamPlatformCredential adminExternalCredentials
            tags:
                - adminExternalCredentials
            x-speakeasy-name-override: createGcpIam
            x-speakeasy-react-hook:
                name: CreateGcpIamPlatformCredential
    /rpc/adminExternalCredentials.deleteGcpIam:
        delete:
            description: Soft-delete a platform GCP IAM external credential by ID. Requires platform admin.
            operationId: deleteGcpIamPlatformCredential
            parameters:
                - allowEmptyValue: true
                  description: The ID of the credential to delete.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the credential to delete.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteGcpIamPlatformCredential adminExternalCredentials
            tags:
                - adminExternalCredentials
            x-speakeasy-name-override: deleteGcpIam
            x-speakeasy-react-hook:
                name: DeleteGcpIamPlatformCredential
    /rpc/adminExternalCredentials.getGcpIam:
        get:
            description: Get a platform GCP IAM external credential by ID. Requires platform admin.
            operationId: getGcpIamPlatformCredential
            parameters:
                - allowEmptyValue: true
                  description: The ID of the credential to get.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the credential to get.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GcpIamCredential'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getGcpIamPlatformCredential adminExternalCredentials
            tags:
                - adminExternalCredentials
            x-speakeasy-name-override: getGcpIam
            x-speakeasy-react-hook:
                name: GetGcpIamPlatformCredential
    /rpc/adminExternalCredentials.list:
        get:
            description: List the platform external credentials (provider-independent summary). Optionally filter by provider. Requires platform admin.
            operationId: listPlatformExternalCredentials
            parameters:
                - allowEmptyValue: true
                  description: Only return credentials for this provider.
                  in: query
                  name: provider
                  schema:
                    description: Only return credentials for this provider.
                    enum:
                        - aws_iam
                        - gcp_iam
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListExternalCredentialsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listPlatformExternalCredentials adminExternalCredentials
            tags:
                - adminExternalCredentials
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListPlatformExternalCredentials
    /rpc/adminExternalCredentials.updateGcpIam:
        post:
            description: Replace a platform GCP IAM external credential's configuration. Requires platform admin.
            operationId: updateGcpIamPlatformCredential
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateGcpIamPlatformCredentialRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GcpIamCredential'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateGcpIamPlatformCredential adminExternalCredentials
            tags:
                - adminExternalCredentials
            x-speakeasy-name-override: updateGcpIam
            x-speakeasy-react-hook:
                name: UpdateGcpIamPlatformCredential
    /rpc/adminExternalCredentials.verifyGcpIam:
        post:
            description: 'Run a live ''who am I'' probe against a platform GCP IAM credential''s resolved identity and report the effective principal. Ephemeral: nothing is persisted. Requires platform admin.'
            operationId: verifyGcpIamPlatformCredential
            parameters:
                - allowEmptyValue: true
                  description: The ID of the credential to verify.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the credential to verify.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/VerifyPlatformCredentialResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: verifyGcpIamPlatformCredential adminExternalCredentials
            tags:
                - adminExternalCredentials
            x-speakeasy-name-override: verifyGcpIam
            x-speakeasy-react-hook:
                name: VerifyGcpIamPlatformCredential
    /rpc/adminOpenRouterKeys.disableKey:
        post:
            description: Lock down an organization's platform OpenRouter key, upstream and locally. Requires platform admin.
            operationId: disableAdminOpenRouterKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DisableOpenRouterKeyRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOpenRouterKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: disableKey adminOpenRouterKeys
            tags:
                - adminOpenRouterKeys
            x-speakeasy-name-override: disableKey
            x-speakeasy-react-hook:
                name: DisableAdminOpenRouterKey
    /rpc/adminOpenRouterKeys.enableKey:
        post:
            description: Reinstate a disabled platform OpenRouter key, upstream and locally, keeping its recorded credit ceiling. Requires platform admin.
            operationId: enableAdminOpenRouterKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/EnableOpenRouterKeyRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AdminOpenRouterKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: enableKey adminOpenRouterKeys
            tags:
                - adminOpenRouterKeys
            x-speakeasy-name-override: enableKey
            x-speakeasy-react-hook:
                name: EnableAdminOpenRouterKey
    /rpc/adminOpenRouterKeys.getKeyUsage:
        get:
            description: Fetch an organization's live credit usage from OpenRouter for one key. Requires platform admin.
            operationId: getAdminOpenRouterKeyUsage
            parameters:
                - allowEmptyValue: true
                  description: Organization that owns the key.
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    description: Organization that owns the key.
                    type: string
                - allowEmptyValue: true
                  description: Key type to inspect.
                  in: query
                  name: key_type
                  required: true
                  schema:
                    description: Key type to inspect.
                    enum:
                        - chat
                        - internal
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetKeyUsageResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getKeyUsage adminOpenRouterKeys
            tags:
                - adminOpenRouterKeys
            x-speakeasy-name-override: getKeyUsage
            x-speakeasy-react-hook:
                name: AdminOpenRouterKeyUsage
    /rpc/adminOpenRouterKeys.listKeys:
        get:
            description: List every organization's platform OpenRouter keys. Requires platform admin.
            operationId: listAdminOpenRouterKeys
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListKeysResponseBody2'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listKeys adminOpenRouterKeys
            tags:
                - adminOpenRouterKeys
            x-speakeasy-name-override: listKeys
            x-speakeasy-react-hook:
                name: AdminOpenRouterKeys
    /rpc/adminRemoteSessions.createGlobalClient:
        post:
            description: Register a global remote_session_client under an existing global remote_session_issuer. Caller supplies client_id and optional client_secret obtained out-of-band from the upstream issuer. Requires platform admin.
            operationId: createGlobalRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateGlobalRemoteSessionClientForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createGlobalClient adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: createGlobalClient
            x-speakeasy-react-hook:
                name: CreateGlobalRemoteSessionClient
    /rpc/adminRemoteSessions.createGlobalIssuer:
        post:
            description: Create a global remote_session_issuer (project_id NULL, organization_id NULL). Requires platform admin.
            operationId: createGlobalRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRemoteSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createGlobalIssuer adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: createGlobalIssuer
            x-speakeasy-react-hook:
                name: CreateGlobalRemoteSessionIssuer
    /rpc/adminRemoteSessions.deleteGlobalClient:
        delete:
            description: Soft-delete a global remote_session_client. Cascades to the remote_sessions minted against it. Requires platform admin.
            operationId: deleteGlobalRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteGlobalClient adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: deleteGlobalClient
            x-speakeasy-react-hook:
                name: DeleteGlobalRemoteSessionClient
    /rpc/adminRemoteSessions.deleteGlobalIssuer:
        delete:
            description: Soft-delete a global remote_session_issuer. Blocked when any global remote_session_clients still reference it. Requires platform admin.
            operationId: deleteGlobalRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteGlobalIssuer adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: deleteGlobalIssuer
            x-speakeasy-react-hook:
                name: DeleteGlobalRemoteSessionIssuer
    /rpc/adminRemoteSessions.fetchGlobalIssuerMetadata:
        post:
            description: Hit an upstream issuer's RFC 8414 .well-known/oauth-authorization-server document and return a draft suitable for createGlobalIssuer. Keyed by issuer URL; no record need exist and nothing is persisted. Requires platform admin.
            operationId: fetchGlobalRemoteSessionIssuerMetadata
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/FetchIssuerMetadataRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerDraft'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: fetchGlobalIssuerMetadata adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: fetchGlobalIssuerMetadata
            x-speakeasy-react-hook:
                name: FetchGlobalRemoteSessionIssuerMetadata
    /rpc/adminRemoteSessions.getGlobalClient:
        get:
            description: Get a global remote_session_client by id. Requires platform admin.
            operationId: getGlobalRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getGlobalClient adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: getGlobalClient
            x-speakeasy-react-hook:
                name: GlobalRemoteSessionClient
    /rpc/adminRemoteSessions.getGlobalIssuer:
        get:
            description: Get a global remote_session_issuer by id. Requires platform admin.
            operationId: getGlobalRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GlobalRemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getGlobalIssuer adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: getGlobalIssuer
            x-speakeasy-react-hook:
                name: GlobalRemoteSessionIssuer
    /rpc/adminRemoteSessions.getGlobalIssuerDuplicatePreflight:
        get:
            description: |-
                Report the global remote_session_issuers that already describe an upstream issuer URL, so the catalog create and edit forms can warn before curating a second entry for the same authorization server. Requires platform admin.

                Scoped to the global partition only. Tenant issuers naming the same URL are deliberately not reported here — listGlobalIssuerConvergenceCandidates is the surface for those, and it is keyed on a global issuer that already exists.

                The global tier is unique on slug but not on issuer, so nothing prevents a duplicate catalog entry and this warning is the only thing that will catch one. Advisory all the same: it never blocks the write. Matching uses the same canonicalization as the tenant-facing preflights, and an unparseable URL returns no matches rather than an error.
            operationId: getGlobalRemoteSessionIssuerDuplicatePreflight
            parameters:
                - allowEmptyValue: true
                  description: The upstream issuer URL being entered (e.g. https://login.linear.app). Empty or unparseable returns no matches.
                  in: query
                  name: issuer
                  schema:
                    description: The upstream issuer URL being entered (e.g. https://login.linear.app). Empty or unparseable returns no matches.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerDuplicatePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getGlobalIssuerDuplicatePreflight adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: getGlobalIssuerDuplicatePreflight
            x-speakeasy-react-hook:
                name: GlobalRemoteSessionIssuerDuplicatePreflight
    /rpc/adminRemoteSessions.getGlobalIssuerMigratePreflight:
        get:
            description: 'Authoritative impact summary for consolidating a tenant remote_session_issuer onto a global one: the clients that would move, the affected MCP servers, and every blocker (endpoint mismatches, conflicting MCP-server bindings). Also reports how many tenant-owned clients the target already carries, since those permanently block deleting it. Requires platform admin.'
            operationId: getGlobalRemoteSessionIssuerMigratePreflight
            parameters:
                - allowEmptyValue: true
                  description: The organization- or project-level remote_session_issuer to migrate away from.
                  in: query
                  name: source_id
                  required: true
                  schema:
                    description: The organization- or project-level remote_session_issuer to migrate away from.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The global remote_session_issuer to migrate onto.
                  in: query
                  name: target_id
                  required: true
                  schema:
                    description: The global remote_session_issuer to migrate onto.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/IssuerMigratePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getGlobalIssuerMigratePreflight adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: getGlobalIssuerMigratePreflight
            x-speakeasy-react-hook:
                name: GlobalRemoteSessionIssuerMigratePreflight
    /rpc/adminRemoteSessions.listGlobalClients:
        get:
            description: List the global remote_session_clients registered with a global remote_session_issuer. Requires platform admin.
            operationId: listGlobalRemoteSessionClients
            parameters:
                - allowEmptyValue: true
                  description: The global remote_session_issuer id to list clients for.
                  in: query
                  name: remote_session_issuer_id
                  required: true
                  schema:
                    description: The global remote_session_issuer id to list clients for.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRemoteSessionClientsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listGlobalClients adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: listGlobalClients
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: GlobalRemoteSessionClients
    /rpc/adminRemoteSessions.listGlobalIssuerConvergenceCandidates:
        get:
            description: List the organization- and project-level remote_session_issuers that describe the same upstream authorization server as a given global issuer, and so could be consolidated onto it. Matching is by canonical issuer URL, collapsing trailing-slash and default-port spellings. Each candidate carries its owning organization, the number of clients that would move, and the metadata differences that would block or accompany the migration. Requires platform admin.
            operationId: listGlobalRemoteSessionIssuerConvergenceCandidates
            parameters:
                - allowEmptyValue: true
                  description: The global remote_session_issuer that candidates would be consolidated onto.
                  in: query
                  name: target_id
                  required: true
                  schema:
                    description: The global remote_session_issuer that candidates would be consolidated onto.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListIssuerConvergenceCandidatesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listGlobalIssuerConvergenceCandidates adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: listGlobalIssuerConvergenceCandidates
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: GlobalRemoteSessionIssuerConvergenceCandidates
    /rpc/adminRemoteSessions.listGlobalIssuers:
        get:
            description: List global remote_session_issuers. Requires platform admin.
            operationId: listGlobalRemoteSessionIssuers
            parameters:
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListGlobalRemoteSessionIssuersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listGlobalIssuers adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: listGlobalIssuers
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: GlobalRemoteSessionIssuers
    /rpc/adminRemoteSessions.migrateToGlobalIssuer:
        post:
            description: 'Consolidate an organization- or project-level remote_session_issuer onto a global one: re-point every client from the source issuer onto the target, then soft-delete the source. Existing remote sessions are preserved, so no user re-authenticates. The source may belong to any organization; the target must be a global issuer. Both must agree on issuer (compared canonically), token_endpoint, and authorization_endpoint. One source per call. Requires platform admin.'
            operationId: migrateToGlobalRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/MigrateRemoteSessionIssuerRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MigrateRemoteSessionIssuerResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: migrateToGlobalIssuer adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: migrateToGlobalIssuer
            x-speakeasy-react-hook:
                name: MigrateToGlobalRemoteSessionIssuer
    /rpc/adminRemoteSessions.refreshGlobalIssuerMetadata:
        post:
            description: Re-fetch an existing global remote_session_issuer's RFC 8414 metadata document and persist the discovered values. Keyed by issuer id. Only RFC 8414-derived columns are written — endpoints, the *_supported arrays, client_id_metadata_document_supported, and the documentation URLs. Speakeasy behavior and display fields (oidc, passthrough, name, slug, logo, client setup documentation) are left alone. Requires platform admin.
            operationId: refreshGlobalRemoteSessionIssuerMetadata
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerRefresh'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: refreshGlobalIssuerMetadata adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: refreshGlobalIssuerMetadata
            x-speakeasy-react-hook:
                name: RefreshGlobalRemoteSessionIssuerMetadata
    /rpc/adminRemoteSessions.updateGlobalClient:
        post:
            description: Rotate the client_secret or change non-issuer settings on a global remote_session_client. Requires platform admin.
            operationId: updateGlobalRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateGlobalRemoteSessionClientForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateGlobalClient adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: updateGlobalClient
            x-speakeasy-react-hook:
                name: UpdateGlobalRemoteSessionClient
    /rpc/adminRemoteSessions.updateGlobalIssuer:
        post:
            description: Update a global remote_session_issuer. Requires platform admin.
            operationId: updateGlobalRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateRemoteSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateGlobalIssuer adminRemoteSessions
            tags:
                - adminRemoteSessions
            x-speakeasy-name-override: updateGlobalIssuer
            x-speakeasy-react-hook:
                name: UpdateGlobalRemoteSessionIssuer
    /rpc/agent.createSessionHandoff:
        post:
            description: 'Mint a short-lived capability URL for a rendered session-handoff document (session portability). The device agent uploads the handoff it rendered from the local transcript; the returned URL serves the markdown exactly once (burn-after-read) until expiry, so a cloud agent or another machine can continue the session. Content transits the server only for this purpose and stops being served at first read or expiry, whichever comes first. Requires a per-user key: the fleet-shared org install key is refused because minting a fetch-by-token URL for uploaded content is a per-user, content-bearing surface (the same DNO-383 blast-radius rule as getSessionMeta).'
            operationId: createAgentSessionHandoff
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Hardware serial number of the machine minting the link, when the agent can read it.
                  in: header
                  name: Gram-Device-Serial
                  schema:
                    description: Hardware serial number of the machine minting the link, when the agent can read it.
                    type: string
                - allowEmptyValue: true
                  description: Hostname of the machine minting the link, when the agent can read it.
                  in: header
                  name: Gram-Device-Hostname
                  schema:
                    description: Hostname of the machine minting the link, when the agent can read it.
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateSessionHandoffRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreateSessionHandoffResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
            summary: createSessionHandoff agent
            tags:
                - agent
            x-speakeasy-name-override: createSessionHandoff
            x-speakeasy-react-hook:
                name: CreateAgentSessionHandoff
    /rpc/agent.deleteAiScanTarget:
        post:
            description: Remove a target the organization added, or clear the row a built-in carries so it returns to having no recorded decision. A built-in itself cannot be removed here; it leaves the list only by leaving Speakeasy's catalog. Requires a session with the org:admin scope.
            operationId: deleteAiScanTarget
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DeleteAiScanTargetRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeleteAiScanTargetResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteAiScanTarget agent
            tags:
                - agent
            x-speakeasy-name-override: deleteAiScanTarget
            x-speakeasy-react-hook:
                name: DeleteAiScanTarget
    /rpc/agent.getConfiguration:
        get:
            description: Get the organization-wide device-agent configuration for the dashboard. Requires a session with the org:admin scope. An unconfigured organization returns an empty document with is_configured=false; enrolled agents do not receive a remote layer until an administrator saves one.
            operationId: getDeviceAgentConfiguration
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeviceAgentConfiguration'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getConfiguration agent
            tags:
                - agent
            x-speakeasy-name-override: getConfiguration
            x-speakeasy-react-hook:
                name: DeviceAgentConfiguration
    /rpc/agent.getPlugins:
        get:
            description: Resolve the marketplaces, plugins, and optional organization configuration assigned to the enrolled user. The device agent reconciles these into the AI developer tools it manages. Organization configuration is delivered on this existing poll so agents do not need a second control-plane request.
            operationId: getAgentPlugins
            parameters:
                - allowEmptyValue: true
                  description: 'Deprecated: the vouched email as the `?email=` query parameter, sent by agents predating the Gram-User-Email header. Used only when the header is absent.'
                  example: dev@acme.corp
                  in: query
                  name: email
                  schema:
                    description: 'Deprecated: the vouched email as the `?email=` query parameter, sent by agents predating the Gram-User-Email header. Used only when the header is absent.'
                    example: dev@acme.corp
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Email address of the enrolled user, sent in the Gram-User-Email header. Required when authenticating with an org-scoped agent install key (the MDM zero-touch path); ignored for a per-user key, whose owner is the enrolled user.
                  example: dev@acme.corp
                  in: header
                  name: Gram-User-Email
                  schema:
                    description: Email address of the enrolled user, sent in the Gram-User-Email header. Required when authenticating with an org-scoped agent install key (the MDM zero-touch path); ignored for a per-user key, whose owner is the enrolled user.
                    example: dev@acme.corp
                    type: string
                - allowEmptyValue: true
                  description: Hardware serial number of the machine the agent runs on, when it can be read. Lets device coverage attest this specific machine rather than its assigned user.
                  example: C02XK1ABCDEF
                  in: header
                  name: Gram-Device-Serial
                  schema:
                    description: Hardware serial number of the machine the agent runs on, when it can be read. Lets device coverage attest this specific machine rather than its assigned user.
                    example: C02XK1ABCDEF
                    type: string
                - allowEmptyValue: true
                  description: Hostname of the machine the agent runs on, when it can be read.
                  example: dev-macbook-pro
                  in: header
                  name: Gram-Device-Hostname
                  schema:
                    description: Hostname of the machine the agent runs on, when it can be read.
                    example: dev-macbook-pro
                    type: string
                - allowEmptyValue: true
                  description: 'What kind of machine the agent runs on: `endpoint` (the default when omitted) for an end-user device of any form factor, `ephemeral` for a short-lived cloud sandbox or container, or `server` for a long-running shared host. Lets coverage distinguish a developer''s machine from a cloud session, which reports no hardware serial and a generic hostname. An unrecognized value is treated as `endpoint`.'
                  example: ephemeral
                  in: header
                  name: Gram-Device-Environment
                  schema:
                    description: 'What kind of machine the agent runs on: `endpoint` (the default when omitted) for an end-user device of any form factor, `ephemeral` for a short-lived cloud sandbox or container, or `server` for a long-running shared host. Lets coverage distinguish a developer''s machine from a cloud session, which reports no hardware serial and a generic hostname. An unrecognized value is treated as `endpoint`.'
                    example: ephemeral
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetPluginsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - device_agent_token_header_Authorization: []
                - apikey_header_Gram-Key: []
            summary: getPlugins agent
            tags:
                - agent
            x-speakeasy-name-override: getPlugins
            x-speakeasy-react-hook:
                name: AgentPlugins
    /rpc/agent.getSessionMeta:
        get:
            description: 'Resolve display metadata (Speakeasy chat id, generated title, last activity) for captured agent sessions the calling user owns. Used by the device agent''s session picker to overlay server-generated titles on locally discovered transcripts; unknown or non-owned session ids are silently omitted, so the picker degrades gracefully. Requires a per-user key: the fleet-shared org install key is refused because session metadata is per-user data.'
            operationId: getAgentSessionMeta
            parameters:
                - allowEmptyValue: true
                  description: Native harness session identifiers (e.g. Claude Code session UUIDs, Codex rollout ids) to resolve. Speakeasy derives its chat ids from these the same way hook ingest does.
                  in: query
                  name: session_ids
                  required: true
                  schema:
                    description: Native harness session identifiers (e.g. Claude Code session UUIDs, Codex rollout ids) to resolve. Speakeasy derives its chat ids from these the same way hook ingest does.
                    items:
                        type: string
                    maxItems: 50
                    type: array
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetSessionMetaResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
            summary: getSessionMeta agent
            tags:
                - agent
            x-speakeasy-name-override: getSessionMeta
            x-speakeasy-react-hook:
                name: AgentSessionMeta
    /rpc/agent.listAiScanTargets:
        get:
            description: 'List the Shadow AI scan targets this organization''s device agents probe for: the Speakeasy built-ins plus the organization''s own additions, with the catalog version agents echo on scan receipts. Everything listed is probed for; a built-in leaves the list by leaving Speakeasy''s catalog, an organization target by being deleted. Requires a session with the org:admin scope.'
            operationId: listAiScanTargets
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAiScanTargetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listAiScanTargets agent
            tags:
                - agent
            x-speakeasy-name-override: listAiScanTargets
            x-speakeasy-react-hook:
                name: AiScanTargets
    /rpc/agent.listSyncedUsers:
        get:
            description: List users in the current organization who are actively running the Speakeasy device agent, attributed by the email each agent reports on sync. Dashboard-only; requires an org admin session.
            operationId: listSyncedAgentUsers
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSyncedUsersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listSyncedUsers agent
            tags:
                - agent
            x-speakeasy-name-override: listSyncedUsers
            x-speakeasy-react-hook:
                name: SyncedAgentUsers
    /rpc/agent.reportAIScan:
        post:
            description: 'Report the result of a device-agent AI scan: which AI tools from the served scan target catalog (or the list embedded in the agent as a fallback) were found installed or running on the device. A scan with zero matches still reports, so organizations can prove a device was scanned and came back clean. Accepts both the per-user key and the org install key (with a vouched email), mirroring getPlugins, because fleet devices must be able to report scans. Fire-and-forget from the agent''s perspective: the daemon must never block on this call.'
            operationId: reportAgentAIScan
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Email of the enrolled user, sent in the Gram-User-Email header. Authoritative when authenticating with an org-scoped agent install key (the MDM zero-touch path); ignored for a per-user key, whose owner is the enrolled user.
                  in: header
                  name: Gram-User-Email
                  schema:
                    description: Email of the enrolled user, sent in the Gram-User-Email header. Authoritative when authenticating with an org-scoped agent install key (the MDM zero-touch path); ignored for a per-user key, whose owner is the enrolled user.
                    type: string
                - allowEmptyValue: true
                  description: Hardware serial number of the machine that was scanned, when the agent can read it.
                  in: header
                  name: Gram-Device-Serial
                  schema:
                    description: Hardware serial number of the machine that was scanned, when the agent can read it.
                    type: string
                - allowEmptyValue: true
                  description: Hostname of the machine that was scanned, when the agent can read it.
                  in: header
                  name: Gram-Device-Hostname
                  schema:
                    description: Hostname of the machine that was scanned, when the agent can read it.
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ReportAIScanRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
            summary: reportAIScan agent
            tags:
                - agent
            x-speakeasy-name-override: reportAIScan
            x-speakeasy-react-hook:
                name: ReportAgentAIScan
    /rpc/agent.reportSessionMoved:
        post:
            description: 'Record that a captured agent session was moved to another harness on a device (session portability). Carries no session content — only the session identity, the target harness, and device attribution — and lands as a chat_session:move audit event so organizations retain governance visibility over local-first moves. Accepts both the per-user key and the org install key (with a vouched email), mirroring getPlugins, because fleet devices must be able to report moves. Fire-and-forget from the agent''s perspective: the daemon must never fail a move because this call failed.'
            operationId: reportAgentSessionMoved
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Hardware serial number of the machine the move happened on, when the agent can read it.
                  in: header
                  name: Gram-Device-Serial
                  schema:
                    description: Hardware serial number of the machine the move happened on, when the agent can read it.
                    type: string
                - allowEmptyValue: true
                  description: Hostname of the machine the move happened on, when the agent can read it.
                  in: header
                  name: Gram-Device-Hostname
                  schema:
                    description: Hostname of the machine the move happened on, when the agent can read it.
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ReportSessionMovedRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
            summary: reportSessionMoved agent
            tags:
                - agent
            x-speakeasy-name-override: reportSessionMoved
            x-speakeasy-react-hook:
                name: ReportAgentSessionMoved
    /rpc/agent.updateConfiguration:
        post:
            description: Create or replace the organization-wide, non-secret device-agent configuration. Requires a session with the org:admin scope. Known settings are replaced wholesale — omitting one removes it — while stored keys this server does not recognize are preserved for forward compatibility; identity and credential keys are rejected.
            operationId: updateDeviceAgentConfiguration
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateConfigurationRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeviceAgentConfiguration'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateConfiguration agent
            tags:
                - agent
            x-speakeasy-name-override: updateConfiguration
            x-speakeasy-react-hook:
                name: UpdateDeviceAgentConfiguration
    /rpc/agent.upsertAiScanTarget:
        post:
            description: 'Add a scan target for this organization or replace one it added earlier. Built-in targets are system-supplied and read-only: a write under a built-in''s id is accepted only when it carries that built-in''s definition unchanged. Every field is a full replacement except gateway_client, which an existing target keeps when the field is omitted, so a write need not restate the target''s matchers; sending gateway_client with empty lists still clears them. Clearing a target''s last verifiable matcher also clears any access decision recorded about it, since nothing could enforce it any more; the organization decides again once the target can be recognized at the gateway. Agents pick the change up on their next policy poll. Requires a session with the org:admin scope.'
            operationId: upsertAiScanTarget
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertAiScanTargetRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AiScanTargetMutationResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: upsertAiScanTarget agent
            tags:
                - agent
            x-speakeasy-name-override: upsertAiScanTarget
            x-speakeasy-react-hook:
                name: UpsertAiScanTarget
    /rpc/agents.create:
        post:
            operationId: createAgent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateAgentForm'
                required: true
            responses:
                "201":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ManagedAgent'
                    description: Created response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: create agents
            tags:
                - agents
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateAgent
    /rpc/agents.createPolicyGrant:
        post:
            operationId: createAgentPolicyGrant
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateAgentPolicyGrantForm'
                required: true
            responses:
                "201":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AgentPolicyGrant'
                    description: Created response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createPolicyGrant agents
            tags:
                - agents
            x-speakeasy-name-override: createPolicyGrant
    /rpc/agents.delete:
        post:
            operationId: deleteAgent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AgentIDForm'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: delete agents
            tags:
                - agents
            x-speakeasy-name-override: delete
    /rpc/agents.deletePolicyGrant:
        post:
            operationId: deleteAgentPolicyGrant
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AgentPolicyGrantIDForm'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deletePolicyGrant agents
            tags:
                - agents
            x-speakeasy-name-override: deletePolicyGrant
    /rpc/agents.get:
        get:
            operationId: getAgent
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ManagedAgent'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: get agents
            tags:
                - agents
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: Agent
    /rpc/agents.list:
        get:
            operationId: listAgents
            parameters:
                - allowEmptyValue: true
                  description: Cursor for the next page of agents.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of agents.
                    type: string
                - allowEmptyValue: true
                  description: The number of agents to return per page.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: The number of agents to return per page.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Case-insensitive substring match on the agent name.
                  in: query
                  name: search
                  schema:
                    description: Case-insensitive substring match on the agent name.
                    type: string
                - allowEmptyValue: true
                  description: Name order for the page.
                  in: query
                  name: name_order
                  schema:
                    default: asc
                    description: Name order for the page.
                    enum:
                        - asc
                        - desc
                    type: string
                - allowEmptyValue: true
                  description: Keep only agents in these lifecycle states.
                  in: query
                  name: lifecycle
                  schema:
                    description: Keep only agents in these lifecycle states.
                    items:
                        enum:
                            - active
                            - suspended
                            - revoked
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Keep only agents owned by these users.
                  in: query
                  name: owner_user_ids
                  schema:
                    description: Keep only agents owned by these users.
                    items:
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Keep only agents registered at or after this moment.
                  in: query
                  name: registered_after
                  schema:
                    description: Keep only agents registered at or after this moment.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Keep only agents registered before this moment.
                  in: query
                  name: registered_before
                  schema:
                    description: Keep only agents registered before this moment.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAgentsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: list agents
            tags:
                - agents
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: Agents
    /rpc/agents.listDelegableGrants:
        get:
            description: List safe allow-only credential grant candidates shared by the live agent, owner, and current authorizer. Candidates with unrepresentable exclusions are conservatively omitted. Issuance revalidates every grant.
            operationId: listAgentDelegableGrants
            parameters:
                - allowEmptyValue: true
                  description: First-class agent identifier
                  in: query
                  name: agent_id
                  required: true
                  schema:
                    description: First-class agent identifier
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: 'Optional MCP authorization resource identifier: the toolset ID when present, otherwise the MCP server ID. Narrows discovery to this server and its project before evaluating exclusions.'
                  in: query
                  name: toolset_id
                  schema:
                    description: 'Optional MCP authorization resource identifier: the toolset ID when present, otherwise the MCP server ID. Narrows discovery to this server and its project before evaluating exclusions.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional MCP authorization resource identifiers, discovered in one request. Each narrows discovery like toolset_id; the result is the union of candidates across all of them.
                  in: query
                  name: toolset_ids
                  schema:
                    description: Optional MCP authorization resource identifiers, discovered in one request. Each narrows discovery like toolset_id; the result is the union of candidates across all of them.
                    items:
                        format: uuid
                        type: string
                    maxItems: 100
                    type: array
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                items:
                                    $ref: '#/components/schemas/AgentPolicyGrantForm'
                                type: array
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listDelegableGrants agents
            tags:
                - agents
            x-speakeasy-name-override: listDelegableGrants
            x-speakeasy-react-hook:
                name: ListAgentDelegableGrants
    /rpc/agents.listPolicyGrants:
        get:
            operationId: listAgentPolicyGrants
            parameters:
                - allowEmptyValue: true
                  description: First-class agent identifier
                  in: query
                  name: agent_id
                  required: true
                  schema:
                    description: First-class agent identifier
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                items:
                                    $ref: '#/components/schemas/AgentPolicyGrant'
                                type: array
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listPolicyGrants agents
            tags:
                - agents
            x-speakeasy-name-override: listPolicyGrants
    /rpc/agents.listSessions:
        get:
            operationId: listAgentSessions
            parameters:
                - allowEmptyValue: true
                  description: First-class agent identifier
                  in: query
                  name: agent_id
                  required: true
                  schema:
                    description: First-class agent identifier
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: cursor
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: limit
                  schema:
                    default: 50
                    format: int64
                    maximum: 100
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSessionsResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listSessions agents
            tags:
                - agents
            x-speakeasy-name-override: listSessions
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: AgentSessions
    /rpc/agents.reassign:
        post:
            operationId: reassignAgent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AgentOwnerAssignmentForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ManagedAgent'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: reassign agents
            tags:
                - agents
            x-speakeasy-name-override: reassign
            x-speakeasy-react-hook:
                name: ReassignAgent
    /rpc/agents.rename:
        post:
            operationId: renameAgent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RenameAgentForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ManagedAgent'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: rename agents
            tags:
                - agents
            x-speakeasy-name-override: rename
            x-speakeasy-react-hook:
                name: RenameAgent
    /rpc/agents.resume:
        post:
            operationId: resumeAgent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AgentIDForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ManagedAgent'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: resume agents
            tags:
                - agents
            x-speakeasy-name-override: resume
    /rpc/agents.revoke:
        post:
            operationId: revokeAgent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AgentIDForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ManagedAgent'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: revoke agents
            tags:
                - agents
            x-speakeasy-name-override: revoke
    /rpc/agents.revokeSession:
        post:
            operationId: revokeAgentSession
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RevokeSessionRequestBody'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: revokeSession agents
            tags:
                - agents
            x-speakeasy-name-override: revokeSession
            x-speakeasy-react-hook:
                name: RevokeAgentSession
    /rpc/agents.suspend:
        post:
            operationId: suspendAgent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AgentIDForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ManagedAgent'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: suspend agents
            tags:
                - agents
            x-speakeasy-name-override: suspend
    /rpc/agents.transfer:
        post:
            operationId: transferAgent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AgentOwnerAssignmentForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ManagedAgent'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: transfer agents
            tags:
                - agents
            x-speakeasy-name-override: transfer
            x-speakeasy-react-hook:
                name: TransferAgent
    /rpc/agents.updatePolicyGrant:
        post:
            operationId: updateAgentPolicyGrant
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateAgentPolicyGrantForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AgentPolicyGrant'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updatePolicyGrant agents
            tags:
                - agents
            x-speakeasy-name-override: updatePolicyGrant
    /rpc/aiIntegrations.deleteAnthropicInferenceConfig:
        post:
            description: Disconnect the organization Anthropic inference hook and revoke its URL.
            operationId: deleteAnthropicInferenceConfig
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: deleteAnthropicInferenceConfig aiIntegrations
            tags:
                - aiIntegrations
            x-speakeasy-name-override: deleteAnthropicInferenceConfig
            x-speakeasy-react-hook:
                name: DeleteAnthropicInferenceConfig
    /rpc/aiIntegrations.deleteConfig:
        post:
            description: Delete the org-wide AI integration config for a provider.
            operationId: deleteAIIntegrationConfig
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DeleteConfigRequestBody'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: deleteConfig aiIntegrations
            tags:
                - aiIntegrations
            x-speakeasy-name-override: deleteConfig
            x-speakeasy-react-hook:
                name: DeleteAIIntegrationConfig
    /rpc/aiIntegrations.getAnthropicInferenceConfig:
        get:
            description: Get the organization Anthropic inference hook setup.
            operationId: getAnthropicInferenceConfig
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AnthropicInferenceConfig'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: getAnthropicInferenceConfig aiIntegrations
            tags:
                - aiIntegrations
            x-speakeasy-name-override: getAnthropicInferenceConfig
            x-speakeasy-react-hook:
                name: AnthropicInferenceConfig
    /rpc/aiIntegrations.getConfig:
        get:
            description: Get the org-wide AI integration config for a provider. Returns an empty config (enabled=false, has_api_key=false) when none is set.
            operationId: getAIIntegrationConfig
            parameters:
                - allowEmptyValue: true
                  description: AI provider identifier. Supported values include cursor, anthropic_compliance, codex_compliance, and chatgpt_compliance.
                  in: query
                  name: provider
                  required: true
                  schema:
                    description: AI provider identifier. Supported values include cursor, anthropic_compliance, codex_compliance, and chatgpt_compliance.
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AIIntegrationConfig'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: getConfig aiIntegrations
            tags:
                - aiIntegrations
            x-speakeasy-name-override: getConfig
            x-speakeasy-react-hook:
                name: AIIntegrationConfig
    /rpc/aiIntegrations.listSchedules:
        get:
            description: List the sync schedules and their scheduler state for a provider's org-wide AI integration config. Returns an empty list when no config is set.
            operationId: listAIIntegrationSchedules
            parameters:
                - allowEmptyValue: true
                  description: AI provider identifier. Supported values include cursor, anthropic_compliance, codex_compliance, and chatgpt_compliance.
                  in: query
                  name: provider
                  required: true
                  schema:
                    description: AI provider identifier. Supported values include cursor, anthropic_compliance, codex_compliance, and chatgpt_compliance.
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAIIntegrationSchedulesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listSchedules aiIntegrations
            tags:
                - aiIntegrations
            x-speakeasy-name-override: listSchedules
            x-speakeasy-react-hook:
                name: AIIntegrationSchedules
    /rpc/aiIntegrations.retrySchedule:
        post:
            description: Make one sync schedule due immediately, lifting any automatic pause and resetting its failure streak. The scheduler picks it up on its next tick.
            operationId: retryAIIntegrationSchedule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RetryScheduleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AIIntegrationScheduleState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: retrySchedule aiIntegrations
            tags:
                - aiIntegrations
            x-speakeasy-name-override: retrySchedule
            x-speakeasy-react-hook:
                name: RetryAIIntegrationSchedule
    /rpc/aiIntegrations.setScheduleEnabled:
        post:
            description: Enable or disable one sync schedule of a provider's org-wide AI integration config. Disabled schedules are skipped by the poller until re-enabled.
            operationId: setAIIntegrationScheduleEnabled
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetScheduleEnabledRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AIIntegrationScheduleState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: setScheduleEnabled aiIntegrations
            tags:
                - aiIntegrations
            x-speakeasy-name-override: setScheduleEnabled
            x-speakeasy-react-hook:
                name: SetAIIntegrationScheduleEnabled
    /rpc/aiIntegrations.upsertAnthropicInferenceConfig:
        post:
            description: Prepare a webhook URL or update its signing secret and enabled state.
            operationId: upsertAnthropicInferenceConfig
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertAnthropicInferenceConfigRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AnthropicInferenceConfig'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: upsertAnthropicInferenceConfig aiIntegrations
            tags:
                - aiIntegrations
            x-speakeasy-name-override: upsertAnthropicInferenceConfig
            x-speakeasy-react-hook:
                name: UpsertAnthropicInferenceConfig
    /rpc/aiIntegrations.upsertConfig:
        post:
            description: Create or update the org-wide AI integration config for a provider.
            operationId: upsertAIIntegrationConfig
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertConfigRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AIIntegrationConfig'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: upsertConfig aiIntegrations
            tags:
                - aiIntegrations
            x-speakeasy-name-override: upsertConfig
            x-speakeasy-react-hook:
                name: UpsertAIIntegrationConfig
    /rpc/analytics.describe:
        get:
            description: Describe every dataset and the fields it exposes, with the operators and aggregations each admits.
            operationId: analyticsDescribe
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AnalyticsDescribeResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: describe analytics
            tags:
                - analytics
            x-speakeasy-name-override: describe
            x-speakeasy-react-hook:
                name: AnalyticsDescribe
    /rpc/analytics.dimensionValues:
        post:
            description: List the values a dimension holds inside a window, most frequent first, for filter pickers. Values are resolved after the dataset collapses its observations, so every value returned is one a query would match.
            operationId: analyticsDimensionValues
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DimensionValuesRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AnalyticsDimensionValuesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: dimensionValues analytics
            tags:
                - analytics
            x-speakeasy-name-override: dimensionValues
            x-speakeasy-react-hook:
                name: AnalyticsDimensionValues
                type: query
    /rpc/analytics.query:
        post:
            description: 'Run a query against one dataset. Grouped: aggregate over dimensions, optionally bucketed by time. Ungrouped: rows at the dataset''s grain, newest first.'
            operationId: analyticsQuery
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AnalyticsQueryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AnalyticsQueryResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: query analytics
            tags:
                - analytics
            x-speakeasy-name-override: query
            x-speakeasy-react-hook:
                name: AnalyticsQuery
                type: query
    /rpc/assets.createSignedChatAttachmentURL:
        post:
            description: Create a time-limited signed URL to access a chat attachment without authentication.
            operationId: createSignedChatAttachmentURL
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateSignedChatAttachmentURLForm2'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreateSignedChatAttachmentURLResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
                  project_slug_header_Gram-Project: []
            summary: createSignedChatAttachmentURL assets
            tags:
                - assets
            x-speakeasy-name-override: createSignedChatAttachmentURL
            x-speakeasy-react-hook:
                name: CreateSignedChatAttachmentURL
    /rpc/assets.fetchImageFromURL:
        post:
            description: Fetch an image from a URL and upload it to Speakeasy as an image asset.
            operationId: fetchImageFromURL
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/FetchImageFromURLForm2'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UploadImageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: fetchImageFromURL assets
            tags:
                - assets
            x-speakeasy-name-override: fetchImageFromURL
            x-speakeasy-react-hook:
                name: FetchImageFromURL
    /rpc/assets.fetchOpenAPIv3FromURL:
        post:
            description: Fetch an OpenAPI v3 document from a URL and upload it to Speakeasy.
            operationId: fetchOpenAPIv3FromURL
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/FetchOpenAPIv3FromURLForm2'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UploadOpenAPIv3Result'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: fetchOpenAPIv3FromURL assets
            tags:
                - assets
            x-speakeasy-name-override: fetchOpenAPIv3FromURL
            x-speakeasy-react-hook:
                name: FetchOpenAPIv3FromURL
    /rpc/assets.list:
        get:
            description: List all assets for a project.
            operationId: listAssets
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAssetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listAssets assets
            tags:
                - assets
            x-speakeasy-name-override: listAssets
            x-speakeasy-react-hook:
                name: ListAssets
    /rpc/assets.serveChatAttachment:
        get:
            description: Serve a chat attachment from Speakeasy.
            operationId: serveChatAttachment
            parameters:
                - allowEmptyValue: true
                  description: The ID of the attachment to serve
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the attachment to serve
                    type: string
                - allowEmptyValue: true
                  description: The project ID that the attachment belongs to
                  in: query
                  name: project_id
                  required: true
                  schema:
                    description: The project ID that the attachment belongs to
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                format: binary
                                type: string
                    description: OK response.
                    headers:
                        Content-Length:
                            schema:
                                format: int64
                                type: integer
                        Content-Type:
                            schema:
                                type: string
                        Last-Modified:
                            schema:
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
            summary: serveChatAttachment assets
            tags:
                - assets
            x-speakeasy-name-override: serveChatAttachment
            x-speakeasy-react-hook:
                name: serveChatAttachment
    /rpc/assets.serveChatAttachmentSigned:
        get:
            description: Serve a chat attachment using a signed URL token.
            operationId: serveChatAttachmentSigned
            parameters:
                - allowEmptyValue: true
                  description: The signed JWT token
                  in: query
                  name: token
                  required: true
                  schema:
                    description: The signed JWT token
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                format: binary
                                type: string
                    description: OK response.
                    headers:
                        Access-Control-Allow-Origin:
                            schema:
                                type: string
                        Content-Length:
                            schema:
                                format: int64
                                type: integer
                        Content-Type:
                            schema:
                                type: string
                        Last-Modified:
                            schema:
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: serveChatAttachmentSigned assets
            tags:
                - assets
            x-speakeasy-name-override: serveChatAttachmentSigned
            x-speakeasy-react-hook:
                name: serveChatAttachmentSigned
    /rpc/assets.serveFunction:
        get:
            description: Serve a Speakeasy Functions asset from Speakeasy.
            operationId: serveFunction
            parameters:
                - allowEmptyValue: true
                  description: The ID of the asset to serve
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the asset to serve
                    type: string
                - allowEmptyValue: true
                  description: The procect ID that the asset belongs to
                  in: query
                  name: project_id
                  required: true
                  schema:
                    description: The procect ID that the asset belongs to
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                format: binary
                                type: string
                    description: OK response.
                    headers:
                        Content-Length:
                            schema:
                                format: int64
                                type: integer
                        Content-Type:
                            schema:
                                type: string
                        Last-Modified:
                            schema:
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: serveFunction assets
            tags:
                - assets
            x-speakeasy-name-override: serveFunction
            x-speakeasy-react-hook:
                name: serveFunction
    /rpc/assets.serveImage:
        get:
            description: Serve an image from Speakeasy.
            operationId: serveImage
            parameters:
                - allowEmptyValue: true
                  description: The ID of the asset to serve
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the asset to serve
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                format: binary
                                type: string
                    description: OK response.
                    headers:
                        Access-Control-Allow-Origin:
                            schema:
                                type: string
                        Content-Length:
                            schema:
                                format: int64
                                type: integer
                        Content-Type:
                            schema:
                                type: string
                        Cross-Origin-Resource-Policy:
                            schema:
                                type: string
                        Last-Modified:
                            schema:
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: serveImage assets
            tags:
                - assets
            x-speakeasy-name-override: serveImage
            x-speakeasy-react-hook:
                name: serveImage
    /rpc/assets.serveOpenAPIv3:
        get:
            description: Serve an OpenAPIv3 asset from Speakeasy.
            operationId: serveOpenAPIv3
            parameters:
                - allowEmptyValue: true
                  description: The ID of the asset to serve
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the asset to serve
                    type: string
                - allowEmptyValue: true
                  description: The procect ID that the asset belongs to
                  in: query
                  name: project_id
                  required: true
                  schema:
                    description: The procect ID that the asset belongs to
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        '*/*':
                            schema:
                                format: binary
                                type: string
                    description: OK response.
                    headers:
                        Content-Length:
                            schema:
                                format: int64
                                type: integer
                        Content-Type:
                            schema:
                                type: string
                        Last-Modified:
                            schema:
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: serveOpenAPIv3 assets
            tags:
                - assets
            x-speakeasy-name-override: serveOpenAPIv3
            x-speakeasy-react-hook:
                name: serveOpenAPIv3
    /rpc/assets.uploadChatAttachment:
        post:
            description: Upload a chat attachment to Speakeasy.
            operationId: uploadChatAttachment
            parameters:
                - allowEmptyValue: true
                  in: header
                  name: Content-Type
                  required: true
                  schema:
                    type: string
                - allowEmptyValue: true
                  in: header
                  name: Content-Length
                  required: true
                  schema:
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UploadChatAttachmentResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
                  project_slug_header_Gram-Project: []
            summary: uploadChatAttachment assets
            tags:
                - assets
            x-speakeasy-name-override: uploadChatAttachment
            x-speakeasy-react-hook:
                name: UploadChatAttachment
    /rpc/assets.uploadFunctions:
        post:
            description: Upload functions to Speakeasy.
            operationId: uploadFunctions
            parameters:
                - allowEmptyValue: true
                  in: header
                  name: Content-Type
                  required: true
                  schema:
                    type: string
                - allowEmptyValue: true
                  in: header
                  name: Content-Length
                  required: true
                  schema:
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UploadFunctionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: uploadFunctions assets
            tags:
                - assets
            x-speakeasy-name-override: uploadFunctions
            x-speakeasy-react-hook:
                name: UploadFunctions
    /rpc/assets.uploadImage:
        post:
            description: Upload an image to Speakeasy.
            operationId: uploadImage
            parameters:
                - allowEmptyValue: true
                  in: header
                  name: Content-Type
                  required: true
                  schema:
                    type: string
                - allowEmptyValue: true
                  in: header
                  name: Content-Length
                  required: true
                  schema:
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UploadImageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: uploadImage assets
            tags:
                - assets
            x-speakeasy-name-override: uploadImage
            x-speakeasy-react-hook:
                name: UploadImage
    /rpc/assets.uploadOpenAPIv3:
        post:
            description: Upload an OpenAPI v3 document to Speakeasy.
            operationId: uploadOpenAPIv3Asset
            parameters:
                - allowEmptyValue: true
                  in: header
                  name: Content-Type
                  required: true
                  schema:
                    type: string
                - allowEmptyValue: true
                  in: header
                  name: Content-Length
                  required: true
                  schema:
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UploadOpenAPIv3Result'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: uploadOpenAPIv3 assets
            tags:
                - assets
            x-speakeasy-name-override: uploadOpenAPIv3
            x-speakeasy-react-hook:
                name: UploadOpenAPIv3
    /rpc/assistantMemories.delete:
        delete:
            description: Delete an assistant memory by ID.
            operationId: deleteAssistantMemory
            parameters:
                - allowEmptyValue: true
                  description: The assistant memory ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The assistant memory ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteAssistantMemory assistantMemories
            tags:
                - assistantMemories
            x-speakeasy-name-override: delete
    /rpc/assistantMemories.get:
        get:
            description: Get an assistant memory by ID.
            operationId: getAssistantMemory
            parameters:
                - allowEmptyValue: true
                  description: The assistant memory ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The assistant memory ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AssistantMemory'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getAssistantMemory assistantMemories
            tags:
                - assistantMemories
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: GetAssistantMemory
    /rpc/assistantMemories.list:
        get:
            description: List assistant memories for an assistant.
            operationId: listAssistantMemories
            parameters:
                - allowEmptyValue: true
                  description: The assistant ID.
                  in: query
                  name: assistant_id
                  required: true
                  schema:
                    description: The assistant ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional tags to filter memories by.
                  in: query
                  name: tags
                  schema:
                    description: Optional tags to filter memories by.
                    items:
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Whether to include soft-deleted memories.
                  in: query
                  name: include_deleted
                  schema:
                    default: false
                    description: Whether to include soft-deleted memories.
                    type: boolean
                - allowEmptyValue: true
                  description: The cursor to fetch results from.
                  in: query
                  name: cursor
                  schema:
                    description: The cursor to fetch results from.
                    type: string
                - allowEmptyValue: true
                  description: The number of memories to return per page.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: The number of memories to return per page.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAssistantMemoriesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listAssistantMemories assistantMemories
            tags:
                - assistantMemories
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: ListAssistantMemories
    /rpc/assistants.create:
        post:
            description: Create an assistant.
            operationId: createAssistant
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateAssistantForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Assistant'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createAssistant assistants
            tags:
                - assistants
            x-speakeasy-name-override: create
    /rpc/assistants.delete:
        delete:
            description: Delete an assistant.
            operationId: deleteAssistant
            parameters:
                - allowEmptyValue: true
                  description: The assistant ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The assistant ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteAssistant assistants
            tags:
                - assistants
            x-speakeasy-name-override: delete
    /rpc/assistants.ensureManagedAssistant:
        post:
            description: Get the project's built-in Project Assistant, provisioning it on first access. Idempotent — safe to call on every sidebar open.
            operationId: ensureManagedAssistant
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Assistant'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: ensureManagedAssistant assistants
            tags:
                - assistants
            x-speakeasy-name-override: ensureManaged
            x-speakeasy-react-hook:
                name: EnsureManagedAssistant
                type: mutation
    /rpc/assistants.get:
        get:
            description: Get an assistant by ID.
            operationId: getAssistant
            parameters:
                - allowEmptyValue: true
                  description: The assistant ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The assistant ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Assistant'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getAssistant assistants
            tags:
                - assistants
            x-speakeasy-name-override: get
    /rpc/assistants.getManagedAssistant:
        get:
            description: Get the project's built-in Project Assistant if it exists. Returns 404 when no managed assistant has been provisioned yet — call ensureManagedAssistant to create one.
            operationId: getManagedAssistant
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Assistant'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getManagedAssistant assistants
            tags:
                - assistants
            x-speakeasy-name-override: getManaged
    /rpc/assistants.interruptTurn:
        post:
            description: 'Stop whatever a conversation is currently generating. Cancels turns still queued on the conversation''s thread and interrupts the turn in flight on the assistant runtime, so the reply stops where it is rather than finishing in the background. Idempotent and safe to call when nothing is running: `stopped` is false when the reply had already finished.'
            operationId: interruptAssistantTurn
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/InterruptTurnRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/InterruptTurnResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: interruptTurn assistants
            tags:
                - assistants
            x-speakeasy-name-override: interruptTurn
            x-speakeasy-react-hook:
                name: InterruptAssistantTurn
                type: mutation
    /rpc/assistants.list:
        get:
            description: List assistants for the current project.
            operationId: listAssistants
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAssistantsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listAssistants assistants
            tags:
                - assistants
            x-speakeasy-name-override: list
    /rpc/assistants.sendMessage:
        post:
            description: Send a message from the dashboard to an assistant as the calling user. Continue an existing conversation by passing its chat_id (from listChats), or omit chat_id to start a new conversation — the server mints and returns a fresh chat id. The reply is delivered asynchronously; poll the chat service (loadChat) to read it.
            operationId: sendAssistantMessage
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SendMessageRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SendMessageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: sendMessage assistants
            tags:
                - assistants
            x-speakeasy-name-override: sendMessage
            x-speakeasy-react-hook:
                name: SendAssistantMessage
    /rpc/assistants.update:
        post:
            description: Update an assistant.
            operationId: updateAssistant
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateAssistantForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Assistant'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateAssistant assistants
            tags:
                - assistants
            x-speakeasy-name-override: update
    /rpc/assistants.upgradeIdentity:
        post:
            description: Give an existing assistant an agent and per-trigger workload identities. By default a new agent is created with access to every MCP server and skill in the project and to administering this assistant. Passing agent_id points the assistant at an existing agent of the project instead; that agent keeps its policy and gains administration of this assistant. Either way the agent is managed like any other agent afterwards. Existing assistants are never upgraded implicitly; repeating the upgrade is safe.
            operationId: upgradeAssistantIdentity
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpgradeAssistantIdentityRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Assistant'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: upgradeAssistantIdentity assistants
            tags:
                - assistants
            x-speakeasy-name-override: upgradeIdentity
    /rpc/auditlogs.list:
        get:
            description: List audit logs across organization and projects.
            operationId: listAuditLogs
            parameters:
                - allowEmptyValue: true
                  description: The cursor for paginating through audit logs.
                  in: query
                  name: cursor
                  schema:
                    description: The cursor for paginating through audit logs.
                    type: string
                - allowEmptyValue: true
                  description: Project slug to filter audit logs to a specific project.
                  in: query
                  name: project_slug
                  schema:
                    description: Project slug to filter audit logs to a specific project.
                    type: string
                - allowEmptyValue: true
                  description: Actor ID to filter audit logs to a specific actor.
                  in: query
                  name: actor_id
                  schema:
                    description: Actor ID to filter audit logs to a specific actor.
                    type: string
                - allowEmptyValue: true
                  description: Action to filter audit logs to a specific action.
                  in: query
                  name: action
                  schema:
                    description: Action to filter audit logs to a specific action.
                    type: string
                - allowEmptyValue: true
                  description: Subject type to filter audit logs to a specific kind of subject. When omitted, assistant activity events are excluded; pass 'assistant' to list them.
                  in: query
                  name: subject_type
                  schema:
                    description: Subject type to filter audit logs to a specific kind of subject. When omitted, assistant activity events are excluded; pass 'assistant' to list them.
                    type: string
                - allowEmptyValue: true
                  description: Subject ID to filter audit logs to a specific subject (e.g. a single assistant).
                  in: query
                  name: subject_id
                  schema:
                    description: Subject ID to filter audit logs to a specific subject (e.g. a single assistant).
                    type: string
                - allowEmptyValue: true
                  description: Subject IDs to filter audit logs to a set of subjects at once, e.g. a resource together with the child resources whose events name the child as the subject. Matches any listed subject of any subject type, except that assistant activity events stay excluded unless subject_type is 'assistant'; combine with subject_type to pin the kind. Blank entries are ignored.
                  in: query
                  name: subject_ids
                  schema:
                    description: Subject IDs to filter audit logs to a set of subjects at once, e.g. a resource together with the child resources whose events name the child as the subject. Matches any listed subject of any subject type, except that assistant activity events stay excluded unless subject_type is 'assistant'; combine with subject_type to pin the kind. Blank entries are ignored.
                    items:
                        type: string
                    maxItems: 200
                    type: array
                - allowEmptyValue: true
                  description: Acting surface to filter audit logs to changes made through one surface, e.g. 'platform_mcp' to review agent-driven activity alone.
                  in: query
                  name: acting_surface
                  schema:
                    description: Acting surface to filter audit logs to changes made through one surface, e.g. 'platform_mcp' to review agent-driven activity alone.
                    type: string
                - allowEmptyValue: true
                  description: Inclusive start of the window to list changes from. Omit for the whole history.
                  in: query
                  name: from
                  schema:
                    description: Inclusive start of the window to list changes from. Omit for the whole history.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Exclusive end of the window to list changes from. Omit for the whole history.
                  in: query
                  name: to
                  schema:
                    description: Exclusive end of the window to list changes from. Omit for the whole history.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAuditLogsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: list auditlogs
            tags:
                - auditlogs
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: AuditLogs
    /rpc/auditlogs.listFacets:
        get:
            description: List available audit log facet values across organization and projects.
            operationId: listAuditLogFacets
            parameters:
                - allowEmptyValue: true
                  description: Project slug to filter facet values to a specific project.
                  in: query
                  name: project_slug
                  schema:
                    description: Project slug to filter facet values to a specific project.
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAuditLogFacetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listFacets auditlogs
            tags:
                - auditlogs
            x-speakeasy-name-override: listFacets
            x-speakeasy-react-hook:
                name: AuditLogFacets
    /rpc/auth.callback:
        get:
            description: Handles the authentication callback.
            operationId: authCallback
            parameters:
                - allowEmptyValue: true
                  description: The auth code for authentication from the speakeasy system
                  in: query
                  name: code
                  required: true
                  schema:
                    description: The auth code for authentication from the speakeasy system
                    type: string
                - allowEmptyValue: true
                  description: The opaque state string optionally provided during initialization.
                  in: query
                  name: state
                  schema:
                    description: The opaque state string optionally provided during initialization.
                    type: string
            responses:
                "307":
                    description: Temporary Redirect response.
                    headers:
                        Gram-Session:
                            description: Session header
                            schema:
                                description: Session header
                                type: string
                        Location:
                            description: The URL to redirect to after authentication
                            schema:
                                description: The URL to redirect to after authentication
                                type: string
                        Set-Cookie:
                            description: The authentication session
                            schema:
                                description: The authentication session
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: callback auth
            tags:
                - auth
            x-speakeasy-name-override: callback
            x-speakeasy-react-hook:
                disabled: true
    /rpc/auth.enterDemo:
        post:
            description: Switches the current session into the shared read-only demo organization.
            operationId: enterDemo
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    description: OK response.
                    headers:
                        Gram-Session:
                            description: Session header
                            schema:
                                description: Session header
                                type: string
                        Set-Cookie:
                            description: The authentication session
                            schema:
                                description: The authentication session
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: enterDemo auth
            tags:
                - auth
            x-speakeasy-name-override: enterDemo
            x-speakeasy-react-hook:
                name: EnterDemo
    /rpc/auth.info:
        get:
            description: Provides information about the current authentication status.
            operationId: sessionInfo
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/InfoResponseBody'
                    description: OK response.
                    headers:
                        Gram-Session:
                            description: Session header
                            schema:
                                description: Session header
                                type: string
                        Set-Cookie:
                            description: The authentication session
                            schema:
                                description: The authentication session
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: info auth
            tags:
                - auth
            x-speakeasy-name-override: info
            x-speakeasy-react-hook:
                name: SessionInfo
    /rpc/auth.login:
        get:
            description: Proxies to auth login through speakeasy oidc.
            operationId: authLogin
            parameters:
                - allowEmptyValue: true
                  description: Optional URL to redirect to after successful authentication
                  in: query
                  name: redirect
                  schema:
                    description: Optional URL to redirect to after successful authentication
                    type: string
                - allowEmptyValue: true
                  description: Optional organization name. When set, the organization is created for a new user during the auth callback.
                  in: query
                  name: org_name
                  schema:
                    description: Optional organization name. When set, the organization is created for a new user during the auth callback.
                    type: string
                - allowEmptyValue: true
                  description: Optional partner signup code.
                  in: query
                  name: partner_code
                  schema:
                    description: Optional partner signup code.
                    maxLength: 80
                    type: string
                - allowEmptyValue: true
                  description: Optional email address. Pre-fills the email field on the identity provider's sign-up screen. Never stored.
                  in: query
                  name: email
                  schema:
                    description: Optional email address. Pre-fills the email field on the identity provider's sign-up screen. Never stored.
                    type: string
                - allowEmptyValue: true
                  description: Opaque, one-time organization support handoff. Never included in OAuth state.
                  in: query
                  name: support_handoff
                  schema:
                    description: Opaque, one-time organization support handoff. Never included in OAuth state.
                    type: string
            responses:
                "307":
                    description: Temporary Redirect response.
                    headers:
                        Location:
                            description: The URL to redirect to after authentication
                            schema:
                                description: The URL to redirect to after authentication
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: login auth
            tags:
                - auth
            x-speakeasy-name-override: login
            x-speakeasy-react-hook:
                disabled: true
    /rpc/auth.logout:
        post:
            description: Logs out the current user by clearing their session.
            operationId: logout
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    description: OK response.
                    headers:
                        Set-Cookie:
                            description: Empty string to clear the session
                            schema:
                                description: Empty string to clear the session
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: logout auth
            tags:
                - auth
            x-speakeasy-name-override: logout
            x-speakeasy-react-hook:
                name: Logout
    /rpc/auth.logoutEverywhere:
        post:
            description: 'Signs the caller out everywhere: ends every dashboard and identity provider session, revokes their sign-ins in every organization, and revokes every MCP grant made from them.'
            operationId: logoutEverywhere
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RevokeSignInsResult'
                    description: OK response.
                    headers:
                        Set-Cookie:
                            description: Empty string to clear the session
                            schema:
                                description: Empty string to clear the session
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: logoutEverywhere auth
            tags:
                - auth
            x-speakeasy-name-override: logoutEverywhere
            x-speakeasy-react-hook:
                name: LogoutEverywhere
    /rpc/auth.register:
        post:
            description: Register a new org for a user with their session information.
            operationId: register
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RegisterRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: register auth
            tags:
                - auth
            x-speakeasy-name-override: register
            x-speakeasy-react-hook:
                name: Register
    /rpc/auth.switchScopes:
        post:
            description: Switches the authentication scope to a different organization.
            operationId: switchAuthScopes
            parameters:
                - allowEmptyValue: true
                  description: The organization slug to switch scopes
                  in: query
                  name: organization_id
                  schema:
                    description: The organization slug to switch scopes
                    type: string
                - allowEmptyValue: true
                  description: The project id to switch scopes too
                  in: query
                  name: project_id
                  schema:
                    description: The project id to switch scopes too
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    description: OK response.
                    headers:
                        Gram-Session:
                            description: Session header
                            schema:
                                description: Session header
                                type: string
                        Set-Cookie:
                            description: The authentication session
                            schema:
                                description: The authentication session
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: switchScopes auth
            tags:
                - auth
            x-speakeasy-name-override: switchScopes
            x-speakeasy-react-hook:
                name: SwitchScopes
    /rpc/auth.transferIn:
        get:
            description: 'Steps 1/3 and 3/3 of a cross-domain session transfer, on the target platform host. Step 1/3 (start: source_host, no code) sets a short-lived cookie that binds the transfer to this browser and redirects to Step 2/3, transferOut on the source host. Step 3/3 (callback: code, no source_host) redeems the one-time code that transferOut issued, checks it against that cookie, and sets a new session cookie on this host, unless the browser already holds a valid session here for the same user and start mode did not set replace_session; that session is then kept. The cookie exists because a code alone would let anyone who holds one sign another person into the code''s account (login CSRF). A request with both or neither, and any failed check, lands on this host''s login page with a signin_error code; a failed callback never starts a new transfer. See the flow diagram in server/internal/auth/transfer.go.'
            operationId: authTransferIn
            parameters:
                - allowEmptyValue: true
                  description: 'Start mode: the platform host that holds the session to move here (e.g. app.getgram.ai)'
                  in: query
                  name: source_host
                  schema:
                    description: 'Start mode: the platform host that holds the session to move here (e.g. app.getgram.ai)'
                    type: string
                - allowEmptyValue: true
                  description: 'Callback mode: the opaque one-time transfer code from the source host''s transferOut endpoint'
                  in: query
                  name: code
                  schema:
                    description: 'Callback mode: the opaque one-time transfer code from the source host''s transferOut endpoint'
                    type: string
                - allowEmptyValue: true
                  description: Optional URL path to land on once the session is established on this host
                  in: query
                  name: redirect
                  schema:
                    description: Optional URL path to land on once the session is established on this host
                    type: string
                - allowEmptyValue: true
                  description: 'Start mode: replace a session this browser already holds on this host for the same user. Without it, the callback keeps that session and its organization, so a stale source session cannot undo an organization switch made here. Set it right after switching organization on the source host.'
                  in: query
                  name: replace_session
                  schema:
                    description: 'Start mode: replace a session this browser already holds on this host for the same user. Without it, the callback keeps that session and its organization, so a stale source session cannot undo an organization switch made here. Set it right after switching organization on the source host.'
                    type: boolean
            responses:
                "307":
                    description: Temporary Redirect response.
                    headers:
                        Gram-Session:
                            description: Session header
                            schema:
                                description: Session header
                                type: string
                        Location:
                            description: 'The URL to redirect to: the source host''s transferOut (start mode), the requested page (callback mode), or this host''s login page when a check fails'
                            schema:
                                description: 'The URL to redirect to: the source host''s transferOut (start mode), the requested page (callback mode), or this host''s login page when a check fails'
                                type: string
                        Set-Cookie:
                            description: The new authentication session on this host. Set only when callback mode mints one.
                            schema:
                                description: The new authentication session on this host. Set only when callback mode mints one.
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: transferIn auth
            tags:
                - auth
            x-speakeasy-name-override: transferIn
            x-speakeasy-react-hook:
                disabled: true
    /rpc/auth.transferOut:
        get:
            description: Step 2/3 (authorize) of a cross-domain session transfer, on the source platform host. Reached from Step 1/3, transferIn's start mode on the target host; redirects to Step 3/3, transferIn's callback mode there. Authenticates the session from the session cookie or header, checks that its active organization's default host is the target, and stores a one-time transfer code bound to the browser's nonce. Only an ordinary session whose organization lives on the target host can transfer. On any failure the browser is sent to a login page with a signin_error code instead of an error. See the flow diagram in server/internal/auth/transfer.go.
            operationId: authTransferOut
            parameters:
                - allowEmptyValue: true
                  description: The target platform host to transfer the session to (e.g. ai.speakeasy.com)
                  in: query
                  name: target_host
                  schema:
                    description: The target platform host to transfer the session to (e.g. ai.speakeasy.com)
                    type: string
                - allowEmptyValue: true
                  description: The browser binding nonce from the target host's transferIn start mode
                  in: query
                  name: nonce
                  schema:
                    description: The browser binding nonce from the target host's transferIn start mode
                    type: string
                - allowEmptyValue: true
                  description: Optional URL path to redirect to after the transfer completes on the target host
                  in: query
                  name: redirect
                  schema:
                    description: Optional URL path to redirect to after the transfer completes on the target host
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "307":
                    description: Temporary Redirect response.
                    headers:
                        Location:
                            description: 'The URL to redirect to: the target host''s transferIn callback with the transfer code, or a login page when the transfer cannot continue'
                            schema:
                                description: 'The URL to redirect to: the target host''s transferIn callback with the transfer code, or a login page when the transfer cannot continue'
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: transferOut auth
            tags:
                - auth
            x-speakeasy-name-override: transferOut
            x-speakeasy-react-hook:
                disabled: true
    /rpc/businessMemories.contentScopes:
        get:
            description: List the complete content-scope tree and distinct-memory counts for the active project. Requires organization admin.
            operationId: listBusinessMemoryContentScopes
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListBusinessMemoryContentScopesResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listBusinessMemoryContentScopes businessMemories
            tags:
                - businessMemories
            x-speakeasy-name-override: listContentScopes
            x-speakeasy-react-hook:
                name: ListBusinessMemoryContentScopes
    /rpc/businessMemories.list:
        get:
            description: List memories extracted for the active project. Requires organization admin.
            operationId: listBusinessMemories
            parameters:
                - allowEmptyValue: true
                  description: Cursor for the next result page.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next result page.
                    type: string
                - allowEmptyValue: true
                  description: Exact content-scope tag to match.
                  in: query
                  name: content_scope
                  schema:
                    description: Exact content-scope tag to match.
                    pattern: ^[a-z0-9][a-z0-9:_-]{0,127}$
                    type: string
                - allowEmptyValue: true
                  description: Content-scope namespace to match.
                  in: query
                  name: content_scope_namespace
                  schema:
                    description: Content-scope namespace to match.
                    pattern: ^[a-z0-9][a-z0-9_-]{0,127}$
                    type: string
                - allowEmptyValue: true
                  description: Number of memories to return.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: Number of memories to return.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListBusinessMemoriesResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listBusinessMemories businessMemories
            tags:
                - businessMemories
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: ListBusinessMemories
    /rpc/businessMemories.search:
        post:
            description: Run semantic search over active memories in the active project. Requires organization admin.
            operationId: searchBusinessMemories
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SearchBusinessMemoriesRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SearchBusinessMemoriesResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: searchBusinessMemories businessMemories
            tags:
                - businessMemories
            x-speakeasy-name-override: search
            x-speakeasy-react-hook:
                name: SearchBusinessMemories
    /rpc/chat.creditUsage:
        get:
            description: Get the total number of chat credits and usage for the current billing period
            operationId: creditUsage
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreditUsageResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: creditUsage chat
            tags:
                - chat
            x-speakeasy-name-override: creditUsage
            x-speakeasy-react-hook:
                name: GetCreditUsage
    /rpc/chat.delete:
        delete:
            description: Soft-delete a chat by its ID
            operationId: deleteChat
            parameters:
                - allowEmptyValue: true
                  description: The ID of the chat to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the chat to delete
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteChat chat
            tags:
                - chat
            x-speakeasy-name-override: delete
    /rpc/chat.generateTitle:
        post:
            description: Read or set a chat's title. Omit `title` to return the current/auto-generated title (titles are generated asynchronously after a completion). Provide `title` to set a manual title that auto-generation will never overwrite; provide an empty `title` to clear the manual title and re-enable auto-generation.
            operationId: generateTitle
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GenerateTitleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GenerateTitleResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
            summary: generateTitle chat
            tags:
                - chat
            x-speakeasy-name-override: generateTitle
    /rpc/chat.getAssistantSessionSummary:
        get:
            description: Get assistant session activity totals for a time range.
            operationId: getAssistantSessionSummary
            parameters:
                - allowEmptyValue: true
                  description: The assistant whose activity to summarize
                  in: query
                  name: assistant_id
                  required: true
                  schema:
                    description: The assistant whose activity to summarize
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Start of the activity range (ISO 8601)
                  in: query
                  name: from
                  required: true
                  schema:
                    description: Start of the activity range (ISO 8601)
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: End of the activity range (ISO 8601)
                  in: query
                  name: to
                  required: true
                  schema:
                    description: End of the activity range (ISO 8601)
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AssistantSessionSummary'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getAssistantSessionSummary chat
            tags:
                - chat
            x-speakeasy-name-override: getAssistantSessionSummary
            x-speakeasy-react-hook:
                name: AssistantSessionSummary
                type: query
    /rpc/chat.getWorkUnitsTrend:
        get:
            description: 'Aggregate work-units analysis results over time for the project: work done and cost/token efficiency per UTC day.'
            operationId: getWorkUnitsTrend
            parameters:
                - allowEmptyValue: true
                  description: Start of the window (ISO 8601). Defaults to 30 days before `to`.
                  in: query
                  name: from
                  schema:
                    description: Start of the window (ISO 8601). Defaults to 30 days before `to`.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: End of the window (ISO 8601). Defaults to now.
                  in: query
                  name: to
                  schema:
                    description: End of the window (ISO 8601). Defaults to now.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkUnitsTrendResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getWorkUnitsTrend chat
            tags:
                - chat
            x-speakeasy-name-override: getWorkUnitsTrend
            x-speakeasy-react-hook:
                name: WorkUnitsTrend
                type: query
    /rpc/chat.list:
        get:
            description: List all chats for a project
            operationId: listChats
            parameters:
                - allowEmptyValue: true
                  description: Search query (searches chat ID, user ID, user name, and title)
                  in: query
                  name: search
                  schema:
                    description: Search query (searches chat ID, user ID, user name, and title)
                    type: string
                - allowEmptyValue: true
                  description: Filter by external user ID
                  in: query
                  name: external_user_id
                  schema:
                    description: Filter by external user ID
                    type: string
                - allowEmptyValue: true
                  description: Filter by Speakeasy user ID
                  in: query
                  name: user_id
                  schema:
                    description: Filter by Speakeasy user ID
                    type: string
                - allowEmptyValue: true
                  description: Filter by agent source. Comma-separated list of exact source values (e.g. 'claude-code,Codex,playground') matched against each session's inferred source; empty for no filter. Use chat.listSources to discover the available values.
                  in: query
                  name: source
                  schema:
                    description: Filter by agent source. Comma-separated list of exact source values (e.g. 'claude-code,Codex,playground') matched against each session's inferred source; empty for no filter. Use chat.listSources to discover the available values.
                    type: string
                - allowEmptyValue: true
                  description: Filter to chats produced by this assistant
                  in: query
                  name: assistant_id
                  schema:
                    description: Filter to chats produced by this assistant
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: When set with assistant_id, list only that assistant's threads whose source_kind matches this value (e.g. 'setup' for onboarding threads). Empty for no filter.
                  in: query
                  name: source_kind
                  schema:
                    description: When set with assistant_id, list only that assistant's threads whose source_kind matches this value (e.g. 'setup' for onboarding threads). Empty for no filter.
                    type: string
                - allowEmptyValue: true
                  description: When set with assistant_id, exclude that assistant's threads whose source_kind matches this value (e.g. 'setup' to hide onboarding threads from runtime views). Empty for no filter.
                  in: query
                  name: exclude_source_kind
                  schema:
                    description: When set with assistant_id, exclude that assistant's threads whose source_kind matches this value (e.g. 'setup' to hide onboarding threads from runtime views). Empty for no filter.
                    type: string
                - allowEmptyValue: true
                  description: 'Filter by whether chat has risk findings: ''true'', ''false'', or empty for no filter.'
                  in: query
                  name: has_risk
                  schema:
                    description: 'Filter by whether chat has risk findings: ''true'', ''false'', or empty for no filter.'
                    enum:
                        - ""
                        - "true"
                        - "false"
                    type: string
                - allowEmptyValue: true
                  description: 'Filter by AI account type: ''team'', ''personal'', or empty for no filter.'
                  in: query
                  name: account_type
                  schema:
                    description: 'Filter by AI account type: ''team'', ''personal'', or empty for no filter.'
                    enum:
                        - ""
                        - team
                        - personal
                    type: string
                - allowEmptyValue: true
                  description: 'Filter by pinned state: ''true'' for pinned chats, ''false'' for unpinned, or empty for no filter.'
                  in: query
                  name: pinned
                  schema:
                    description: 'Filter by pinned state: ''true'' for pinned chats, ''false'' for unpinned, or empty for no filter.'
                    enum:
                        - ""
                        - "true"
                        - "false"
                    type: string
                - allowEmptyValue: true
                  description: Filter to chats with at least this many active risk findings (inclusive). Omit or pass 0 for no threshold.
                  in: query
                  name: min_risk_score
                  schema:
                    description: Filter to chats with at least this many active risk findings (inclusive). Omit or pass 0 for no threshold.
                    format: int64
                    minimum: 0
                    type: integer
                - allowEmptyValue: true
                  description: Filter chats last active after this timestamp (ISO 8601)
                  in: query
                  name: from
                  schema:
                    description: Filter chats last active after this timestamp (ISO 8601)
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Filter chats last active before this timestamp (ISO 8601)
                  in: query
                  name: to
                  schema:
                    description: Filter chats last active before this timestamp (ISO 8601)
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Number of results per page
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: Number of results per page
                    format: int64
                    maximum: 100
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Pagination offset
                  in: query
                  name: offset
                  schema:
                    default: 0
                    description: Pagination offset
                    format: int64
                    minimum: 0
                    type: integer
                - allowEmptyValue: true
                  description: Field to sort by
                  in: query
                  name: sort_by
                  schema:
                    default: last_message_timestamp
                    description: Field to sort by
                    enum:
                        - last_message_timestamp
                        - num_messages
                    type: string
                - allowEmptyValue: true
                  description: Sort order
                  in: query
                  name: sort_order
                  schema:
                    default: desc
                    description: Sort order
                    enum:
                        - asc
                        - desc
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListChatsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
            summary: listChats chat
            tags:
                - chat
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListChats
                type: query
    /rpc/chat.listSessionLinks:
        get:
            description: List session-lineage links touching the given chats (session portability). A link records that a session was moved to another harness; the child side is present when the continuation's session id was known at move time. Returns every link where a requested chat is either the parent or the child, honoring the same visibility scoping as listChats.
            operationId: listChatSessionLinks
            parameters:
                - allowEmptyValue: true
                  description: Chat ids to resolve links for.
                  in: query
                  name: chat_ids
                  required: true
                  schema:
                    description: Chat ids to resolve links for.
                    items:
                        format: uuid
                        type: string
                    maxItems: 100
                    minItems: 1
                    type: array
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSessionLinksResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
            summary: listSessionLinks chat
            tags:
                - chat
            x-speakeasy-name-override: listSessionLinks
            x-speakeasy-react-hook:
                name: ListChatSessionLinks
                type: query
    /rpc/chat.listSources:
        get:
            description: List the distinct agent sources present in this project's chats, for populating the agent-type filter on the Agent Sessions page.
            operationId: listChatSources
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSourcesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
            summary: listSources chat
            tags:
                - chat
            x-speakeasy-name-override: listSources
            x-speakeasy-react-hook:
                name: ListChatSources
                type: query
    /rpc/chat.load:
        get:
            description: 'Load a chat by its ID. Messages within a generation are paginated by `seq` keyset: omit cursors to receive the newest page, pass `before_seq` to load older messages (scroll up) or `after_seq` to load newer ones (scroll down). Set `from_start` to receive the oldest page (the start of the thread) instead of the newest. Omit `generation` to receive the latest generation. Set `risk_only` to return only messages with risk findings plus a few messages of surrounding context per finding. Set `query` to instead return only messages whose text matches a search query plus surrounding context (mutually exclusive with `risk_only`).'
            operationId: loadChat
            parameters:
                - allowEmptyValue: true
                  description: The ID of the chat
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the chat
                    type: string
                - allowEmptyValue: true
                  description: 'Generation to load. A generation is an immutable snapshot of the chat transcript: a new one is opened whenever the conversation is compacted or an earlier message is edited, while normal turns append to the current generation. Generations are numbered from 0 (oldest) up to `max_generation` (latest). Omit this attribute to receive the latest generation, or page through history by walking from `max_generation` down to 0.'
                  in: query
                  name: generation
                  schema:
                    description: 'Generation to load. A generation is an immutable snapshot of the chat transcript: a new one is opened whenever the conversation is compacted or an earlier message is edited, while normal turns append to the current generation. Generations are numbered from 0 (oldest) up to `max_generation` (latest). Omit this attribute to receive the latest generation, or page through history by walking from `max_generation` down to 0.'
                    format: int64
                    minimum: 0
                    type: integer
                - allowEmptyValue: true
                  description: Maximum number of messages to return for this page.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: Maximum number of messages to return for this page.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: 'Keyset cursor: return the page of messages with `seq` strictly less than this value (older messages). The returned `messages` are always ordered oldest to newest by `seq`, like every other response. Use the `seq` of the oldest message you currently hold to load the previous page. Ignored when `risk_only` is set. Mutually exclusive with `after_seq`; if both are supplied, `after_seq` takes precedence.'
                  in: query
                  name: before_seq
                  schema:
                    description: 'Keyset cursor: return the page of messages with `seq` strictly less than this value (older messages). The returned `messages` are always ordered oldest to newest by `seq`, like every other response. Use the `seq` of the oldest message you currently hold to load the previous page. Ignored when `risk_only` is set. Mutually exclusive with `after_seq`; if both are supplied, `after_seq` takes precedence.'
                    format: int64
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: 'Keyset cursor: return the page of messages with `seq` strictly greater than this value (newer messages). The returned `messages` are always ordered oldest to newest by `seq`. Use the `seq` of the newest message you currently hold to load the next page. Ignored when `risk_only` is set. Mutually exclusive with `before_seq`; if both are supplied, `after_seq` takes precedence.'
                  in: query
                  name: after_seq
                  schema:
                    description: 'Keyset cursor: return the page of messages with `seq` strictly greater than this value (newer messages). The returned `messages` are always ordered oldest to newest by `seq`. Use the `seq` of the newest message you currently hold to load the next page. Ignored when `risk_only` is set. Mutually exclusive with `before_seq`; if both are supplied, `after_seq` takes precedence.'
                    format: int64
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: When true, return the oldest page of the generation (the start of the thread), ordered oldest to newest, with `has_more_before=false`. Page forward from there with `after_seq`. Ignored when `before_seq`, `after_seq`, or `risk_only` is set.
                  in: query
                  name: from_start
                  schema:
                    default: false
                    description: When true, return the oldest page of the generation (the start of the thread), ordered oldest to newest, with `has_more_before=false`. Page forward from there with `after_seq`. Ignored when `before_seq`, `after_seq`, or `risk_only` is set.
                    type: boolean
                - allowEmptyValue: true
                  description: 'When true, return only messages that have active risk findings, each padded with a fixed window of surrounding messages, grouped into contiguous segments (see `risk_segments`). The flagged messages themselves are marked with `is_risk` on each `ChatMessage` (surrounding context is `is_risk: false`). Cursors are ignored in this mode; expand a segment with a follow-up `before_seq`/`after_seq` request. Mutually exclusive with `query`.'
                  in: query
                  name: risk_only
                  schema:
                    default: false
                    description: 'When true, return only messages that have active risk findings, each padded with a fixed window of surrounding messages, grouped into contiguous segments (see `risk_segments`). The flagged messages themselves are marked with `is_risk` on each `ChatMessage` (surrounding context is `is_risk: false`). Cursors are ignored in this mode; expand a segment with a follow-up `before_seq`/`after_seq` request. Mutually exclusive with `query`.'
                    type: boolean
                - allowEmptyValue: true
                  description: When set (and `risk_only` is false), return only messages whose text matches this query (case-insensitive substring over message text, tool names/arguments, and structured content), each padded with a fixed window of surrounding messages, grouped into contiguous segments (see `match_segments`). Cursors are ignored on the initial request; expand a segment with a follow-up `before_seq`/`after_seq` request. Mutually exclusive with `risk_only`.
                  in: query
                  name: query
                  schema:
                    description: When set (and `risk_only` is false), return only messages whose text matches this query (case-insensitive substring over message text, tool names/arguments, and structured content), each padded with a fixed window of surrounding messages, grouped into contiguous segments (see `match_segments`). Cursors are ignored on the initial request; expand a segment with a follow-up `before_seq`/`after_seq` request. Mutually exclusive with `risk_only`.
                    maxLength: 200
                    minLength: 1
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Chat'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: loadChat chat
            tags:
                - chat
            x-speakeasy-name-override: load
            x-speakeasy-react-hook:
                name: LoadChat
    /rpc/chat.loadOverview:
        get:
            description: Load authorized chat overview metadata by exact ID without reading messages or recording a transcript-open audit event.
            operationId: loadChatOverview
            parameters:
                - allowEmptyValue: true
                  description: The ID of the chat
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the chat
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ChatOverview'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: loadChatOverview chat
            tags:
                - chat
            x-speakeasy-name-override: loadOverview
            x-speakeasy-react-hook:
                name: LoadChatOverview
                type: query
    /rpc/chat.setPinned:
        post:
            description: Pin or unpin a chat. Pinned chats surface in a dedicated section above recents on the chat page.
            operationId: setChatPinned
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetPinnedRequestBody'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: setPinned chat
            tags:
                - chat
            x-speakeasy-name-override: setPinned
    /rpc/chat.submitFeedback:
        post:
            description: Submit user feedback for a chat (success/failure)
            operationId: submitFeedback
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SubmitFeedbackRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CaptureEventResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
            summary: submitFeedback chat
            tags:
                - chat
            x-speakeasy-name-override: submitFeedback
    /rpc/chat.summarize:
        post:
            description: Generate or return a persisted LLM summary of a chat session transcript. When a summary already exists and regenerate is false, returns the cached summary without calling the model.
            operationId: summarizeChat
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SummarizeRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SummarizeChatResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: summarize chat
            tags:
                - chat
            x-speakeasy-name-override: summarize
            x-speakeasy-react-hook:
                name: SummarizeChat
    /rpc/chat.summarizeToolCall:
        post:
            description: Generate or return a persisted two-sentence summary of one tool call. Concurrent requests share the same cached result.
            operationId: summarizeToolCall
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SummarizeToolCallRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SummarizeToolCallResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: summarizeToolCall chat
            tags:
                - chat
            x-speakeasy-name-override: summarizeToolCall
            x-speakeasy-react-hook:
                name: SummarizeToolCall
    /rpc/chatSessions.create:
        post:
            description: Creates a new chat session token
            operationId: createChatSession
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreateResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: create chatSessions
            tags:
                - chatSessions
            x-speakeasy-name-override: create
    /rpc/chatSessions.revoke:
        delete:
            description: Revokes an existing chat session token
            operationId: revokeChatSession
            parameters:
                - allowEmptyValue: true
                  description: The chat session token to revoke
                  in: query
                  name: token
                  required: true
                  schema:
                    description: The chat session token to revoke
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: revoke chatSessions
            tags:
                - chatSessions
            x-speakeasy-name-override: revoke
    /rpc/cliAuth.authorize:
        post:
            description: Mint a short-lived one-time code bound to a PKCE code_challenge, on behalf of the authenticated dashboard user. Resolves the target project (given slug, else the org's default/first project) and records {user, org, project, scopes:[agent,hooks], challenge} against the code with a ~5 minute TTL. Requires a member-available session (org:read); NOT org-admin. Refused (403) while impersonating an organization or user, or without membership in the active org.
            operationId: cliAuthAuthorize
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AuthorizeRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AuthorizeResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: authorize cliAuth
            tags:
                - cliAuth
            x-speakeasy-name-override: authorize
    /rpc/cliAuth.redeem:
        post:
            description: 'Exchange a one-time code plus its PKCE code_verifier for a freshly minted per-user [agent,hooks] API key. No session or API-key auth: proving knowledge of the code_verifier that matches the stored challenge IS the credential. The code is single-use — consumed atomically on lookup — so any missing/expired/already-consumed code or PKCE mismatch returns 401. The raw key is returned exactly once and never again.'
            operationId: cliAuthRedeem
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RedeemRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RedeemResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: redeem cliAuth
            tags:
                - cliAuth
            x-speakeasy-name-override: redeem
    /rpc/dashboards.addWidget:
        post:
            description: Place a saved widget on a dashboard, as a new card at the bottom, sized for its chart type.
            operationId: addDashboardWidget
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AddDashboardWidgetRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Dashboard'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: addDashboardWidget dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: addWidget
            x-speakeasy-react-hook:
                name: AddDashboardWidget
    /rpc/dashboards.create:
        post:
            description: Make an empty dashboard. Any member of the project can.
            operationId: createDashboard
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateDashboardRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Dashboard'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createDashboard dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateDashboard
    /rpc/dashboards.delete:
        delete:
            description: Delete a dashboard and its cards. Its widgets stay saved. Its creator can; deleting someone else's needs project write access.
            operationId: deleteDashboard
            parameters:
                - allowEmptyValue: true
                  description: The dashboard to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The dashboard to delete
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteDashboard dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteDashboard
    /rpc/dashboards.duplicate:
        post:
            description: Copy a dashboard into a new one the caller owns, named "<name> (copy)". Every card's widget is copied into a new saved widget too, named the same way, so the copy is fully independent of the original. Like every widget save, each copy is validated, so a dashboard with a broken widget cannot be duplicated until the widget is fixed.
            operationId: duplicateDashboard
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DuplicateDashboardRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Dashboard'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: duplicateDashboard dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: duplicate
            x-speakeasy-react-hook:
                name: DuplicateDashboard
    /rpc/dashboards.duplicateBuiltIn:
        post:
            description: Copy a Speakeasy-built dashboard into a new one the caller owns, named "<name> (copy)", with a new saved widget per card, named the same way. The copy is a project dashboard like any other and can be changed; the built-in stays as it is.
            operationId: duplicateBuiltInDashboard
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DuplicateBuiltInDashboardRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Dashboard'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: duplicateBuiltInDashboard dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: duplicateBuiltIn
            x-speakeasy-react-hook:
                name: DuplicateBuiltInDashboard
    /rpc/dashboards.get:
        get:
            description: Get one dashboard by id, with its cards and saved filters.
            operationId: getDashboard
            parameters:
                - allowEmptyValue: true
                  description: The dashboard to get
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The dashboard to get
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Dashboard'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getDashboard dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: Dashboard
                type: query
    /rpc/dashboards.list:
        get:
            description: List the project's dashboards, most recently updated first, each with its cards.
            operationId: listDashboards
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDashboardsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listDashboards dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: Dashboards
                type: query
    /rpc/dashboards.removeWidget:
        post:
            description: Take a card off a dashboard. The widget itself stays saved.
            operationId: removeDashboardWidget
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RemoveDashboardWidgetRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Dashboard'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: removeDashboardWidget dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: removeWidget
            x-speakeasy-react-hook:
                name: RemoveDashboardWidget
    /rpc/dashboards.saveFilters:
        post:
            description: Store the date range and filter values a dashboard opens on, for everyone. Until saved, changes in the filter bar are the viewer's own.
            operationId: saveDashboardFilters
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SaveDashboardFiltersRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Dashboard'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: saveDashboardFilters dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: saveFilters
            x-speakeasy-react-hook:
                name: SaveDashboardFilters
    /rpc/dashboards.saveLayout:
        post:
            description: Move and resize a dashboard's cards. Each card names an existing placement and where it now sits; cards not listed stay as they are, so a layout saved from an older view cannot take off a card someone has just added. A card is added with addWidget and taken off with removeWidget. The grid is 12 columns wide, and each chart type has a minimum size. Layout autosaves, so the last save wins.
            operationId: saveDashboardLayout
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SaveDashboardLayoutRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Dashboard'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: saveDashboardLayout dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: saveLayout
            x-speakeasy-react-hook:
                name: SaveDashboardLayout
    /rpc/dashboards.update:
        post:
            description: Rename a dashboard or change its description. Its creator can; editing someone else's needs project write access.
            operationId: updateDashboard
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateDashboardRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Dashboard'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateDashboard dashboards
            tags:
                - dashboards
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateDashboard
    /rpc/dataExports.createDestination:
        post:
            description: Create a data export destination in the selected project.
            operationId: createDataExportDestination
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateDestinationForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Destination'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createDestination dataExports
            tags:
                - dataExports
            x-speakeasy-name-override: createDestination
            x-speakeasy-react-hook:
                name: CreateDataExportDestination
    /rpc/dataExports.createRoute:
        post:
            description: Create the selected data source's export route configuration.
            operationId: createDataExportRoute
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateDataExportRouteForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DataExportRoute'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createRoute dataExports
            tags:
                - dataExports
            x-speakeasy-name-override: createRoute
            x-speakeasy-react-hook:
                name: CreateDataExportRoute
    /rpc/dataExports.deleteDestination:
        delete:
            description: Delete a data export destination that is not referenced by an active route.
            operationId: deleteDataExportDestination
            parameters:
                - allowEmptyValue: true
                  description: Destination ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: Destination ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Destination transport type.
                  in: query
                  name: destination_type
                  required: true
                  schema:
                    description: Destination transport type.
                    enum:
                        - otel
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteDestination dataExports
            tags:
                - dataExports
            x-speakeasy-name-override: deleteDestination
            x-speakeasy-react-hook:
                name: DeleteDataExportDestination
    /rpc/dataExports.deleteRoute:
        delete:
            description: Delete a data source's export route configuration.
            operationId: deleteDataExportRoute
            parameters:
                - allowEmptyValue: true
                  description: Route ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: Route ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteRoute dataExports
            tags:
                - dataExports
            x-speakeasy-name-override: deleteRoute
            x-speakeasy-react-hook:
                name: DeleteDataExportRoute
    /rpc/dataExports.listDestinations:
        get:
            description: List data export destinations for the selected project.
            operationId: listDataExportDestinations
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDestinationsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listDestinations dataExports
            tags:
                - dataExports
            x-speakeasy-name-override: listDestinations
            x-speakeasy-react-hook:
                name: DataExportDestinations
    /rpc/dataExports.listForOrg:
        get:
            description: List data export destinations and routes across the active organization.
            operationId: listDataExportsForOrg
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDataExportsForOrgResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listForOrg dataExports
            tags:
                - dataExports
            x-speakeasy-name-override: listForOrg
            x-speakeasy-react-hook:
                name: ListDataExportsForOrg
    /rpc/dataExports.listRoutes:
        get:
            description: List data source export route configurations for the selected project.
            operationId: listDataExportRoutes
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDataExportRoutesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listRoutes dataExports
            tags:
                - dataExports
            x-speakeasy-name-override: listRoutes
            x-speakeasy-react-hook:
                name: DataExportRoutes
    /rpc/dataExports.updateDestination:
        post:
            description: Replace a data export destination in the selected project.
            operationId: updateDataExportDestination
            parameters:
                - allowEmptyValue: true
                  description: Destination ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: Destination ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateDestinationRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Destination'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateDestination dataExports
            tags:
                - dataExports
            x-speakeasy-name-override: updateDestination
            x-speakeasy-react-hook:
                name: UpdateDataExportDestination
    /rpc/dataExports.updateRoute:
        post:
            description: Replace the selected data source's export route configuration.
            operationId: updateDataExportRoute
            parameters:
                - allowEmptyValue: true
                  description: Route ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: Route ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateRouteRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DataExportRoute'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateRoute dataExports
            tags:
                - dataExports
            x-speakeasy-name-override: updateRoute
            x-speakeasy-react-hook:
                name: UpdateDataExportRoute
    /rpc/deployments.active:
        get:
            description: Get the active deployment for a project.
            operationId: getActiveDeployment
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetActiveDeploymentResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getActiveDeployment deployments
            tags:
                - deployments
            x-speakeasy-name-override: active
            x-speakeasy-react-hook:
                name: ActiveDeployment
    /rpc/deployments.create:
        post:
            description: Create a deployment to load tool definitions.
            operationId: createDeployment
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: A unique identifier that will mitigate against duplicate deployments.
                  example: 01jqq0ajmb4qh9eppz48dejr2m
                  in: header
                  name: Idempotency-Key
                  required: true
                  schema:
                    description: A unique identifier that will mitigate against duplicate deployments.
                    example: 01jqq0ajmb4qh9eppz48dejr2m
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateDeploymentRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreateDeploymentResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createDeployment deployments
            tags:
                - deployments
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateDeployment
    /rpc/deployments.evaluateOpenAPIv3:
        post:
            description: Compare an uploaded OpenAPI document with the version of the same source in the active deployment. Reports changes to tools, inputs and security without deploying anything.
            operationId: evaluateOpenAPIv3
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/EvaluateOpenAPIv3Form'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OpenAPIv3Evaluation'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: evaluateOpenAPIv3 deployments
            tags:
                - deployments
            x-speakeasy-name-override: evaluateOpenAPIv3
            x-speakeasy-react-hook:
                name: EvaluateOpenAPIv3
    /rpc/deployments.evaluation:
        get:
            description: Compare the OpenAPI documents in a deployment with the deployment it was created from.
            operationId: getDeploymentEvaluation
            parameters:
                - allowEmptyValue: true
                  description: The ID of the deployment to evaluate.
                  in: query
                  name: deployment_id
                  required: true
                  schema:
                    description: The ID of the deployment to evaluate.
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetDeploymentEvaluationResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getDeploymentEvaluation deployments
            tags:
                - deployments
            x-speakeasy-name-override: evaluation
            x-speakeasy-react-hook:
                name: DeploymentEvaluation
    /rpc/deployments.evolve:
        post:
            description: Create a new deployment with additional or updated tool sources.
            operationId: evolveDeployment
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/EvolveForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/EvolveResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: evolve deployments
            tags:
                - deployments
            x-speakeasy-name-override: evolveDeployment
            x-speakeasy-react-hook:
                name: EvolveDeployment
    /rpc/deployments.get:
        get:
            description: Get a deployment by its ID.
            operationId: getDeployment
            parameters:
                - allowEmptyValue: true
                  description: The ID of the deployment
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the deployment
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetDeploymentResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getDeployment deployments
            tags:
                - deployments
            x-speakeasy-name-override: getById
            x-speakeasy-react-hook:
                name: Deployment
    /rpc/deployments.latest:
        get:
            description: Get the latest deployment for a project.
            operationId: getLatestDeployment
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetLatestDeploymentResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getLatestDeployment deployments
            tags:
                - deployments
            x-speakeasy-name-override: latest
            x-speakeasy-react-hook:
                name: LatestDeployment
    /rpc/deployments.list:
        get:
            description: List all deployments in descending order of creation.
            operationId: listDeployments
            parameters:
                - allowEmptyValue: true
                  description: The cursor to fetch results from
                  in: query
                  name: cursor
                  schema:
                    description: The cursor to fetch results from
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDeploymentResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listDeployments deployments
            tags:
                - deployments
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListDeployments
    /rpc/deployments.logs:
        get:
            description: Get logs for a deployment.
            operationId: getDeploymentLogs
            parameters:
                - allowEmptyValue: true
                  description: The ID of the deployment
                  in: query
                  name: deployment_id
                  required: true
                  schema:
                    description: The ID of the deployment
                    type: string
                - allowEmptyValue: true
                  description: The cursor to fetch results from
                  in: query
                  name: cursor
                  schema:
                    description: The cursor to fetch results from
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetDeploymentLogsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getDeploymentLogs deployments
            tags:
                - deployments
            x-speakeasy-name-override: logs
            x-speakeasy-react-hook:
                name: DeploymentLogs
    /rpc/deployments.redeploy:
        post:
            description: Redeploys an existing deployment.
            operationId: redeployDeployment
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RedeployRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RedeployResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: redeploy deployments
            tags:
                - deployments
            x-speakeasy-name-override: redeployDeployment
            x-speakeasy-react-hook:
                name: RedeployDeployment
    /rpc/deviceIntegrations.deleteConfig:
        post:
            description: Disconnect the org-wide device integration for a provider. Synced inventory becomes invisible to coverage; reconnecting starts fresh.
            operationId: deleteDeviceIntegrationConfig
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DeleteConfigRequestBody'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: deleteConfig deviceIntegrations
            tags:
                - deviceIntegrations
            x-speakeasy-name-override: deleteConfig
            x-speakeasy-react-hook:
                name: DeleteDeviceIntegrationConfig
    /rpc/deviceIntegrations.getConfig:
        get:
            description: Get the org-wide device integration config for a provider. Returns an empty config (enabled=false, has_credentials=false) when none is set.
            operationId: getDeviceIntegrationConfig
            parameters:
                - allowEmptyValue: true
                  description: Provider identifier (e.g. jamf, kandji, drata, vanta).
                  in: query
                  name: provider
                  required: true
                  schema:
                    description: Provider identifier (e.g. jamf, kandji, drata, vanta).
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeviceIntegrationConfig'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: getConfig deviceIntegrations
            tags:
                - deviceIntegrations
            x-speakeasy-name-override: getConfig
            x-speakeasy-react-hook:
                name: DeviceIntegrationConfig
    /rpc/deviceIntegrations.getCoverage:
        get:
            description: Summarize agent coverage across the org's connected MDM inventories, optionally scoped to one provider.
            operationId: getDeviceIntegrationCoverage
            parameters:
                - allowEmptyValue: true
                  description: Optionally scope coverage to one provider (e.g. jamf).
                  in: query
                  name: provider
                  schema:
                    description: Optionally scope coverage to one provider (e.g. jamf).
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeviceIntegrationCoverage'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: getCoverage deviceIntegrations
            tags:
                - deviceIntegrations
            x-speakeasy-name-override: getCoverage
            x-speakeasy-react-hook:
                name: DeviceIntegrationCoverage
    /rpc/deviceIntegrations.listManagedDevices:
        get:
            description: Page through the org's synced MDM device inventory, newest first, with each device's coverage bucket.
            operationId: listManagedDevices
            parameters:
                - allowEmptyValue: true
                  description: Only devices synced from this provider.
                  in: query
                  name: provider
                  schema:
                    description: Only devices synced from this provider.
                    type: string
                - allowEmptyValue: true
                  description: Only devices in this coverage bucket.
                  in: query
                  name: coverage_bucket
                  schema:
                    description: Only devices in this coverage bucket.
                    enum:
                        - agent_active
                        - agent_stale
                        - agent_other_device
                        - no_agent
                        - no_email
                        - unresolved_email
                        - missing
                    type: string
                - allowEmptyValue: true
                  description: Only devices assigned to these Speakeasy users. Combined with user_emails as an OR, because a device only carries a resolved user id when the MDM's reported email matched a member.
                  in: query
                  name: user_ids
                  schema:
                    description: Only devices assigned to these Speakeasy users. Combined with user_emails as an OR, because a device only carries a resolved user id when the MDM's reported email matched a member.
                    items:
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Only devices whose MDM-reported assigned email is one of these, matched case-insensitively.
                  in: query
                  name: user_emails
                  schema:
                    description: Only devices whose MDM-reported assigned email is one of these, matched case-insensitively.
                    items:
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Pagination cursor from a previous page.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor from a previous page.
                    type: string
                - allowEmptyValue: true
                  description: Page size. Defaults to 50, maximum 200.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: Page size. Defaults to 50, maximum 200.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListManagedDevicesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listManagedDevices deviceIntegrations
            tags:
                - deviceIntegrations
            x-speakeasy-name-override: listManagedDevices
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: ManagedDevices
    /rpc/deviceIntegrations.listProviders:
        get:
            description: List the providers the device integrations framework supports, including the credential fields each needs.
            operationId: listDeviceIntegrationProviders
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDeviceIntegrationProvidersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listProviders deviceIntegrations
            tags:
                - deviceIntegrations
            x-speakeasy-name-override: listProviders
            x-speakeasy-react-hook:
                name: DeviceIntegrationProviders
    /rpc/deviceIntegrations.listSchedules:
        get:
            description: List the sync schedules and their state for a provider's org-wide device integration config. Returns an empty list when no config is set.
            operationId: listDeviceIntegrationSchedules
            parameters:
                - allowEmptyValue: true
                  description: Provider identifier (e.g. jamf, kandji, drata, vanta).
                  in: query
                  name: provider
                  required: true
                  schema:
                    description: Provider identifier (e.g. jamf, kandji, drata, vanta).
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDeviceIntegrationSchedulesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listSchedules deviceIntegrations
            tags:
                - deviceIntegrations
            x-speakeasy-name-override: listSchedules
            x-speakeasy-react-hook:
                name: DeviceIntegrationSchedules
    /rpc/deviceIntegrations.retrySchedule:
        post:
            description: Make one sync schedule due immediately, lifting any automatic pause and resetting its failure streak.
            operationId: retryDeviceIntegrationSchedule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RetryScheduleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeviceIntegrationScheduleState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: retrySchedule deviceIntegrations
            tags:
                - deviceIntegrations
            x-speakeasy-name-override: retrySchedule
            x-speakeasy-react-hook:
                name: RetryDeviceIntegrationSchedule
    /rpc/deviceIntegrations.setScheduleEnabled:
        post:
            description: Enable or disable one sync schedule of a provider's device integration. Disabling records user intent on the schedule; only re-enabling clears it — config saves do not.
            operationId: setDeviceIntegrationScheduleEnabled
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetScheduleEnabledRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeviceIntegrationScheduleState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: setScheduleEnabled deviceIntegrations
            tags:
                - deviceIntegrations
            x-speakeasy-name-override: setScheduleEnabled
            x-speakeasy-react-hook:
                name: SetDeviceIntegrationScheduleEnabled
    /rpc/deviceIntegrations.testConnection:
        post:
            description: Probe the provider with the stored credentials to verify they work. Save the config first; this tests what is stored, so secrets never round-trip.
            operationId: testDeviceIntegrationConnection
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DeleteConfigRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeviceIntegrationTestConnectionResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: testConnection deviceIntegrations
            tags:
                - deviceIntegrations
            x-speakeasy-name-override: testConnection
            x-speakeasy-react-hook:
                name: TestDeviceIntegrationConnection
    /rpc/deviceIntegrations.upsertConfig:
        post:
            description: 'Create or update the org-wide device integration config for a provider. Omit credentials to keep the stored secrets; supplying credentials rotates them in place and resets the schedules'' sync state. Settings merge per key: an omitted key keeps its stored value, a supplied key overwrites it.'
            operationId: upsertDeviceIntegrationConfig
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertConfigRequestBody2'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeviceIntegrationConfig'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: upsertConfig deviceIntegrations
            tags:
                - deviceIntegrations
            x-speakeasy-name-override: upsertConfig
            x-speakeasy-react-hook:
                name: UpsertDeviceIntegrationConfig
    /rpc/domain.checkHealth:
        post:
            description: Check the routing and certificate health of the organization's custom domain
            operationId: checkDomainHealth
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CustomDomain'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: checkHealth domains
            tags:
                - domains
            x-speakeasy-name-override: checkHealth
            x-speakeasy-react-hook:
                name: CheckDomainHealth
    /rpc/domain.delete:
        delete:
            description: Delete a custom domain
            operationId: deleteDomain
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteDomain domains
            tags:
                - domains
            x-speakeasy-name-override: deleteDomain
            x-speakeasy-react-hook:
                name: deleteDomain
    /rpc/domain.get:
        get:
            description: Get the custom domain for an organization
            operationId: getDomain
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CustomDomain'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getDomain domains
            tags:
                - domains
            x-speakeasy-name-override: getDomain
            x-speakeasy-react-hook:
                name: getDomain
    /rpc/domain.list:
        get:
            description: List the custom domains for an organization. The result is empty when no custom domain has been configured.
            operationId: listDomains
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCustomDomainsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listDomains domains
            tags:
                - domains
            x-speakeasy-name-override: listDomains
            x-speakeasy-react-hook:
                name: listDomains
    /rpc/domain.listMcpEndpoints:
        get:
            description: List the MCP endpoints registered under the organization's custom domain across every project. Returns enriched rows that include the parent MCP server and project so callers can preview what a custom-domain deletion would cascade through.
            operationId: listCustomDomainMcpEndpoints
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCustomDomainMcpEndpointsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listMcpEndpoints domains
            tags:
                - domains
            x-speakeasy-name-override: listMcpEndpoints
            x-speakeasy-react-hook:
                name: CustomDomainMcpEndpoints
    /rpc/domain.listRootMcpServers:
        get:
            description: List the organization's MCP servers that can be mapped to the custom domain root, including servers not yet attached to the domain
            operationId: listRootMcpServers
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRootMcpServersResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listRootMcpServers domains
            tags:
                - domains
            x-speakeasy-name-override: listRootMcpServers
            x-speakeasy-react-hook:
                name: RootMcpServers
                type: query
    /rpc/domain.register:
        post:
            description: Create a custom domain for an organization
            operationId: registerDomain
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateDomainRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CustomDomain'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createDomain domains
            tags:
                - domains
            x-speakeasy-name-override: registerDomain
            x-speakeasy-react-hook:
                name: registerDomain
    /rpc/domain.setRootMcpEndpoint:
        post:
            description: Set or clear the MCP endpoint mapped to a custom domain's root. Pass mcp_endpoint_id for an endpoint already attached to the domain, or mcp_server_id to attach a server (creating its domain endpoint if needed) and map it in one call — usable while the domain is still pending verification, so a migration can be staged before DNS cuts over.
            operationId: setRootMcpEndpoint
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetRootMcpEndpointRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CustomDomain'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: setRootMcpEndpoint domains
            tags:
                - domains
            x-speakeasy-name-override: setRootMcpEndpoint
            x-speakeasy-react-hook:
                name: SetRootMcpEndpoint
    /rpc/domain.update:
        post:
            description: Update settings for the organization's custom domain
            operationId: updateDomain
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateDomainRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CustomDomain'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateDomain domains
            tags:
                - domains
            x-speakeasy-name-override: updateDomain
            x-speakeasy-react-hook:
                name: updateDomain
    /rpc/environments.clone:
        post:
            description: Clone an environment into a new one. Either copies only the variable names with empty placeholder values, or copies the encrypted values verbatim. Encrypted secret values are never decrypted by the application during the clone operation.
            operationId: cloneEnvironment
            parameters:
                - allowEmptyValue: true
                  description: The slug of the source environment to clone
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CloneEnvironmentRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Environment'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: cloneEnvironment environments
            tags:
                - environments
            x-speakeasy-name-override: clone
            x-speakeasy-react-hook:
                name: CloneEnvironment
    /rpc/environments.create:
        post:
            description: Create a new environment
            operationId: createEnvironment
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateEnvironmentForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Environment'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createEnvironment environments
            tags:
                - environments
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateEnvironment
    /rpc/environments.delete:
        delete:
            description: Delete an environment
            operationId: deleteEnvironment
            parameters:
                - allowEmptyValue: true
                  description: The slug of the environment to delete
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteEnvironment environments
            tags:
                - environments
            x-speakeasy-name-override: deleteBySlug
            x-speakeasy-react-hook:
                name: DeleteEnvironment
    /rpc/environments.deleteSourceLink:
        delete:
            description: Delete a link between a source and an environment
            operationId: deleteSourceEnvironmentLink
            parameters:
                - allowEmptyValue: true
                  description: The kind of source (http or function)
                  in: query
                  name: source_kind
                  required: true
                  schema:
                    description: The kind of source that can be linked to an environment
                    enum:
                        - http
                        - function
                    type: string
                - allowEmptyValue: true
                  description: The slug of the source
                  in: query
                  name: source_slug
                  required: true
                  schema:
                    description: The slug of the source
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteSourceEnvironmentLink environments
            tags:
                - environments
            x-speakeasy-name-override: deleteSourceLink
            x-speakeasy-react-hook:
                name: DeleteSourceEnvironmentLink
    /rpc/environments.deleteToolsetLink:
        delete:
            description: Delete a link between a toolset and an environment
            operationId: deleteToolsetEnvironmentLink
            parameters:
                - allowEmptyValue: true
                  description: The ID of the toolset
                  in: query
                  name: toolset_id
                  required: true
                  schema:
                    description: The ID of the toolset
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteToolsetEnvironmentLink environments
            tags:
                - environments
            x-speakeasy-name-override: deleteToolsetLink
            x-speakeasy-react-hook:
                name: DeleteToolsetEnvironmentLink
    /rpc/environments.getSourceEnvironment:
        get:
            description: Get the environment linked to a source
            operationId: getSourceEnvironment
            parameters:
                - allowEmptyValue: true
                  description: The kind of source (http or function)
                  in: query
                  name: source_kind
                  required: true
                  schema:
                    description: The kind of source that can be linked to an environment
                    enum:
                        - http
                        - function
                    type: string
                - allowEmptyValue: true
                  description: The slug of the source
                  in: query
                  name: source_slug
                  required: true
                  schema:
                    description: The slug of the source
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Environment'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getSourceEnvironment environments
            tags:
                - environments
            x-speakeasy-name-override: getBySource
            x-speakeasy-react-hook:
                name: GetSourceEnvironment
    /rpc/environments.getToolsetEnvironment:
        get:
            description: Get the environment linked to a toolset
            operationId: getToolsetEnvironment
            parameters:
                - allowEmptyValue: true
                  description: The ID of the toolset
                  in: query
                  name: toolset_id
                  required: true
                  schema:
                    description: The ID of the toolset
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Environment'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolsetEnvironment environments
            tags:
                - environments
            x-speakeasy-name-override: getByToolset
            x-speakeasy-react-hook:
                name: GetToolsetEnvironment
    /rpc/environments.list:
        get:
            description: List all environments for an organization
            operationId: listEnvironments
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListEnvironmentsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listEnvironments environments
            tags:
                - environments
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListEnvironments
    /rpc/environments.setSourceLink:
        put:
            description: Set (upsert) a link between a source and an environment
            operationId: setSourceEnvironmentLink
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetSourceEnvironmentLinkRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SourceEnvironmentLink'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: setSourceEnvironmentLink environments
            tags:
                - environments
            x-speakeasy-name-override: setSourceLink
            x-speakeasy-react-hook:
                name: SetSourceEnvironmentLink
    /rpc/environments.setToolsetLink:
        put:
            description: Set (upsert) a link between a toolset and an environment
            operationId: setToolsetEnvironmentLink
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetToolsetEnvironmentLinkRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ToolsetEnvironmentLink'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: setToolsetEnvironmentLink environments
            tags:
                - environments
            x-speakeasy-name-override: setToolsetLink
            x-speakeasy-react-hook:
                name: SetToolsetEnvironmentLink
    /rpc/environments.update:
        post:
            description: Update an environment
            operationId: updateEnvironment
            parameters:
                - allowEmptyValue: true
                  description: The slug of the environment to update
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateEnvironmentRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Environment'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateEnvironment environments
            tags:
                - environments
            x-speakeasy-name-override: updateBySlug
            x-speakeasy-react-hook:
                name: UpdateEnvironment
    /rpc/external.receiveWorkOSWebhook:
        post:
            description: Receive and enqueue a WorkOS webhook event.
            operationId: receiveWorkOSWebhook
            parameters:
                - allowEmptyValue: true
                  description: WorkOS webhook signature header
                  in: header
                  name: WorkOS-Signature
                  schema:
                    description: WorkOS webhook signature header
                    type: string
            responses:
                "204":
                    description: No Content response.
            summary: receiveWorkOSWebhook external
            tags:
                - external
            x-speakeasy-name-override: receiveWorkOSWebhook
            x-speakeasy-react-hook:
                disabled: true
    /rpc/externalCredentials.createAwsIam:
        post:
            description: Create an AWS IAM external credential. Requires org:admin.
            operationId: createAwsIamCredential
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateAwsIamCredentialForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AwsIamCredential'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createAwsIamCredential externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: createAwsIam
            x-speakeasy-react-hook:
                name: CreateAwsIamCredential
    /rpc/externalCredentials.createGcpIam:
        post:
            description: Create a GCP IAM external credential. Requires org:admin.
            operationId: createGcpIamCredential
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateGcpIamCredentialForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GcpIamCredential'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createGcpIamCredential externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: createGcpIam
            x-speakeasy-react-hook:
                name: CreateGcpIamCredential
    /rpc/externalCredentials.deleteAwsIam:
        delete:
            description: Soft-delete an AWS IAM external credential by ID. Requires org:admin. Refused with a conflict while any live external key still names the credential, since deleting it would leave those keys unable to reach the key material they sign with.
            operationId: deleteAwsIamCredential
            parameters:
                - allowEmptyValue: true
                  description: The ID of the credential to delete.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the credential to delete.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteAwsIamCredential externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: deleteAwsIam
            x-speakeasy-react-hook:
                name: DeleteAwsIamCredential
    /rpc/externalCredentials.deleteGcpIam:
        delete:
            description: Soft-delete a GCP IAM external credential by ID. Requires org:admin. Refused with a conflict while any live external key still names the credential, since deleting it would leave those keys unable to reach the key material they sign with.
            operationId: deleteGcpIamCredential
            parameters:
                - allowEmptyValue: true
                  description: The ID of the credential to delete.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the credential to delete.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteGcpIamCredential externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: deleteGcpIam
            x-speakeasy-react-hook:
                name: DeleteGcpIamCredential
    /rpc/externalCredentials.getAwsIam:
        get:
            description: Get an AWS IAM external credential by ID. Requires org:read.
            operationId: getAwsIamCredential
            parameters:
                - allowEmptyValue: true
                  description: The ID of the credential to get.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the credential to get.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AwsIamCredential'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getAwsIamCredential externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: getAwsIam
            x-speakeasy-react-hook:
                name: GetAwsIamCredential
    /rpc/externalCredentials.getGcpIam:
        get:
            description: Get a GCP IAM external credential by ID. Requires org:read.
            operationId: getGcpIamCredential
            parameters:
                - allowEmptyValue: true
                  description: The ID of the credential to get.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the credential to get.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GcpIamCredential'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getGcpIamCredential externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: getGcpIam
            x-speakeasy-react-hook:
                name: GetGcpIamCredential
    /rpc/externalCredentials.getGcpSetupInfo:
        get:
            description: Report what the customer must grant in their own GCP project before Speakeasy can impersonate a service account there. Readable before any credential exists, since impersonation is a precondition of creating one. Requires org:read.
            operationId: getGcpSetupInfo
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GcpSetupInfo'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getGcpSetupInfo externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: getGcpSetupInfo
            x-speakeasy-react-hook:
                name: GcpSetupInfo
    /rpc/externalCredentials.list:
        get:
            description: List the organization's external credentials (provider-independent summary). Optionally filter by provider. Requires org:read.
            operationId: listExternalCredentials
            parameters:
                - allowEmptyValue: true
                  description: Only return credentials for this provider.
                  in: query
                  name: provider
                  schema:
                    description: Only return credentials for this provider.
                    enum:
                        - aws_iam
                        - gcp_iam
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListExternalCredentialsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listExternalCredentials externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListExternalCredentials
    /rpc/externalCredentials.listAwsIam:
        get:
            description: List the organization's AWS IAM external credentials. Requires org:read.
            operationId: listAwsIamCredentials
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListExternalCredentialsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listAwsIamCredentials externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: listAwsIam
            x-speakeasy-react-hook:
                name: ListAwsIamCredentials
    /rpc/externalCredentials.listGcpIam:
        get:
            description: List the organization's GCP IAM external credentials. Requires org:read.
            operationId: listGcpIamCredentials
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListExternalCredentialsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listGcpIamCredentials externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: listGcpIam
            x-speakeasy-react-hook:
                name: ListGcpIamCredentials
    /rpc/externalCredentials.updateAwsIam:
        post:
            description: Replace an AWS IAM external credential's configuration. Requires org:admin.
            operationId: updateAwsIamCredential
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateAwsIamCredentialRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AwsIamCredential'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateAwsIamCredential externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: updateAwsIam
            x-speakeasy-react-hook:
                name: UpdateAwsIamCredential
    /rpc/externalCredentials.updateGcpIam:
        post:
            description: Replace a GCP IAM external credential's configuration. Requires org:admin.
            operationId: updateGcpIamCredential
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateGcpIamCredentialRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GcpIamCredential'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateGcpIamCredential externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: updateGcpIam
            x-speakeasy-react-hook:
                name: UpdateGcpIamCredential
    /rpc/externalCredentials.verifyGcpIam:
        post:
            description: 'Probe that Speakeasy can impersonate the service account a GCP IAM credential names, and report the principal it resolves to. Ephemeral: nothing is persisted. Rate limited per organization. Requires org:admin.'
            operationId: verifyGcpIamCredential
            parameters:
                - allowEmptyValue: true
                  description: The ID of the credential to verify.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the credential to verify.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/VerifyCredentialResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "429":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'rate_limit_exceeded: rate limit exceeded'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: verifyGcpIamCredential externalCredentials
            tags:
                - externalCredentials
            x-speakeasy-name-override: verifyGcpIam
            x-speakeasy-react-hook:
                name: VerifyGcpIamCredential
    /rpc/externalKeys.createAwsKms:
        post:
            description: Create an AWS KMS external key. Requires org:admin.
            operationId: createAwsKmsKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateAwsKmsKeyForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AwsKmsKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createAwsKmsKey externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: createAwsKms
            x-speakeasy-react-hook:
                name: CreateAwsKmsKey
    /rpc/externalKeys.createGcpKms:
        post:
            description: Create a GCP KMS external key. Requires org:admin.
            operationId: createGcpKmsKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateGcpKmsKeyForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GcpKmsKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createGcpKmsKey externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: createGcpKms
            x-speakeasy-react-hook:
                name: CreateGcpKmsKey
    /rpc/externalKeys.deleteAwsKms:
        delete:
            description: Soft-delete an AWS KMS external key by ID. Requires org:admin. Refused with a conflict while any JSON Web Key Set or published JSON Web Key still references the key, since deleting it would break verification for every already-published kid.
            operationId: deleteAwsKmsKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key to delete.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key to delete.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteAwsKmsKey externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: deleteAwsKms
            x-speakeasy-react-hook:
                name: DeleteAwsKmsKey
    /rpc/externalKeys.deleteGcpKms:
        delete:
            description: Soft-delete a GCP KMS external key by ID. Requires org:admin. Refused with a conflict while any JSON Web Key Set or published JSON Web Key still references the key, since deleting it would break verification for every already-published kid.
            operationId: deleteGcpKmsKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key to delete.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key to delete.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteGcpKmsKey externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: deleteGcpKms
            x-speakeasy-react-hook:
                name: DeleteGcpKmsKey
    /rpc/externalKeys.getAwsKms:
        get:
            description: Get an AWS KMS external key by ID. Requires org:read.
            operationId: getAwsKmsKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key to get.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key to get.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AwsKmsKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getAwsKmsKey externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: getAwsKms
            x-speakeasy-react-hook:
                name: GetAwsKmsKey
    /rpc/externalKeys.getGcpKms:
        get:
            description: Get a GCP KMS external key by ID. Requires org:read.
            operationId: getGcpKmsKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key to get.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key to get.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GcpKmsKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getGcpKmsKey externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: getGcpKms
            x-speakeasy-react-hook:
                name: GetGcpKmsKey
    /rpc/externalKeys.list:
        get:
            description: List the organization's external keys (provider-independent summary). Optionally filter by provider. Requires org:read.
            operationId: listExternalKeys
            parameters:
                - allowEmptyValue: true
                  description: Only return keys for this provider.
                  in: query
                  name: provider
                  schema:
                    description: Only return keys for this provider.
                    enum:
                        - aws_kms
                        - gcp_kms
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListExternalKeysResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listExternalKeys externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListExternalKeys
    /rpc/externalKeys.listAwsKms:
        get:
            description: List the organization's AWS KMS external keys. Requires org:read.
            operationId: listAwsKmsKeys
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListExternalKeysResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listAwsKmsKeys externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: listAwsKms
            x-speakeasy-react-hook:
                name: ListAwsKmsKeys
    /rpc/externalKeys.listGcpKms:
        get:
            description: List the organization's GCP KMS external keys. Requires org:read.
            operationId: listGcpKmsKeys
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListExternalKeysResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listGcpKmsKeys externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: listGcpKms
            x-speakeasy-react-hook:
                name: ListGcpKmsKeys
    /rpc/externalKeys.updateAwsKms:
        post:
            description: 'Update an AWS KMS external key''s name, backing credential and customer grant reference. Requires org:admin. These three fields are replaced, not patched: omitting the optional customer_grant_reference clears it. The key ARN and algorithm are immutable: an external key identifies exactly one signable key permanently, so changing what the key is means deleting it and creating a new one. The backing credential stays editable because repairing the path to a key does not change the key material Speakeasy signs with.'
            operationId: updateAwsKmsKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateAwsKmsKeyRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AwsKmsKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateAwsKmsKey externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: updateAwsKms
            x-speakeasy-react-hook:
                name: UpdateAwsKmsKey
    /rpc/externalKeys.updateGcpKms:
        post:
            description: 'Update a GCP KMS external key''s name, backing credential and customer grant reference. Requires org:admin. These three fields are replaced, not patched: omitting the optional customer_grant_reference clears it. The resource name and algorithm are immutable: an external key identifies exactly one signable crypto key version permanently, so changing what the key is means deleting it and creating a new one. The backing credential stays editable because repairing the path to a key does not change the key material Speakeasy signs with.'
            operationId: updateGcpKmsKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateGcpKmsKeyRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GcpKmsKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateGcpKmsKey externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: updateGcpKms
            x-speakeasy-react-hook:
                name: UpdateGcpKmsKey
    /rpc/externalKeys.verifyGcpKms:
        post:
            description: 'Probe that Speakeasy can reach a GCP KMS external key through its backing credential and use it to sign: read the key''s public half, confirm its algorithm matches the one recorded, sign a probe digest, and verify that signature locally against the public half. Performs a real signing operation, which is billed to the key''s owner and lands in their Cloud Audit Log. Ephemeral: nothing is persisted. Rate limited per organization. Requires org:admin.'
            operationId: verifyGcpKmsKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key to verify.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key to verify.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/VerifyKmsKeyResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "429":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'rate_limit_exceeded: rate limit exceeded'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: verifyGcpKmsKey externalKeys
            tags:
                - externalKeys
            x-speakeasy-name-override: verifyGcpKms
            x-speakeasy-react-hook:
                name: VerifyGcpKmsKey
    /rpc/hooks.claude:
        post:
            tags:
                - hooks
            summary: claude hooks
            description: Unified endpoint for all Claude Code hook events. Handles SessionStart, PreToolUse, PostToolUse, and PostToolUseFailure.
            operationId: hooks#claude
            parameters:
                - name: Gram-Key
                  in: header
                  description: Optional API key for plugin-driven attribution.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Optional API key for plugin-driven attribution.
                - name: Gram-Project
                  in: header
                  description: Optional project slug for plugin-driven attribution.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Optional project slug for plugin-driven attribution.
                - name: X-Gram-Hook-Hostname
                  in: header
                  description: Optional endpoint hostname supplied by the Speakeasy hook plugin.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Optional endpoint hostname supplied by the Speakeasy hook plugin.
                - name: Idempotency-Key
                  in: header
                  description: Optional per-invocation token reused across retries so the server stores a redelivered event exactly once.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Optional per-invocation token reused across retries so the server stores a redelivered event exactly once.
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ClaudeHookPayload'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ClaudeHookResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
    /rpc/hooks.codex:
        post:
            tags:
                - hooks
            summary: codex hooks
            description: Endpoint for Codex hook events. Handles SessionStart, PreToolUse, PermissionRequest, PostToolUse, UserPromptSubmit, and Stop.
            operationId: hooks#codex
            parameters:
                - name: Gram-Key
                  in: header
                  description: API Key header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: API Key header
                - name: Gram-Project
                  in: header
                  description: project header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: project header
                - name: X-Gram-Hook-Hostname
                  in: header
                  description: Optional endpoint hostname supplied by the Speakeasy hook plugin.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Optional endpoint hostname supplied by the Speakeasy hook plugin.
                - name: Idempotency-Key
                  in: header
                  description: Optional per-invocation token reused across retries so the server stores a redelivered event exactly once.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Optional per-invocation token reused across retries so the server stores a redelivered event exactly once.
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CodexHookPayload'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CodexHookResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - device_agent_token_header_Authorization: []
                  project_slug_header_Gram-Project: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
    /rpc/hooks.cursor:
        post:
            tags:
                - hooks
            summary: cursor hooks
            description: Endpoint for Cursor hook events. Handles beforeSubmitPrompt, stop, afterAgentResponse, afterAgentThought, preToolUse, postToolUse, postToolUseFailure, beforeMCPExecution, and afterMCPExecution.
            operationId: hooks#cursor
            parameters:
                - name: Gram-Key
                  in: header
                  description: API Key header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: API Key header
                - name: Gram-Project
                  in: header
                  description: project header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: project header
                - name: X-Gram-Hook-Hostname
                  in: header
                  description: Optional endpoint hostname supplied by the Speakeasy hook plugin.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Optional endpoint hostname supplied by the Speakeasy hook plugin.
                - name: Idempotency-Key
                  in: header
                  description: Optional per-invocation token reused across retries so the server stores a redelivered event exactly once.
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Optional per-invocation token reused across retries so the server stores a redelivered event exactly once.
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CursorHookPayload'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CursorHookResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - device_agent_token_header_Authorization: []
                  project_slug_header_Gram-Project: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
    /rpc/hooks.deleteServerNameOverride:
        post:
            tags:
                - hooksServerNames
            summary: delete hooksServerNames
            description: Delete a server name display override
            operationId: deleteServerNameOverride
            parameters:
                - name: Gram-Key
                  in: header
                  description: API Key header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: API Key header
                - name: Gram-Session
                  in: header
                  description: Session header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Session header
                - name: Gram-Project
                  in: header
                  description: project header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: project header
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DeleteRequestBody'
            responses:
                "204":
                    description: No Content response.
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
    /rpc/hooks.getStatus:
        get:
            description: Report whether the organization has any hook telemetry source configured. Reads configuration only; it does not query hook traffic.
            operationId: getHooksStatus
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HooksStatus'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getStatus hooks
            tags:
                - hooks
            x-speakeasy-name-override: getStatus
            x-speakeasy-react-hook:
                name: GetHooksStatus
    /rpc/hooks.ingest:
        post:
            description: Feature-first unified endpoint for hook events from supported coding assistants.
            operationId: ingestHookEvent
            parameters:
                - allowEmptyValue: true
                  description: Optional API key for plugin-driven attribution.
                  in: header
                  name: Gram-Key
                  schema:
                    description: Optional API key for plugin-driven attribution.
                    type: string
                - allowEmptyValue: true
                  description: Optional project slug for plugin-driven attribution.
                  in: header
                  name: Gram-Project
                  schema:
                    description: Optional project slug for plugin-driven attribution.
                    type: string
                - allowEmptyValue: true
                  description: Optional per-invocation token reused across retries so the server stores a redelivered event exactly once.
                  in: header
                  name: Idempotency-Key
                  schema:
                    description: Optional per-invocation token reused across retries so the server stores a redelivered event exactly once.
                    type: string
                - allowEmptyValue: true
                  description: Set when the event is redelivered from a device's offline spool after control-plane downtime, under its original Idempotency-Key and occurred_at.
                  in: header
                  name: X-Gram-Replayed
                  schema:
                    description: Set when the event is redelivered from a device's offline spool after control-plane downtime, under its original Idempotency-Key and occurred_at.
                    type: boolean
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/IngestRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/IngestHookResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: ingest hooks
            tags:
                - hooks
            x-speakeasy-name-override: ingest
            x-speakeasy-react-hook:
                name: IngestHookEvent
    /rpc/hooks.listServerNameOverrides:
        get:
            tags:
                - hooksServerNames
            summary: list hooksServerNames
            description: List all server name display overrides for a project
            operationId: listServerNameOverrides
            parameters:
                - name: Gram-Key
                  in: header
                  description: API Key header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: API Key header
                - name: Gram-Session
                  in: header
                  description: Session header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Session header
                - name: Gram-Project
                  in: header
                  description: project header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: project header
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                type: array
                                items:
                                    $ref: '#/components/schemas/ServerNameOverride'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
    /rpc/hooks.otel/v1/logs:
        post:
            tags:
                - hooks
            summary: logs hooks
            description: Endpoint to receive OTEL logs data from Claude Code. Requires API key authentication, or a device-agent token from a headless device enrolled as a workload.
            operationId: hooks#logs
            parameters:
                - name: Gram-Key
                  in: header
                  description: API Key header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: API Key header
                - name: Gram-Project
                  in: header
                  description: project header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: project header
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/OTELLogsPayload'
            responses:
                "202":
                    description: Accepted response.
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - device_agent_token_header_Authorization: []
                  project_slug_header_Gram-Project: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
    /rpc/hooks.otel/v1/metrics:
        post:
            tags:
                - hooks
            summary: metrics hooks
            description: Endpoint to receive OTEL metrics data from Claude Code. Requires API key authentication, or a device-agent token from a headless device enrolled as a workload.
            operationId: hooks#metrics
            parameters:
                - name: Gram-Key
                  in: header
                  description: API Key header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: API Key header
                - name: Gram-Project
                  in: header
                  description: project header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: project header
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/OTELMetricsPayload'
            responses:
                "202":
                    description: Accepted response.
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - device_agent_token_header_Authorization: []
                  project_slug_header_Gram-Project: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
    /rpc/hooks.skillFeedback:
        post:
            description: Records agent-volunteered feedback about a distributed skill.
            operationId: skillFeedback
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SkillFeedbackPayload'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: skillFeedback hooks
            tags:
                - hooks
            x-speakeasy-name-override: skillFeedback
    /rpc/hooks.uploadSkillContent:
        post:
            description: Uploads skill manifest content requested by the unified hook ingest endpoint.
            operationId: uploadSkillContent
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UploadSkillContentPayload'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: uploadSkillContent hooks
            tags:
                - hooks
            x-speakeasy-name-override: uploadSkillContent
    /rpc/hooks.upsertServerNameOverride:
        post:
            tags:
                - hooksServerNames
            summary: upsert hooksServerNames
            description: Create or update a server name display override
            operationId: upsertServerNameOverride
            parameters:
                - name: Gram-Key
                  in: header
                  description: API Key header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: API Key header
                - name: Gram-Session
                  in: header
                  description: Session header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Session header
                - name: Gram-Project
                  in: header
                  description: project header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: project header
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ServerNameOverride'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
    /rpc/identity.resolve:
        get:
            description: Resolve an identity URN into every identifier the subject's activity is recorded under.
            operationId: resolveIdentity
            parameters:
                - allowEmptyValue: true
                  description: The identity URN to resolve, in the form '<kind>:<id>'. Kind is one of 'user' (Speakeasy user id), 'email', 'external' (the external user id an agent reported), 'apikey', or 'agent'. Callers pass whichever identifier they hold; every URN for the same subject resolves to the same identity.
                  example: user:user_01abc
                  in: query
                  name: urn
                  required: true
                  schema:
                    description: The identity URN to resolve, in the form '<kind>:<id>'. Kind is one of 'user' (Speakeasy user id), 'email', 'external' (the external user id an agent reported), 'apikey', or 'agent'. Callers pass whichever identifier they hold; every URN for the same subject resolves to the same identity.
                    example: user:user_01abc
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/IdentityModel'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: resolve identity
            tags:
                - identity
            x-speakeasy-name-override: resolve
            x-speakeasy-react-hook:
                name: Identity
    /rpc/identityProviderConnections.create:
        post:
            description: Create the organization's Okta connection. Discovers the org's authorization server, provisions a signing key and JWKS URL, and returns the console checklist. Requires org:admin and the okta-connections rollout. One live connection per organization; creation is rate limited.
            operationId: createIdentityProviderConnection
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateIdentityProviderConnectionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaIdentityProviderConnection'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "429":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'rate_limit_exceeded: rate limit exceeded'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: create identityProviderConnections
            tags:
                - identityProviderConnections
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateIdentityProviderConnection
    /rpc/identityProviderConnections.get:
        get:
            description: Get a connection by ID, or the organization's live Okta connection when no ID is given. Session only; requires org:read.
            operationId: getIdentityProviderConnection
            parameters:
                - allowEmptyValue: true
                  description: Connection ID. Omit to fetch the organization's live connection.
                  in: query
                  name: id
                  schema:
                    description: Connection ID. Omit to fetch the organization's live connection.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetIdentityProviderConnectionResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: get identityProviderConnections
            tags:
                - identityProviderConnections
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: IdentityProviderConnection
    /rpc/identityProviderConnections.listApplications:
        get:
            description: List the applications snapshot for the connection with live assignment counts and the last reconcile run. The connection must be verified. Requires org:admin.
            operationId: listIdentityProviderConnectionApplications
            parameters:
                - allowEmptyValue: true
                  description: Connection ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: Connection ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Include applications that disappeared from a run.
                  in: query
                  name: include_removed
                  schema:
                    default: false
                    description: Include applications that disappeared from a run.
                    type: boolean
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListIdentityProviderConnectionApplicationsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: listApplications identityProviderConnections
            tags:
                - identityProviderConnections
            x-speakeasy-name-override: listApplications
            x-speakeasy-react-hook:
                name: IdentityProviderConnectionApplications
    /rpc/identityProviderConnections.recordAgent:
        post:
            description: Record the Okta AI agent ID and the application it is bound to, for display. Okta does not expose these through its API. Requires org:admin.
            operationId: recordIdentityProviderConnectionAgent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RecordIdentityProviderConnectionAgentRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaIdentityProviderConnection'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: recordAgent identityProviderConnections
            tags:
                - identityProviderConnections
            x-speakeasy-name-override: recordAgent
            x-speakeasy-react-hook:
                name: RecordIdentityProviderConnectionAgent
    /rpc/identityProviderConnections.replaceClientSecret:
        post:
            description: Replace the client secret of a connection installed from the Okta Integration Network and re-verify it. The previous secret is kept if Okta rejects the new one. Requires org:admin.
            operationId: replaceIdentityProviderConnectionClientSecret
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ReplaceIdentityProviderConnectionClientSecretRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaIdentityProviderConnection'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "429":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'rate_limit_exceeded: rate limit exceeded'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: replaceClientSecret identityProviderConnections
            tags:
                - identityProviderConnections
            x-speakeasy-name-override: replaceClientSecret
            x-speakeasy-react-hook:
                name: ReplaceIdentityProviderConnectionClientSecret
    /rpc/identityProviderConnections.revoke:
        post:
            description: 'Revoke the connection: withdraw every signing key from the JWKS, disable the key material, and tombstone the connection so a new one can be created. Idempotent. Requires org:admin.'
            operationId: revokeIdentityProviderConnection
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RevokeIdentityProviderConnectionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaIdentityProviderConnection'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: revoke identityProviderConnections
            tags:
                - identityProviderConnections
            x-speakeasy-name-override: revoke
            x-speakeasy-react-hook:
                name: RevokeIdentityProviderConnection
    /rpc/identityProviderConnections.setSetupMethod:
        post:
            description: 'Switch how a pending connection connects to Okta: an install from the Okta Integration Network (client secret) or a custom API Services app (private key). Allowed until the client ID is submitted. Switching to the custom app provisions a signing key and JWKS URL once; switching away stops serving the key and switching back reuses it. A key left unused is retired when the client ID is submitted or the connection is revoked. Requires org:admin.'
            operationId: setIdentityProviderConnectionSetupMethod
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetIdentityProviderConnectionSetupMethodRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaIdentityProviderConnection'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "429":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'rate_limit_exceeded: rate limit exceeded'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: setSetupMethod identityProviderConnections
            tags:
                - identityProviderConnections
            x-speakeasy-name-override: setSetupMethod
            x-speakeasy-react-hook:
                name: SetIdentityProviderConnectionSetupMethod
    /rpc/identityProviderConnections.submitClientId:
        post:
            description: Record the client ID of the Okta API Services application and verify it. Connections installed from the Okta Integration Network also take the client secret. Allowed once, while the connection is pending; revoke and recreate to change it. Requires org:admin.
            operationId: submitIdentityProviderConnectionClientId
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SubmitIdentityProviderConnectionClientIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaIdentityProviderConnection'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "429":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'rate_limit_exceeded: rate limit exceeded'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: submitClientId identityProviderConnections
            tags:
                - identityProviderConnections
            x-speakeasy-name-override: submitClientId
            x-speakeasy-react-hook:
                name: SubmitIdentityProviderConnectionClientId
    /rpc/identityProviderConnections.syncApplications:
        post:
            description: Run the applications snapshot on the next coordinator pass, within minutes, instead of at the next scheduled interval. The connection must be verified. Rate limited per organization. Requires org:admin.
            operationId: syncIdentityProviderConnectionApplications
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SyncIdentityProviderConnectionApplicationsRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaIdentityProviderConnection'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "429":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'rate_limit_exceeded: rate limit exceeded'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: syncApplications identityProviderConnections
            tags:
                - identityProviderConnections
            x-speakeasy-name-override: syncApplications
            x-speakeasy-react-hook:
                name: SyncIdentityProviderConnectionApplications
    /rpc/identityProviderConnections.verify:
        post:
            description: 'Re-verify the connection against Okta: mint a token, confirm each required scope with a read, and record the outcome. Rate limited per organization. Requires org:admin.'
            operationId: verifyIdentityProviderConnection
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/VerifyIdentityProviderConnectionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaIdentityProviderConnection'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "429":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'rate_limit_exceeded: rate limit exceeded'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: verify identityProviderConnections
            tags:
                - identityProviderConnections
            x-speakeasy-name-override: verify
            x-speakeasy-react-hook:
                name: VerifyIdentityProviderConnection
    /rpc/instances.get:
        get:
            description: Load all relevant data for an instance of a toolset and environment
            operationId: getInstance
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset to load
                  in: query
                  name: toolset_slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetInstanceResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - chat_sessions_token_header_Gram-Chat-Session: []
            summary: getInstance instances
            tags:
                - instances
            x-speakeasy-name-override: getBySlug
            x-speakeasy-react-hook:
                name: Instance
    /rpc/integrations.get:
        get:
            tags:
                - integrations
            summary: get integrations
            description: Get a third-party integration by ID or name.
            operationId: integrations#get
            parameters:
                - name: id
                  in: query
                  description: The ID of the integration to get (refers to a package id).
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: The ID of the integration to get (refers to a package id).
                - name: name
                  in: query
                  description: The name of the integration to get (refers to a package name).
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: The name of the integration to get (refers to a package name).
                - name: Gram-Session
                  in: header
                  description: Session header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Session header
                - name: Gram-Project
                  in: header
                  description: project header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: project header
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetIntegrationResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'conflict: resource already exists'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
    /rpc/integrations.list:
        get:
            description: List available third-party integrations.
            operationId: listIntegrations
            parameters:
                - allowEmptyValue: true
                  description: Keywords to filter integrations by
                  in: query
                  name: keywords
                  schema:
                    description: Keywords to filter integrations by
                    items:
                        maxLength: 20
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListIntegrationsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: list integrations
            tags:
                - integrations
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListIntegrations
    /rpc/internalSessionIssuers.get:
        get:
            description: 'Read the organization''s internal session issuer: its state, the issuer URI to register with supported services and its published keys. Requires org:read.'
            operationId: getInternalSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/InternalSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: get internalSessionIssuers
            tags:
                - internalSessionIssuers
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: InternalSessionIssuer
    /rpc/internalSessionIssuers.rotate:
        post:
            description: 'Rotate the issuer''s signing key without changing its URI. A routine rotation takes two calls with the same active_kid: the first publishes a new key and returns rotation_ready_at, the second activates it after that time. The hourly sweep also activates a ready key on its own while the issuer is enabled and not paused, so a later second call may find the rotation already done and change nothing; a paused issuer can still be activated with the second call. With compromised set, every current key is revoked and withdrawn from the key set first, leaving the issuer keyless; the revoked keys'' signing material is then disabled and, while the issuer is rolled out and the organization has a verified email domain, a fresh key activated. If either later step fails the issuer stays keyless or reports kms_cleanup_pending, and repeating the call retries it. Repeats naming a key that a compromised rotation already replaced change nothing; naming a key the sweep revoked after a routine rotation still contains its successor. Requires org:admin; a routine rotation also needs an enabled issuer, while a compromised rotation only needs an existing issuer and its revocation is never rate limited.'
            operationId: rotateInternalSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RotateRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/InternalSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: rotate internalSessionIssuers
            tags:
                - internalSessionIssuers
            x-speakeasy-name-override: rotate
            x-speakeasy-react-hook:
                name: RotateInternalSessionIssuer
    /rpc/internalSessionIssuers.setEnabled:
        post:
            description: Enable or disable signing with the organization's internal session issuer. Enabling provisions the issuer with a dedicated Speakeasy-managed signing key the first time; it does not configure trust at any service. Disabling keeps the issuer URI and its published keys. Requires org:admin; enabling also needs a verified email domain and the issuer rollout, while disabling never does.
            operationId: setInternalSessionIssuerEnabled
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetEnabledRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/InternalSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: setEnabled internalSessionIssuers
            tags:
                - internalSessionIssuers
            x-speakeasy-name-override: setEnabled
            x-speakeasy-react-hook:
                name: SetInternalSessionIssuerEnabled
    /rpc/jsonWebKeySets.activateKey:
        post:
            description: Make a published key the set's active signing key, retiring the previously active key in the same operation. The key must be pending or retired; activating the already-active key is a no-op. Requires org:admin.
            operationId: activateJsonWebKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key to activate.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key to activate.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/JSONWebKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: activateKey jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: activateKey
            x-speakeasy-react-hook:
                name: ActivateJsonWebKey
    /rpc/jsonWebKeySets.create:
        post:
            description: Create a JSON Web Key Set backed by an organization external key, minting and publishing the set's first key straight to active. Reads the backing key's public half from the customer's KMS and refuses when the key's real algorithm disagrees with the one recorded against it. Rate limited per organization. Requires org:admin.
            operationId: createJsonWebKeySet
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateJSONWebKeySetForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/JSONWebKeySet'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "429":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'rate_limit_exceeded: rate limit exceeded'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createSet jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateJsonWebKeySet
    /rpc/jsonWebKeySets.delete:
        delete:
            description: Soft-delete a JSON Web Key Set by ID, withdrawing every key still published in it in the same operation. Refused with a conflict while any live remote_session_client still references the set — detach it there first; see getDeletePreflight. Requires org:admin. Tokens signed with the set's keys stop verifying, so treat this as decommissioning the set's whole trust anchor rather than tidying up.
            operationId: deleteJsonWebKeySet
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key set to delete.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key set to delete.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteSet jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteJsonWebKeySet
    /rpc/jsonWebKeySets.get:
        get:
            description: Get a JSON Web Key Set by ID. Requires org:read.
            operationId: getJsonWebKeySet
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key set to get.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key set to get.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/JSONWebKeySet'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getSet jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: GetJsonWebKeySet
    /rpc/jsonWebKeySets.getDeletePreflight:
        get:
            description: 'Authoritative impact summary for deleting a JSON Web Key Set: the remote_session_clients still referencing it. deleteSet returns a conflict for exactly the sets this reports a non-zero client_count for. Requires org:read.'
            operationId: getJsonWebKeySetDeletePreflight
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key set to summarize.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key set to summarize.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/JSONWebKeySetDeletePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getSetDeletePreflight jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: getDeletePreflight
            x-speakeasy-react-hook:
                name: JsonWebKeySetDeletePreflight
    /rpc/jsonWebKeySets.list:
        get:
            description: List the organization's JSON Web Key Sets. Requires org:read.
            operationId: listJsonWebKeySets
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListJSONWebKeySetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listSets jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListJsonWebKeySets
    /rpc/jsonWebKeySets.listKeys:
        get:
            description: List a JSON Web Key Set's published keys, newest first. Revoked keys drop out of the default listing; pass include_revoked to see the set's full revocation history. Requires org:read.
            operationId: listJsonWebKeys
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key set whose keys to list.
                  in: query
                  name: set_id
                  required: true
                  schema:
                    description: The ID of the key set whose keys to list.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Also return revoked keys.
                  in: query
                  name: include_revoked
                  schema:
                    default: false
                    description: Also return revoked keys.
                    type: boolean
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListJSONWebKeysResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listKeys jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: listKeys
            x-speakeasy-react-hook:
                name: ListJsonWebKeys
    /rpc/jsonWebKeySets.publishKey:
        post:
            description: Mint and publish a new key from the set's current backing external key. The key is published as pending — visible to verifiers so their caches warm up — unless the set has no active key, in which case it activates immediately. Publishing the same backing key again while its kid is present in the set (including revoked) is refused as a conflict. Reads the public half from the customer's KMS; rate limited per organization. Requires org:admin.
            operationId: publishJsonWebKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key set to publish into.
                  in: query
                  name: set_id
                  required: true
                  schema:
                    description: The ID of the key set to publish into.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/JSONWebKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "429":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'rate_limit_exceeded: rate limit exceeded'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: publishKey jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: publishKey
            x-speakeasy-react-hook:
                name: PublishJsonWebKey
    /rpc/jsonWebKeySets.retireKey:
        post:
            description: 'Take the set''s active key out of signing use without withdrawing it: the key stays published so tokens already signed with it keep verifying. The key must be active. This is the graceful wind-down; use revoke when the key must stop verifying too. Requires org:admin.'
            operationId: retireJsonWebKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key to retire.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key to retire.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/JSONWebKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: retireKey jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: retireKey
            x-speakeasy-react-hook:
                name: RetireJsonWebKey
    /rpc/jsonWebKeySets.revokeKey:
        post:
            description: 'Withdraw a published key entirely: it leaves the published set and tokens signed with it stop verifying. This is the compromise response, not the graceful wind-down — use retire for that. A revoked kid can never be republished into the set. Requires org:admin.'
            operationId: revokeJsonWebKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key to revoke.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key to revoke.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/JSONWebKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: revokeKey jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: revokeKey
            x-speakeasy-react-hook:
                name: RevokeJsonWebKey
    /rpc/jsonWebKeySets.update:
        post:
            description: 'Update a JSON Web Key Set''s name and backing external key. Requires org:admin. Both fields are replaced, not patched. Re-pointing the backing key is how rotation begins: point the set at the new external key, then publish a key from it. Already-published keys are unaffected — each keeps signing with the external key it was minted from.'
            operationId: updateJsonWebKeySet
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateJSONWebKeySetRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/JSONWebKeySet'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateSet jsonWebKeySets
            tags:
                - jsonWebKeySets
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateJsonWebKeySet
    /rpc/keys.create:
        post:
            description: Create a new api key
            operationId: createAPIKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateKeyForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Key'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createKey keys
            tags:
                - keys
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateAPIKey
    /rpc/keys.list:
        get:
            description: List all api keys for an organization
            operationId: listAPIKeys
            parameters:
                - allowEmptyValue: true
                  description: When set, list keys for this first-class agent
                  in: query
                  name: agent_id
                  schema:
                    description: When set, list keys for this first-class agent
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListKeysResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listKeys keys
            tags:
                - keys
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListAPIKeys
    /rpc/keys.revoke:
        delete:
            description: Revoke a api key
            operationId: revokeAPIKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key to revoke
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key to revoke
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: revokeKey keys
            tags:
                - keys
            x-speakeasy-name-override: revokeById
            x-speakeasy-react-hook:
                name: RevokeAPIKey
    /rpc/keys.rotate:
        post:
            description: Rotate an API key. Agent-key rotation replaces immutable delegation and directly revokes the old row.
            operationId: rotateAPIKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RotateKeyForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Key'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: rotateKey keys
            tags:
                - keys
            x-speakeasy-name-override: rotate
    /rpc/keys.verify:
        get:
            description: Verify an api key
            operationId: validateAPIKey
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ValidateKeyResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
            summary: verifyKey keys
            tags:
                - keys
            x-speakeasy-name-override: validate
            x-speakeasy-react-hook:
                name: ValidateAPIKey
    /rpc/killswitches.batchUserBadges:
        post:
            operationId: batchKillswitchUserBadges
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/KillswitchBatchUserBadgesRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchBatchUserBadgesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: batchUserBadges killswitches
            tags:
                - killswitches
            x-speakeasy-name-override: batchUserBadges
            x-speakeasy-react-hook:
                name: BatchKillswitchUserBadges
    /rpc/killswitches.create:
        post:
            operationId: createKillswitch
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/KillswitchCreateRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchMutationReceipt'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchConflict'
                    description: 'operation_conflict: The operation ID was already used for a different request.'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: create killswitches
            tags:
                - killswitches
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateKillswitch
    /rpc/killswitches.edit:
        post:
            operationId: editKillswitch
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/KillswitchEditRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchMutationReceipt'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchConflict'
                    description: 'version_conflict: The killswitch changed after the supplied version.'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: edit killswitches
            tags:
                - killswitches
            x-speakeasy-name-override: edit
            x-speakeasy-react-hook:
                name: EditKillswitch
    /rpc/killswitches.get:
        get:
            operationId: getKillswitch
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchDetail'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: get killswitches
            tags:
                - killswitches
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: Killswitch
    /rpc/killswitches.lift:
        post:
            operationId: liftKillswitch
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/KillswitchLiftRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchLiftResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchConflict'
                    description: 'version_conflict: The killswitch changed after the supplied version.'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: lift killswitches
            tags:
                - killswitches
            x-speakeasy-name-override: lift
            x-speakeasy-react-hook:
                name: LiftKillswitch
    /rpc/killswitches.list:
        get:
            operationId: listKillswitches
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: capability_key
                  schema:
                    enum:
                        - mcp_tool_calls
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: user_id
                  schema:
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: status
                  schema:
                    enum:
                        - active
                        - scheduled
                        - expired
                        - lifted
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: limit
                  schema:
                    format: int32
                    maximum: 100
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  in: query
                  name: cursor
                  schema:
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchListResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: list killswitches
            tags:
                - killswitches
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: Killswitches
    /rpc/killswitches.listCapabilities:
        get:
            operationId: listKillswitchCapabilities
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchListCapabilitiesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: listCapabilities killswitches
            tags:
                - killswitches
            x-speakeasy-name-override: listCapabilities
            x-speakeasy-react-hook:
                name: KillswitchCapabilities
    /rpc/killswitches.listMCPServers:
        get:
            operationId: listKillswitchMCPServers
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchListMCPServersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: listMCPServers killswitches
            tags:
                - killswitches
            x-speakeasy-name-override: listMCPServers
            x-speakeasy-react-hook:
                name: KillswitchMCPServers
    /rpc/killswitches.previewOverlaps:
        post:
            operationId: previewKillswitchOverlaps
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/KillswitchPreviewOverlapsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/KillswitchPreviewOverlapsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: previewOverlaps killswitches
            tags:
                - killswitches
            x-speakeasy-name-override: previewOverlaps
            x-speakeasy-react-hook:
                name: PreviewKillswitchOverlaps
    /rpc/launcher.judge:
        post:
            description: Judge which of the supplied command palette candidates the typed query refers to, what kind of action it asks for, and whether the intent is settled enough to act on Enter. Returns probability distributions rather than text. When no intent service is configured the response carries disabled=true and the palette falls back to fuzzy ordering.
            operationId: launcherJudge
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/JudgeRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/LauncherJudgment'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: judge launcher
            tags:
                - launcher
            x-speakeasy-name-override: judge
            x-speakeasy-react-hook:
                name: LauncherJudge
    /rpc/litellm.createInstance:
        post:
            description: Provision a LiteLLM integration for a project and return its plaintext ingestion key once. Requires org:admin.
            operationId: createLiteLLMInstance
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateInstanceRequestBody'
                required: true
            responses:
                "201":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/LitellmInstanceKeyResult'
                    description: Created response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createInstance litellm
            tags:
                - litellm
            x-speakeasy-name-override: createInstance
            x-speakeasy-react-hook:
                name: CreateLiteLLMInstance
    /rpc/litellm.ingest/beta/litellm_basic_guardrail_api:
        post:
            description: Evaluates and captures a LiteLLM model request before it reaches the provider.
            operationId: ingestLiteLLMGuardrail
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/IngestRequestBody2'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/LitellmIngestResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: ingest litellm
            tags:
                - litellm
            x-speakeasy-name-override: ingestGuardrail
            x-speakeasy-react-hook:
                disabled: true
    /rpc/litellm.listInstances:
        get:
            description: List active and revoked LiteLLM integrations for a project. Plaintext keys are never returned. Requires org:admin.
            operationId: listLiteLLMInstances
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListInstancesResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listInstances litellm
            tags:
                - litellm
            x-speakeasy-name-override: listInstances
            x-speakeasy-react-hook:
                name: LiteLLMInstances
    /rpc/litellm.revokeInstance:
        delete:
            description: Revoke a LiteLLM integration and immediately invalidate its active key. Requires org:admin.
            operationId: revokeLiteLLMInstance
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: revokeInstance litellm
            tags:
                - litellm
            x-speakeasy-name-override: revokeInstance
            x-speakeasy-react-hook:
                name: RevokeLiteLLMInstance
    /rpc/litellm.rotateInstanceKey:
        post:
            description: Atomically replace a LiteLLM integration key and return the new plaintext value once. Requires org:admin.
            operationId: rotateLiteLLMInstanceKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/LitellmInstanceKeyResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: rotateInstanceKey litellm
            tags:
                - litellm
            x-speakeasy-name-override: rotateInstanceKey
            x-speakeasy-react-hook:
                name: RotateLiteLLMInstanceKey
    /rpc/mcpApproval.createRequest:
        post:
            description: Ask for an MCP server to be reviewed. Repeat asks for the same server attach to the existing review rather than opening a second one.
            operationId: createMcpApprovalRequest
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRequestRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApprovalRequestSummary'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createRequest mcpApproval
            tags:
                - mcpApproval
            x-speakeasy-name-override: createRequest
            x-speakeasy-react-hook:
                name: CreateMcpApprovalRequest
    /rpc/mcpApproval.ensureServerReview:
        post:
            description: Resolve the evidence dossier for a server URL, opening one when none exists. Gathers evidence without recording any ask or decision, so a server can be inspected before — or without — anyone requesting it.
            operationId: ensureMcpServerReview
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/EnsureServerReviewRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApprovalRequestSummary'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: ensureServerReview mcpApproval
            tags:
                - mcpApproval
            x-speakeasy-name-override: ensureServerReview
            x-speakeasy-react-hook:
                name: EnsureMcpServerReview
    /rpc/mcpApproval.getRequest:
        get:
            description: Fetch one MCP approval request with its evidence and decision history.
            operationId: getMcpApprovalRequest
            parameters:
                - allowEmptyValue: true
                  description: The approval request ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The approval request ID.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApprovalRequestDetail'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getRequest mcpApproval
            tags:
                - mcpApproval
            x-speakeasy-name-override: getRequest
            x-speakeasy-react-hook:
                name: GetMcpApprovalRequest
    /rpc/mcpApproval.listRequests:
        get:
            description: List MCP approval requests for a project.
            operationId: listMcpApprovalRequests
            parameters:
                - allowEmptyValue: true
                  description: 'Only return requests in this status: unreviewed, requested, approved, denied, or superseded.'
                  in: query
                  name: status
                  schema:
                    description: 'Only return requests in this status: unreviewed, requested, approved, denied, or superseded.'
                    type: string
                - allowEmptyValue: true
                  description: The number of requests to return per page
                  in: query
                  name: limit
                  schema:
                    description: The number of requests to return per page
                    format: int32
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListApprovalRequestsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listRequests mcpApproval
            tags:
                - mcpApproval
            x-speakeasy-name-override: listRequests
            x-speakeasy-react-hook:
                name: ListMcpApprovalRequests
    /rpc/mcpApproval.promote:
        post:
            description: Promote a risk-policy bypass request into an approval request, carrying its requester and justification into the review queue.
            operationId: promoteMcpApprovalRequest
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/PromoteRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApprovalRequestSummary'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: promote mcpApproval
            tags:
                - mcpApproval
            x-speakeasy-name-override: promote
            x-speakeasy-react-hook:
                name: PromoteMcpApprovalRequest
    /rpc/mcpApproval.recordDecision:
        post:
            description: Approve or deny an MCP approval request, recording the rationale and who it applies to.
            operationId: recordMcpApprovalDecision
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RecordDecisionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApprovalDecision'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: recordDecision mcpApproval
            tags:
                - mcpApproval
            x-speakeasy-name-override: recordDecision
            x-speakeasy-react-hook:
                name: RecordMcpApprovalDecision
    /rpc/mcpApproval.refreshEvidence:
        post:
            description: Re-run every evidence source for a request and replace its current evidence with the fresh gather. Frozen decision snapshots are never touched.
            operationId: refreshMcpApprovalEvidence
            parameters:
                - allowEmptyValue: true
                  description: The approval request ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The approval request ID.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApprovalRequestDetail'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: refreshEvidence mcpApproval
            tags:
                - mcpApproval
            x-speakeasy-name-override: refreshEvidence
            x-speakeasy-react-hook:
                name: RefreshMcpApprovalEvidence
    /rpc/mcpApproval.startResearch:
        post:
            description: 'Start a research-agent run for an approval request. The agent searches the web and reads pages about the server''s vendor, then files a cited report; it never decides. Runs are additive — a re-run adds a report rather than replacing one — and at most one run per request is in flight at a time: starting while one runs returns the running report.'
            operationId: startMcpResearch
            parameters:
                - allowEmptyValue: true
                  description: The approval request ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The approval request ID.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ResearchReport'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: startResearch mcpApproval
            tags:
                - mcpApproval
            x-speakeasy-name-override: startResearch
            x-speakeasy-react-hook:
                name: StartMcpResearch
    /rpc/mcpEndpoints.checkSlugAvailability:
        get:
            description: 'Check whether an MCP endpoint slug is available. The uniqueness scope depends on whether a custom_domain_id is provided: platform-domain slugs are checked across all platform-domain endpoints (custom_domain_id IS NULL); custom-domain slugs are checked within the (custom_domain_id, slug) pair. Returns true when the slug is free.'
            operationId: checkMcpEndpointSlugAvailability
            parameters:
                - allowEmptyValue: true
                  description: The slug to check
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A url-friendly label (up to 128 characters) that addresses an MCP server through a slug-based URL. Platform-domain slugs (no custom domain) must be prefixed with the organization slug.
                    maxLength: 128
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Optional custom domain ID. Omit to check platform-domain slug availability.
                  in: query
                  name: custom_domain_id
                  schema:
                    description: Optional custom domain ID. Omit to check platform-domain slug availability.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                type: boolean
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: checkMcpEndpointSlugAvailability mcpEndpoints
            tags:
                - mcpEndpoints
            x-speakeasy-name-override: checkSlugAvailability
            x-speakeasy-react-hook:
                name: CheckMcpEndpointSlugAvailability
    /rpc/mcpEndpoints.create:
        post:
            description: Create a new MCP endpoint for an MCP server or a meta MCP server. Provide exactly one of mcp_server_id or meta_mcp_server_id.
            operationId: createMcpEndpoint
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateMcpEndpointForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/McpEndpoint'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createMcpEndpoint mcpEndpoints
            tags:
                - mcpEndpoints
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateMcpEndpoint
    /rpc/mcpEndpoints.delete:
        delete:
            description: Delete an MCP endpoint
            operationId: deleteMcpEndpoint
            parameters:
                - allowEmptyValue: true
                  description: The ID of the MCP endpoint to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the MCP endpoint to delete
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteMcpEndpoint mcpEndpoints
            tags:
                - mcpEndpoints
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteMcpEndpoint
    /rpc/mcpEndpoints.get:
        get:
            description: Get an MCP endpoint by id or by (custom_domain_id, slug). Provide either id, or slug with an optional custom_domain_id — not both.
            operationId: getMcpEndpoint
            parameters:
                - allowEmptyValue: true
                  description: The ID of the MCP endpoint
                  in: query
                  name: id
                  schema:
                    description: The ID of the MCP endpoint
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The ID of the custom domain the endpoint slug is registered under. Omit to look up a platform-domain endpoint.
                  in: query
                  name: custom_domain_id
                  schema:
                    description: The ID of the custom domain the endpoint slug is registered under. Omit to look up a platform-domain endpoint.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The slug to look up
                  in: query
                  name: slug
                  schema:
                    description: A url-friendly label (up to 128 characters) that addresses an MCP server through a slug-based URL. Platform-domain slugs (no custom domain) must be prefixed with the organization slug.
                    maxLength: 128
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/McpEndpoint'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getMcpEndpoint mcpEndpoints
            tags:
                - mcpEndpoints
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: GetMcpEndpoint
    /rpc/mcpEndpoints.list:
        get:
            description: List MCP endpoints for a project. Optionally filter to only those associated with a specific MCP server or meta MCP server (not both).
            operationId: listMcpEndpoints
            parameters:
                - allowEmptyValue: true
                  description: 'Optional filter: only return endpoints associated with this MCP server.'
                  in: query
                  name: mcp_server_id
                  schema:
                    description: 'Optional filter: only return endpoints associated with this MCP server.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: 'Optional filter: only return endpoints associated with this meta MCP server.'
                  in: query
                  name: meta_mcp_server_id
                  schema:
                    description: 'Optional filter: only return endpoints associated with this meta MCP server.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMcpEndpointsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listMcpEndpoints mcpEndpoints
            tags:
                - mcpEndpoints
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: McpEndpoints
    /rpc/mcpEndpoints.update:
        post:
            description: 'Update an MCP endpoint. This is a full-record replace: fields omitted from the request become null on the stored record. The id and slug fields are required, along with exactly one of mcp_server_id or meta_mcp_server_id.'
            operationId: updateMcpEndpoint
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateMcpEndpointForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/McpEndpoint'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateMcpEndpoint mcpEndpoints
            tags:
                - mcpEndpoints
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateMcpEndpoint
    /rpc/mcpMetadata.export:
        post:
            description: Export MCP server details as JSON for documentation and integration purposes. Exactly one of mcp_slug or mcp_server_id must be provided.
            operationId: exportMcpMetadata
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ExportMcpMetadataRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/McpExport'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: exportMcpMetadata mcpMetadata
            tags:
                - mcpMetadata
            x-speakeasy-name-override: export
            x-speakeasy-react-hook:
                name: ExportMcpMetadata
    /rpc/mcpMetadata.get:
        get:
            description: Fetch the metadata that powers the MCP install page. Exactly one of toolset_slug or mcp_server_id must be provided.
            operationId: getMcpMetadata
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset associated with this install page metadata. Mutually exclusive with mcp_server_id.
                  in: query
                  name: toolset_slug
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: The ID of the MCP server associated with this install page metadata. Mutually exclusive with toolset_slug.
                  in: query
                  name: mcp_server_id
                  schema:
                    description: The ID of the MCP server associated with this install page metadata. Mutually exclusive with toolset_slug.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetMcpMetadataResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getMcpMetadata mcpMetadata
            tags:
                - mcpMetadata
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: GetMcpMetadata
    /rpc/mcpMetadata.set:
        post:
            description: Create or update the metadata that powers the MCP install page. Exactly one of toolset_slug or mcp_server_id must be provided.
            operationId: setMcpMetadata
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetMcpMetadataRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/McpMetadata'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: setMcpMetadata mcpMetadata
            tags:
                - mcpMetadata
            x-speakeasy-name-override: set
    /rpc/mcpRegistries.clearCache:
        delete:
            description: Clear the registry cache for a specific registry (admin only)
            operationId: clearMCPRegistryCache
            parameters:
                - allowEmptyValue: true
                  description: The registry to clear cache for
                  in: query
                  name: registry_id
                  required: true
                  schema:
                    description: The registry to clear cache for
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: clearCache mcpRegistries
            tags:
                - mcpRegistries
            x-speakeasy-name-override: clearCache
    /rpc/mcpRegistries.getServerDetails:
        get:
            description: Get detailed information about an MCP server including remotes
            operationId: getMCPServerDetails
            parameters:
                - allowEmptyValue: true
                  description: ID of the registry
                  in: query
                  name: registry_id
                  required: true
                  schema:
                    description: ID of the registry
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Server specifier (e.g., 'io.github.user/server')
                  in: query
                  name: server_specifier
                  required: true
                  schema:
                    description: Server specifier (e.g., 'io.github.user/server')
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ExternalMCPServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getServerDetails mcpRegistries
            tags:
                - mcpRegistries
            x-speakeasy-name-override: getServerDetails
    /rpc/mcpRegistries.getSetupDocs:
        get:
            description: Get the published setup documentation for an upstream MCP server, located by endpoint URL and/or registry identifier
            operationId: getMCPSetupDocs
            parameters:
                - allowEmptyValue: true
                  description: URL of the upstream MCP server endpoint
                  example: https://mcp.box.com
                  in: query
                  name: server_url
                  schema:
                    description: URL of the upstream MCP server endpoint
                    example: https://mcp.box.com
                    type: string
                - allowEmptyValue: true
                  description: Registry specifier for the server, as returned by listCatalog (e.g., 'com.pulsemcp.mirror/box')
                  example: com.pulsemcp.mirror/box
                  in: query
                  name: registry_specifier
                  schema:
                    description: Registry specifier for the server, as returned by listCatalog (e.g., 'com.pulsemcp.mirror/box')
                    example: com.pulsemcp.mirror/box
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetSetupDocsResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getSetupDocs mcpRegistries
            tags:
                - mcpRegistries
            x-speakeasy-name-override: getSetupDocs
            x-speakeasy-react-hook:
                name: GetMCPSetupDocs
    /rpc/mcpRegistries.listCatalog:
        get:
            description: List available MCP servers from configured registries
            operationId: listMCPCatalog
            parameters:
                - allowEmptyValue: true
                  description: Filter to a specific registry
                  in: query
                  name: registry_id
                  schema:
                    description: Filter to a specific registry
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Search query to filter servers by name
                  in: query
                  name: search
                  schema:
                    description: Search query to filter servers by name
                    type: string
                - allowEmptyValue: true
                  description: Pagination cursor
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCatalogResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listCatalog mcpRegistries
            tags:
                - mcpRegistries
            x-speakeasy-name-override: listCatalog
            x-speakeasy-react-hook:
                name: ListMCPCatalog
    /rpc/mcpRegistries.listRegistries:
        get:
            description: List all MCP registries (admin only)
            operationId: listMCPRegistries
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRegistriesResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listRegistries mcpRegistries
            tags:
                - mcpRegistries
            x-speakeasy-name-override: listRegistries
            x-speakeasy-react-hook:
                name: ListMCPRegistries
    /rpc/mcpServers.addToolMetadataBatch:
        post:
            description: Strictly additive batch insert of tool metadata for an MCP server. Every tool in the payload is inserted; if any of them already has a live stored entry the whole batch fails with a conflict and nothing is inserted. Stored tools absent from the payload are left untouched and nothing is deleted. Callers are expected to send only tools they know are new.
            operationId: addMcpServerToolMetadataBatch
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetToolMetadataBatchRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AddToolMetadataBatchResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: addToolMetadataBatch mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: addToolMetadataBatch
            x-speakeasy-react-hook:
                name: AddMcpServerToolMetadataBatch
    /rpc/mcpServers.create:
        post:
            description: Create a new MCP server
            operationId: createMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateMcpServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/McpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createMcpServer mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateMcpServer
    /rpc/mcpServers.delete:
        delete:
            description: Delete an MCP server. A toolset's own hosted server (its id equals the toolset id) is disabled instead, as turning MCP off on the toolset does, and stays listed with visibility disabled. Other servers, including other toolset-backed ones, are deleted.
            operationId: deleteMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The ID of the MCP server to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the MCP server to delete
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteMcpServer mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteMcpServer
    /rpc/mcpServers.deleteToolMetadata:
        delete:
            description: Soft-delete a single tool metadata entry.
            operationId: deleteMcpServerToolMetadata
            parameters:
                - allowEmptyValue: true
                  description: The ID of the MCP server the tool metadata belongs to
                  in: query
                  name: mcp_server_id
                  required: true
                  schema:
                    description: The ID of the MCP server the tool metadata belongs to
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The name of the tool to delete
                  in: query
                  name: tool_name
                  required: true
                  schema:
                    description: The name of the tool to delete
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteToolMetadata mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: deleteToolMetadata
            x-speakeasy-react-hook:
                name: DeleteMcpServerToolMetadata
    /rpc/mcpServers.get:
        get:
            description: Get an MCP server by ID, slug, or backing toolset ID. Exactly one selector must be provided. Toolset lookup prefers enabled servers, then the canonical wrapper, then the oldest server.
            operationId: getMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The ID of the MCP server. Mutually exclusive with slug.
                  in: query
                  name: id
                  schema:
                    description: The ID of the MCP server. Mutually exclusive with slug.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The slug of the MCP server. Mutually exclusive with id.
                  in: query
                  name: slug
                  schema:
                    description: The slug of the MCP server. Mutually exclusive with id.
                    type: string
                - allowEmptyValue: true
                  description: Resolve the preferred MCP server for this toolset. Mutually exclusive with id and slug.
                  in: query
                  name: toolset_id
                  schema:
                    description: Resolve the preferred MCP server for this toolset. Mutually exclusive with id and slug.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/McpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getMcpServer mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: GetMcpServer
    /rpc/mcpServers.list:
        get:
            description: List MCP servers for a project. Accepts optional remote_mcp_server_id, tunneled_mcp_server_id, toolset_id, or unproxied_mcp_server_id filters to scope the result to a single backend; at most one filter may be supplied since the backends are mutually exclusive.
            operationId: listMcpServers
            parameters:
                - allowEmptyValue: true
                  description: Filter to MCP servers backed by this remote MCP server
                  in: query
                  name: remote_mcp_server_id
                  schema:
                    description: Filter to MCP servers backed by this remote MCP server
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Filter to MCP servers backed by this tunneled MCP server
                  in: query
                  name: tunneled_mcp_server_id
                  schema:
                    description: Filter to MCP servers backed by this tunneled MCP server
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Filter to MCP servers backed by this toolset
                  in: query
                  name: toolset_id
                  schema:
                    description: Filter to MCP servers backed by this toolset
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Filter to MCP servers backed by this unproxied MCP server
                  in: query
                  name: unproxied_mcp_server_id
                  schema:
                    description: Filter to MCP servers backed by this unproxied MCP server
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMcpServersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listMcpServers mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: McpServers
    /rpc/mcpServers.listForOrg:
        get:
            description: List all MCP servers across the organization
            operationId: listMcpServersForOrg
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMcpServersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: listMcpServersForOrg mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: listForOrg
            x-speakeasy-react-hook:
                name: ListMcpServersForOrg
    /rpc/mcpServers.listToolFilters:
        get:
            description: List the tool filter scopes (tags) available on an MCP server and the tools under each, including tools excluded from all filters. Exactly one of id or slug must be provided. Read-only; reflects the explicit tool variations group resolved from the chain (mcp_servers then toolsets), deriving effective tags with the same logic as the runtime ?tags= filter. Returns filtering disabled when no explicit group is set.
            operationId: listMcpServerToolFilters
            parameters:
                - allowEmptyValue: true
                  description: The ID of the MCP server. Mutually exclusive with slug.
                  in: query
                  name: id
                  schema:
                    description: The ID of the MCP server. Mutually exclusive with slug.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The slug of the MCP server. Mutually exclusive with id.
                  in: query
                  name: slug
                  schema:
                    description: The slug of the MCP server. Mutually exclusive with id.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListToolFiltersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listToolFilters mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: listToolFilters
            x-speakeasy-react-hook:
                name: ListMcpServerToolFilters
    /rpc/mcpServers.listToolMetadata:
        get:
            description: List stored tool metadata for an MCP server.
            operationId: listMcpServerToolMetadata
            parameters:
                - allowEmptyValue: true
                  description: The ID of the MCP server the tool metadata belongs to
                  in: query
                  name: mcp_server_id
                  required: true
                  schema:
                    description: The ID of the MCP server the tool metadata belongs to
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Include soft-deleted tool metadata entries in the result. Deleted entries carry a deleted_at timestamp.
                  in: query
                  name: include_deleted
                  schema:
                    description: Include soft-deleted tool metadata entries in the result. Deleted entries carry a deleted_at timestamp.
                    type: boolean
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListToolMetadataResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listToolMetadata mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: listToolMetadata
            x-speakeasy-react-hook:
                name: ListMcpServerToolMetadata
    /rpc/mcpServers.setToolMetadata:
        put:
            description: 'Set the annotation hints of a single tool metadata entry (manual override). This is a full-record replace: omitted hints become unset on the stored record.'
            operationId: setMcpServerToolMetadata
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetToolMetadataRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ToolMetadata'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: setToolMetadata mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: setToolMetadata
            x-speakeasy-react-hook:
                name: SetMcpServerToolMetadata
    /rpc/mcpServers.setToolMetadataBatch:
        put:
            description: Authoritative batch upsert of tool metadata for an MCP server. Every tool in the payload is upserted and any stored tool absent from the payload is soft-deleted, all in one transaction.
            operationId: setMcpServerToolMetadataBatch
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetToolMetadataBatchRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SetToolMetadataBatchResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: setToolMetadataBatch mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: setToolMetadataBatch
            x-speakeasy-react-hook:
                name: SetMcpServerToolMetadataBatch
    /rpc/mcpServers.update:
        post:
            description: 'Update an MCP server. This is a full-record replace for the optional UUID references: fields omitted from the request become null on the stored record. name is an exception — omitting it leaves the existing display name unchanged, while providing it requires a non-empty value and recomputes the server-side slug. The id and visibility fields are required; exactly one of remote_mcp_server_id, tunneled_mcp_server_id, or toolset_id must be provided.'
            operationId: updateMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateMcpServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/McpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateMcpServer mcpServers
            tags:
                - mcpServers
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateMcpServer
    /rpc/metaMcp.addMember:
        post:
            description: Add an MCP server to a meta MCP server's member set
            operationId: addMetaMcpMember
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AddMetaMcpMemberForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MetaMcpMember'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: addMetaMcpMember metaMcp
            tags:
                - metaMcp
            x-speakeasy-name-override: addMember
            x-speakeasy-react-hook:
                name: AddMetaMcpMember
    /rpc/metaMcp.create:
        post:
            description: Create a new meta MCP server
            operationId: createMetaMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateMetaMcpServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MetaMcpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createMetaMcpServer metaMcp
            tags:
                - metaMcp
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateMetaMcpServer
    /rpc/metaMcp.delete:
        delete:
            description: Delete a meta MCP server. Its live memberships and MCP endpoints are deleted along with it.
            operationId: deleteMetaMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The ID of the meta MCP server to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the meta MCP server to delete
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteMetaMcpServer metaMcp
            tags:
                - metaMcp
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteMetaMcpServer
    /rpc/metaMcp.get:
        get:
            description: Get a meta MCP server by id
            operationId: getMetaMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The ID of the meta MCP server
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the meta MCP server
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MetaMcpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getMetaMcpServer metaMcp
            tags:
                - metaMcp
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: GetMetaMcpServer
    /rpc/metaMcp.list:
        get:
            description: List meta MCP servers for a project
            operationId: listMetaMcpServers
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMetaMcpServersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listMetaMcpServers metaMcp
            tags:
                - metaMcp
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: MetaMcpServers
    /rpc/metaMcp.listMembers:
        get:
            description: List the members of a meta MCP server, ordered by sort order
            operationId: listMetaMcpMembers
            parameters:
                - allowEmptyValue: true
                  description: The ID of the meta MCP server
                  in: query
                  name: meta_mcp_server_id
                  required: true
                  schema:
                    description: The ID of the meta MCP server
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMetaMcpMembersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listMetaMcpMembers metaMcp
            tags:
                - metaMcp
            x-speakeasy-name-override: listMembers
            x-speakeasy-react-hook:
                name: MetaMcpMembers
    /rpc/metaMcp.removeMember:
        delete:
            description: Remove a member from a meta MCP server
            operationId: removeMetaMcpMember
            parameters:
                - allowEmptyValue: true
                  description: The ID of the membership to remove
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the membership to remove
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: removeMetaMcpMember metaMcp
            tags:
                - metaMcp
            x-speakeasy-name-override: removeMember
            x-speakeasy-react-hook:
                name: RemoveMetaMcpMember
    /rpc/metaMcp.update:
        post:
            description: Update a meta MCP server. Omitting user_session_issuer_id preserves the stored issuer, and a gateway that would end up without one gets a dedicated issuer minted — an update can never leave a gateway serving anonymously. Omitting visibility or network_access_mode preserves the respective stored value, so a caller that does not manage those policies cannot change them by saving an unrelated field.
            operationId: updateMetaMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateMetaMcpServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MetaMcpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateMetaMcpServer metaMcp
            tags:
                - metaMcp
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateMetaMcpServer
    /rpc/metaMcp.updateMember:
        post:
            description: Update a meta MCP membership's sort order
            operationId: updateMetaMcpMember
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateMetaMcpMemberForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MetaMcpMember'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateMetaMcpMember metaMcp
            tags:
                - metaMcp
            x-speakeasy-name-override: updateMember
            x-speakeasy-react-hook:
                name: UpdateMetaMcpMember
    /rpc/modelKeys.deleteKey:
        delete:
            description: Delete a model provider key. Completions on the affected slot fall back to the project default key or the platform key.
            operationId: deleteModelProviderKey
            parameters:
                - allowEmptyValue: true
                  description: The ID of the key to delete.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the key to delete.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteKey modelKeys
            tags:
                - modelKeys
            x-speakeasy-name-override: deleteKey
            x-speakeasy-react-hook:
                name: DeleteModelProviderKey
    /rpc/modelKeys.listKeys:
        get:
            description: List the model provider keys configured for a project. Key material is never returned.
            operationId: listModelProviderKeys
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListKeysResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listKeys modelKeys
            tags:
                - modelKeys
            x-speakeasy-name-override: listKeys
            x-speakeasy-react-hook:
                name: ModelProviderKeys
    /rpc/modelKeys.setKeyEnabled:
        post:
            description: Enable or disable a model provider key without replacing its key material.
            operationId: setModelProviderKeyEnabled
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetKeyEnabledRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ModelProviderKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: setKeyEnabled modelKeys
            tags:
                - modelKeys
            x-speakeasy-name-override: setKeyEnabled
            x-speakeasy-react-hook:
                name: SetModelProviderKeyEnabled
    /rpc/modelKeys.upsertKey:
        post:
            description: Create or replace the model provider key for a slot. The key is validated with the provider, then stored encrypted.
            operationId: upsertModelProviderKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertKeyRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ModelProviderKey'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: upsertKey modelKeys
            tags:
                - modelKeys
            x-speakeasy-name-override: upsertKey
            x-speakeasy-react-hook:
                name: UpsertModelProviderKey
    /rpc/networkIngress.checkHealth:
        post:
            description: Signal reconciliation and return the latest observed ingress health.
            operationId: checkNetworkIngressHealth
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/NetworkIngress'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: checkHealth networkIngress
            tags:
                - networkIngress
            x-speakeasy-name-override: checkHealth
    /rpc/networkIngress.create:
        post:
            description: Create the organization's Tailscale ingress. Provider credentials are encrypted and never returned.
            operationId: createNetworkIngress
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateIngressRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/NetworkIngress'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createIngress networkIngress
            tags:
                - networkIngress
            x-speakeasy-name-override: createIngress
            x-speakeasy-react-hook:
                name: CreateNetworkIngress
    /rpc/networkIngress.delete:
        delete:
            description: Soft-delete the ingress and retain provider identities until cleanup is confirmed.
            operationId: deleteNetworkIngress
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteIngress networkIngress
            tags:
                - networkIngress
            x-speakeasy-name-override: deleteIngress
    /rpc/networkIngress.get:
        get:
            description: Get the active network ingress for the current organization, when configured.
            operationId: getNetworkIngress
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/NetworkIngressResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getIngress networkIngress
            tags:
                - networkIngress
            x-speakeasy-name-override: getIngress
            x-speakeasy-react-hook:
                name: NetworkIngress
    /rpc/networkIngress.getDeleteImpact:
        get:
            description: Count hosted MCP servers that retain dual or private-only modes after ingress deletion.
            operationId: getNetworkIngressDeleteImpact
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/NetworkIngressDeleteImpact'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getDeleteImpact networkIngress
            tags:
                - networkIngress
            x-speakeasy-name-override: getDeleteImpact
    /rpc/networkIngress.rotateCredentials:
        post:
            description: Replace the provider OAuth client credentials without returning either value.
            operationId: rotateNetworkIngressCredentials
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RotateCredentialsRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/NetworkIngress'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: rotateCredentials networkIngress
            tags:
                - networkIngress
            x-speakeasy-name-override: rotateCredentials
            x-speakeasy-react-hook:
                name: RotateNetworkIngressCredentials
    /rpc/networkIngress.update:
        post:
            description: Update desired ingress settings. Enabling is expansion-gated; disabling remains available after gate removal.
            operationId: updateNetworkIngress
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateIngressRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/NetworkIngress'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateIngress networkIngress
            tags:
                - networkIngress
            x-speakeasy-name-override: updateIngress
            x-speakeasy-react-hook:
                name: UpdateNetworkIngress
    /rpc/oktaResourceConnections.confirm:
        post:
            description: Record that the administrator created the agent-to-resource connections for these servers in the identity provider console, with the audience each resource app is configured with. Servers that share an upstream share one Okta resource connection. Confirmation is the administrator's word; Speakeasy cannot check it. The connection must be verified or degraded. Requires org:admin and the okta-connections rollout.
            operationId: confirmOktaResourceConnections
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ConfirmOktaResourceConnectionsRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ConfirmOktaResourceConnectionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: confirm oktaResourceConnections
            tags:
                - oktaResourceConnections
            x-speakeasy-name-override: confirm
            x-speakeasy-react-hook:
                name: ConfirmOktaResourceConnections
    /rpc/oktaResourceConnections.list:
        get:
            description: List the Okta resource connection and derived state of every eligible MCP server. Requires org:admin and a live identity provider connection.
            operationId: listOktaResourceConnections
            parameters:
                - allowEmptyValue: true
                  description: Include connected, verified and not-applicable servers.
                  in: query
                  name: include_all
                  schema:
                    default: false
                    description: Include connected, verified and not-applicable servers.
                    type: boolean
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOktaResourceConnectionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: list oktaResourceConnections
            tags:
                - oktaResourceConnections
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: OktaResourceConnections
    /rpc/oktaResourceConnections.reset:
        post:
            description: Delete the Okta resource connection for this server's upstream so it, and every server sharing that upstream, shows as pending again. Requires org:admin.
            operationId: resetOktaResourceConnection
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ResetOktaResourceConnectionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaResourceConnectionServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: reset oktaResourceConnections
            tags:
                - oktaResourceConnections
            x-speakeasy-name-override: reset
            x-speakeasy-react-hook:
                name: ResetOktaResourceConnection
    /rpc/oktaServerSuggestions.dismiss:
        post:
            description: Dismiss a suggestion currently made to the organization. Remembered until restored, even across Okta reconnects. Requires org:admin and the okta-connections rollout.
            operationId: dismissOktaServerSuggestion
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DismissOktaServerSuggestionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaServerSuggestion'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: dismiss oktaServerSuggestions
            tags:
                - oktaServerSuggestions
            x-speakeasy-name-override: dismiss
            x-speakeasy-react-hook:
                name: DismissOktaServerSuggestion
    /rpc/oktaServerSuggestions.list:
        get:
            description: List the catalog servers suggested from the Okta applications snapshot. Requires org:admin, the okta-connections rollout and a verified identity provider connection.
            operationId: listOktaServerSuggestions
            parameters:
                - allowEmptyValue: true
                  description: Include dismissed and installed suggestions.
                  in: query
                  name: include_all
                  schema:
                    default: false
                    description: Include dismissed and installed suggestions.
                    type: boolean
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOktaServerSuggestionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: list oktaServerSuggestions
            tags:
                - oktaServerSuggestions
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: OktaServerSuggestions
    /rpc/oktaServerSuggestions.restore:
        post:
            description: Restore a dismissed suggestion currently made to the organization. Requires org:admin and the okta-connections rollout.
            operationId: restoreOktaServerSuggestion
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RestoreOktaServerSuggestionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OktaServerSuggestion'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: restore oktaServerSuggestions
            tags:
                - oktaServerSuggestions
            x-speakeasy-name-override: restore
            x-speakeasy-react-hook:
                name: RestoreOktaServerSuggestion
    /rpc/organizationAssets.uploadImage:
        post:
            description: Upload an organization-tier image (e.g. a remote identity provider logo). Requires org:admin.
            operationId: uploadOrganizationImage
            parameters:
                - allowEmptyValue: true
                  in: header
                  name: Content-Type
                  required: true
                  schema:
                    type: string
                - allowEmptyValue: true
                  in: header
                  name: Content-Length
                  required: true
                  schema:
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UploadImageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: uploadOrganizationImage organizationAssets
            tags:
                - organizationAssets
            x-speakeasy-name-override: uploadImage
            x-speakeasy-react-hook:
                name: UploadOrganizationImage
    /rpc/organizationRemoteSessionClients.attachKeySet:
        post:
            description: Attach an organization JSON Web Key Set to a remote_session_client in the caller's organization, opting it into signing private_key_jwt assertions. Requires org:admin and the customer_managed_encryption_keys entitlement.
            operationId: attachOrganizationRemoteSessionClientKeySet
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AttachKeySetForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: attachClientKeySet organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: attachKeySet
            x-speakeasy-react-hook:
                name: AttachOrganizationRemoteSessionClientKeySet
    /rpc/organizationRemoteSessionClients.create:
        post:
            description: 'Register a standalone remote_session_client under an existing remote_session_issuer in the caller''s organization, with no user_session_issuer attachments. The client is project-scoped: it inherits a project-specific issuer''s project, or the caller names a project (which must belong to the organization) when the issuer is organization-level. Requires org:admin.'
            operationId: createOrganizationRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateOrganizationRemoteSessionClientForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: createClient organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateOrganizationRemoteSessionClient
    /rpc/organizationRemoteSessionClients.createCimd:
        post:
            description: 'Register a standalone remote_session_client in Client ID Metadata Document (CIMD) mode under an existing remote_session_issuer in the caller''s organization, with no user_session_issuer attachments. Speakeasy generates the client_id and hosts the metadata document; the issuer must advertise client_id_metadata_document_supported. The client is project-scoped: it inherits a project-specific issuer''s project, or the caller names a project (which must belong to the organization) when the issuer is organization-level. Requires org:admin.'
            operationId: createCimdOrganizationRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateCimdOrganizationRemoteSessionClientForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: createCimdClient organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: createCimd
            x-speakeasy-react-hook:
                name: CreateCimdOrganizationRemoteSessionClient
    /rpc/organizationRemoteSessionClients.delete:
        delete:
            description: Soft-delete a remote_session_client in the caller's organization. Cascades to the remote_sessions minted against it. Requires org:admin.
            operationId: deleteOrganizationRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: deleteClient organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteOrganizationRemoteSessionClient
    /rpc/organizationRemoteSessionClients.detachKeySet:
        delete:
            description: Detach the JSON Web Key Set from a remote_session_client in the caller's organization. Refused while the client declares token_endpoint_auth_method=private_key_jwt. A no-op when no set is attached. Requires org:admin and the customer_managed_encryption_keys entitlement.
            operationId: detachOrganizationRemoteSessionClientKeySet
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: detachClientKeySet organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: detachKeySet
            x-speakeasy-react-hook:
                name: DetachOrganizationRemoteSessionClientKeySet
    /rpc/organizationRemoteSessionClients.get:
        get:
            description: Get a remote_session_client in the caller's organization by id. Requires org:read.
            operationId: getOrganizationRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: getClient organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionClient
    /rpc/organizationRemoteSessionClients.getDelegationStatus:
        get:
            description: Read sanitized delegation observations for the current upstream configuration in the last 30 days. Requires org:admin. Never exercises credentials; presence is not proof of future refresh success.
            operationId: getOrganizationRemoteSessionClientDelegationStatus
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OrganizationClientDelegationStatus'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getClientDelegationStatus organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: getDelegationStatus
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionClientDelegationStatus
    /rpc/organizationRemoteSessionClients.getDeletePreflight:
        get:
            description: 'Authoritative impact summary for deleting a remote_session_client: associated session count, affected MCP server names, and trusted identity-provider login references that must be explicitly unlinked before deletion. Requires org:read.'
            operationId: getOrganizationRemoteSessionClientDeletePreflight
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OrganizationClientDeletePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: getClientDeletePreflight organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: getDeletePreflight
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionClientDeletePreflight
    /rpc/organizationRemoteSessionClients.list:
        get:
            description: List the remote_session_clients registered with a given issuer in the caller's organization, each with its MCP server attachment count. Requires org:read.
            operationId: listOrganizationRemoteSessionClients
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer id to list clients for.
                  in: query
                  name: issuer_id
                  required: true
                  schema:
                    description: The remote_session_issuer id to list clients for.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOrganizationRemoteSessionClientsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: listClients organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionClients
    /rpc/organizationRemoteSessionClients.listMcpServers:
        get:
            description: List the MCP servers a remote_session_client is attached to (resolved through user_session_issuers) in the caller's organization. Requires org:read.
            operationId: listOrganizationRemoteSessionClientMcpServers
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: client_id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOrganizationMcpServersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: listClientMcpServers organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: listMcpServers
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionClientMcpServers
    /rpc/organizationRemoteSessionClients.removeFromMcpServer:
        post:
            description: Detach a remote_session_client from an MCP server (clears the MCP server's user_session_issuer link) in the caller's organization. Requires org:admin.
            operationId: removeOrganizationRemoteSessionClientFromMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RemoveClientFromMcpServerRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: removeClientFromMcpServer organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: removeFromMcpServer
            x-speakeasy-react-hook:
                name: RemoveOrganizationRemoteSessionClientFromMcpServer
    /rpc/organizationRemoteSessionClients.rotate:
        post:
            description: Re-register a dynamically registered remote_session_client with its issuer in place, replacing the client_id and secret while keeping the row's id, issuer bindings, MCP server attachments, and key set links. Every remote session minted against the old client_id is revoked, so users reconnect once. Use when the issuer reports the registration expired (upstream_rejected_at is set) or to rotate proactively. The replacement is registered at the registration_endpoint the client's issuer publishes, so the issuer must publish one. Requires org:admin.
            operationId: rotateOrganizationRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: rotateClient organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: rotate
            x-speakeasy-react-hook:
                name: RotateOrganizationRemoteSessionClient
    /rpc/organizationRemoteSessionClients.update:
        post:
            description: Update a remote_session_client's non-secret fields in the caller's organization. Requires org:admin.
            operationId: updateOrganizationRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateRemoteSessionClientForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: updateClient organizationRemoteSessionClients
            tags:
                - organizationRemoteSessionClients
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateOrganizationRemoteSessionClient
    /rpc/organizationRemoteSessionIssuers.create:
        post:
            description: Create a remote_session_issuer in the caller's organization. With no project_id the issuer is organization-level (project_id NULL, inherited by every project); with a project_id (which must belong to the organization) it is project-specific. Requires org:admin.
            operationId: createOrganizationRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateIssuerRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: createIssuer organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateOrganizationRemoteSessionIssuer
    /rpc/organizationRemoteSessionIssuers.delete:
        delete:
            description: Soft-delete any remote_session_issuer (organizational or project-specific) in the caller's organization. Blocked when any remote_session_clients still reference it. Requires org:admin.
            operationId: deleteOrganizationRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: deleteIssuer organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteOrganizationRemoteSessionIssuer
    /rpc/organizationRemoteSessionIssuers.fetchMetadata:
        post:
            description: Hit an upstream issuer's RFC 8414 .well-known/oauth-authorization-server document and return a draft suitable for organizationRemoteSessionIssuers.create. Keyed by issuer URL; no record need exist and nothing is persisted. The organization-scoped counterpart of remoteSessionIssuers.fetchMetadata, so creating an organization-level issuer no longer has to borrow an unrelated project's scope. Requires org:admin.
            operationId: fetchOrganizationRemoteSessionIssuerMetadata
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/FetchIssuerMetadataRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerDraft'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: fetchIssuerMetadata organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: fetchMetadata
            x-speakeasy-react-hook:
                name: FetchOrganizationRemoteSessionIssuerMetadata
    /rpc/organizationRemoteSessionIssuers.get:
        get:
            description: Get any remote_session_issuer (organizational or project-specific) in the caller's organization by id. Requires org:read.
            operationId: getOrganizationRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: getIssuer organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionIssuer
    /rpc/organizationRemoteSessionIssuers.getDeletePreflight:
        get:
            description: 'Authoritative impact summary for deleting a remote_session_issuer: associated client count and affected MCP server names. Requires org:read.'
            operationId: getOrganizationRemoteSessionIssuerDeletePreflight
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OrganizationIssuerDeletePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: getIssuerDeletePreflight organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: getDeletePreflight
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionIssuerDeletePreflight
    /rpc/organizationRemoteSessionIssuers.getDuplicatePreflight:
        get:
            description: |-
                Report the existing remote_session_issuers that already describe an upstream issuer URL, so a create or edit form can warn before it duplicates one. Requires org:read.

                Covers every issuer in the caller's organization — organization-level and project-specific alike — plus the platform catalog. The project-specific rows are the point: an organization administrator about to add an organization-level issuer most needs to know that several of their projects already configured the same URL separately, because those are exactly the records migrateIssuer can consolidate. The answer does not depend on whether the issuer being created is organization-level or project-scoped; an org administrator holds org:read either way.

                Advisory only. Duplicating an issuer URL is legitimate, so nothing here blocks a write and no lock is taken. Matching uses the same canonicalization as getRemoteSessionIssuer, and a URL that cannot be parsed as an issuer identifier returns no matches rather than an error.
            operationId: getOrganizationRemoteSessionIssuerDuplicatePreflight
            parameters:
                - allowEmptyValue: true
                  description: The upstream issuer URL being entered (e.g. https://login.linear.app). Empty or unparseable returns no matches.
                  in: query
                  name: issuer
                  schema:
                    description: The upstream issuer URL being entered (e.g. https://login.linear.app). Empty or unparseable returns no matches.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerDuplicatePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: getIssuerDuplicatePreflight organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: getDuplicatePreflight
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionIssuerDuplicatePreflight
    /rpc/organizationRemoteSessionIssuers.getMigratePreflight:
        get:
            description: 'Authoritative impact summary for migrating a remote_session_issuer''s clients onto another issuer: the clients that would move, the affected MCP servers, and every blocker (endpoint mismatches, conflicting MCP-server bindings). Requires org:read.'
            operationId: getOrganizationRemoteSessionIssuerMigratePreflight
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer to migrate away from.
                  in: query
                  name: source_id
                  required: true
                  schema:
                    description: The remote_session_issuer to migrate away from.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The remote_session_issuer to migrate onto.
                  in: query
                  name: target_id
                  required: true
                  schema:
                    description: The remote_session_issuer to migrate onto.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OrganizationIssuerMigratePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: getIssuerMigratePreflight organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: getMigratePreflight
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionIssuerMigratePreflight
    /rpc/organizationRemoteSessionIssuers.list:
        get:
            description: List all remote_session_issuers in the caller's organization — organizational (project_id NULL) and project-specific — each with its associated client count and, for project-specific issuers, the owning project name. Requires org:read.
            operationId: listOrganizationRemoteSessionIssuers
            parameters:
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: 'Only issuers from one tier: organizational (organization), project-specific (project), or from the platform catalog (platform). Omitted lists all three.'
                  in: query
                  name: tier
                  schema:
                    description: 'Only issuers from one tier: organizational (organization), project-specific (project), or from the platform catalog (platform). Omitted lists all three.'
                    enum:
                        - organization
                        - project
                        - platform
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOrganizationRemoteSessionIssuersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: listIssuers organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionIssuers
    /rpc/organizationRemoteSessionIssuers.listEMAServices:
        get:
            description: 'List every service identity chaining reaches in the caller''s organization: each vendor authorization server that any identity chaining binding or saved EMA provider order names, with the organization-wide provider order, when the vendor last accepted an assertion from each provider across every binding, and the MCP servers that chain through it: counts include every server, the list only those the caller has mcp:read on. Requires org:read.'
            operationId: listOrganizationRemoteSessionIssuerEMAServices
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListEMAServicesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listEMAServices organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: listEMAServices
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionIssuerEMAServices
    /rpc/organizationRemoteSessionIssuers.migrate:
        post:
            description: 'Consolidate two remote_session_issuers that point at the same upstream authorization server: re-point every client from the source issuer onto the target issuer, then soft-delete the source. Existing remote sessions are preserved, so no user re-authenticates. Both issuers must belong to the caller''s organization and agree on issuer, token_endpoint, and authorization_endpoint. The issuer identifier is compared canonically, so two spellings differing only by a trailing slash or an explicit default port count as the same upstream; the two endpoints are compared literally. The target may not be narrower in scope than the source: a project-specific issuer may migrate onto an issuer in the same project or onto an organization-level issuer, and an organization-level issuer may migrate onto another organization-level issuer. Requires org:admin.'
            operationId: migrateOrganizationRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/MigrateIssuerRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MigrateOrganizationRemoteSessionIssuerResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: migrateIssuer organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: migrate
            x-speakeasy-react-hook:
                name: MigrateOrganizationRemoteSessionIssuer
    /rpc/organizationRemoteSessionIssuers.move:
        post:
            description: 'Re-scope a remote_session_issuer in the caller''s organization: provide a project_id (which must belong to the organization) to make it project-specific, or omit it to make it organization-level (project_id NULL, inherited by every project). Requires org:admin.'
            operationId: moveOrganizationRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/MoveIssuerRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: moveIssuer organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: move
            x-speakeasy-react-hook:
                name: MoveOrganizationRemoteSessionIssuer
    /rpc/organizationRemoteSessionIssuers.refreshMetadata:
        post:
            description: Re-fetch an existing remote_session_issuer's RFC 8414 metadata document and persist the discovered values. Keyed by issuer id; serves both organizational and project-specific issuers in the caller's organization. Only RFC 8414-derived columns are written — endpoints, the *_supported arrays, client_id_metadata_document_supported, and the documentation URLs. Speakeasy behavior and display fields (oidc, passthrough, name, slug, logo, client setup documentation) are left alone. Requires org:admin.
            operationId: refreshOrganizationRemoteSessionIssuerMetadata
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerRefresh'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: refreshIssuerMetadata organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: refreshMetadata
            x-speakeasy-react-hook:
                name: RefreshOrganizationRemoteSessionIssuerMetadata
    /rpc/organizationRemoteSessionIssuers.setEMAProviders:
        post:
            description: 'Replace the EMA providers the vendor authorization server this issuer names accepts, the providers that may issue ID-JAGs for it. They are stored as an ordered list, but each endpoint can use only the provider its sign-in goes through: the sign-in''s trusted external issuer, or the organization''s Speakeasy issuer for a sign-in that trusts none. So the list acts as the set of accepted providers, and its order does not change who vouches; a list that leaves out an endpoint''s provider leaves that endpoint with nobody to vouch. An empty list restores the derived default, which accepts every provider: an endpoint whose sign-in trusts an external issuer uses that issuer alone, and one that trusts none uses the organization''s Speakeasy issuer when it has one. The list applies organization-wide to every issuer with the same canonical issuer URL. With expected_providers, the write happens only while the saved list still matches it. Requires org:admin and the ema-providers rollout; restoring the default only needs org:admin. Not available from support or impersonated sessions.'
            operationId: setOrganizationRemoteSessionIssuerEMAProviders
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetEMAProvidersRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/EMAProviderOrder'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: setEMAProviders organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: setEMAProviders
            x-speakeasy-react-hook:
                name: SetOrganizationRemoteSessionIssuerEMAProviders
    /rpc/organizationRemoteSessionIssuers.update:
        post:
            description: Update any remote_session_issuer (organizational or project-specific) in the caller's organization. Requires org:admin.
            operationId: updateOrganizationRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateRemoteSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: updateIssuer organizationRemoteSessionIssuers
            tags:
                - organizationRemoteSessionIssuers
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateOrganizationRemoteSessionIssuer
    /rpc/organizationRemoteSessions.list:
        get:
            description: List the remote_sessions minted against a remote_session_client in the caller's organization. access_token_encrypted and refresh_token_encrypted are never returned. Requires org:read.
            operationId: listOrganizationRemoteSessionClientSessions
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: client_id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOrganizationRemoteSessionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: listClientSessions organizationRemoteSessions
            tags:
                - organizationRemoteSessions
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: OrganizationRemoteSessionClientSessions
    /rpc/organizationRemoteSessions.refresh:
        post:
            description: Force an upstream token refresh on a single remote_session in the caller's organization, regardless of current access-token expiry. Returns the updated remote_session so callers can reflect the new expiry without a refetch. Fails with a bad-request error when the session holds no refresh token. Requires org:admin.
            operationId: refreshOrganizationRemoteSession
            parameters:
                - allowEmptyValue: true
                  description: The remote_session id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSession'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: refreshSession organizationRemoteSessions
            tags:
                - organizationRemoteSessions
            x-speakeasy-name-override: refresh
            x-speakeasy-react-hook:
                name: RefreshOrganizationRemoteSession
    /rpc/organizationRemoteSessions.revoke:
        post:
            description: Revoke (soft-delete) a single remote_session in the caller's organization. Requires org:admin.
            operationId: revokeOrganizationRemoteSession
            parameters:
                - allowEmptyValue: true
                  description: The remote_session id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: revokeSession organizationRemoteSessions
            tags:
                - organizationRemoteSessions
            x-speakeasy-name-override: revoke
            x-speakeasy-react-hook:
                name: RevokeOrganizationRemoteSession
    /rpc/organizationRemoteSessions.revokeAll:
        post:
            description: Revoke (soft-delete) all remote_sessions minted against a remote_session_client in the caller's organization. Requires org:admin.
            operationId: revokeAllOrganizationRemoteSessionClientSessions
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: client_id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RevokeAllRemoteSessionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: revokeAllClientSessions organizationRemoteSessions
            tags:
                - organizationRemoteSessions
            x-speakeasy-name-override: revokeAll
            x-speakeasy-react-hook:
                name: RevokeAllOrganizationRemoteSessionClientSessions
    /rpc/organizationUserSessionIssuers.create:
        post:
            description: Create an organization-owned user_session_issuer. Requires org:admin.
            operationId: createOrganizationUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateOrganizationUserSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createIssuer organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateOrganizationUserSessionIssuer
    /rpc/organizationUserSessionIssuers.createCimdClient:
        post:
            description: Allow an additional CIMD document URL on an organization-owned user_session_issuer. Requires org:admin.
            operationId: createOrganizationUserSessionIssuerCimdClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateUserSessionIssuerCimdClientForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreateUserSessionIssuerCimdClientResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createCimdClient organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: createCimdClient
            x-speakeasy-react-hook:
                name: CreateOrganizationUserSessionIssuerCimdClient
    /rpc/organizationUserSessionIssuers.delete:
        delete:
            description: Soft-delete an organization-owned user_session_issuer. Refuses while a live MCP server or toolset references it. Requires org:admin.
            operationId: deleteOrganizationUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteIssuer organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteOrganizationUserSessionIssuer
    /rpc/organizationUserSessionIssuers.deleteCimdClient:
        delete:
            description: Remove a custom CIMD document URL from an organization-owned user_session_issuer. Requires org:admin.
            operationId: deleteOrganizationUserSessionIssuerCimdClient
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer_cimd_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_issuer_cimd_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: deleteCimdClient organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: deleteCimdClient
            x-speakeasy-react-hook:
                name: DeleteOrganizationUserSessionIssuerCimdClient
    /rpc/organizationUserSessionIssuers.get:
        get:
            description: Get any user_session_issuer in the caller's organization, organization-owned or project-specific, by id. Requires org:read.
            operationId: getOrganizationUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getIssuer organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: OrganizationUserSessionIssuer
    /rpc/organizationUserSessionIssuers.getAuthenticationHostImpact:
        get:
            description: 'Preview moving a user_session_issuer in the caller''s organization onto or off the deployment''s authentication host: where clients sign in before and after, and how many MCP servers that affects. Requires org:read.'
            operationId: getOrganizationUserSessionIssuerAuthenticationHostImpact
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: True to preview moving onto the authentication host, false to preview moving off it.
                  in: query
                  name: use_authentication_host
                  required: true
                  schema:
                    description: True to preview moving onto the authentication host, false to preview moving off it.
                    type: boolean
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuerAuthenticationHostImpact'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getAuthenticationHostImpact organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: getAuthenticationHostImpact
            x-speakeasy-react-hook:
                name: OrganizationUserSessionIssuerAuthenticationHostImpact
    /rpc/organizationUserSessionIssuers.getCimdClient:
        get:
            description: Get a custom CIMD document URL on an organization-owned user_session_issuer. Requires org:read.
            operationId: getOrganizationUserSessionIssuerCimdClient
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer_cimd_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_issuer_cimd_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuerCimdClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getCimdClient organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: getCimdClient
            x-speakeasy-react-hook:
                name: OrganizationUserSessionIssuerCimdClient
    /rpc/organizationUserSessionIssuers.getDeletePreflight:
        get:
            description: Report the clients, live sessions, MCP servers, and toolsets affected by deleting an organization-owned user_session_issuer. Requires org:read.
            operationId: getOrganizationUserSessionIssuerDeletePreflight
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OrganizationUserSessionIssuerDeletePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getIssuerDeletePreflight organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: getDeletePreflight
            x-speakeasy-react-hook:
                name: OrganizationUserSessionIssuerDeletePreflight
    /rpc/organizationUserSessionIssuers.getMigratePreflight:
        get:
            description: Report the impact, blockers, and configuration warnings for consolidating one user_session_issuer onto another. Requires org:read.
            operationId: getOrganizationUserSessionIssuerMigratePreflight
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer to migrate away from.
                  in: query
                  name: source_id
                  required: true
                  schema:
                    description: The user_session_issuer to migrate away from.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The user_session_issuer to migrate onto.
                  in: query
                  name: target_id
                  required: true
                  schema:
                    description: The user_session_issuer to migrate onto.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OrganizationUserSessionIssuerMigratePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getIssuerMigratePreflight organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: getMigratePreflight
            x-speakeasy-react-hook:
                name: OrganizationUserSessionIssuerMigratePreflight
    /rpc/organizationUserSessionIssuers.list:
        get:
            description: 'List the user_session_issuers in the caller''s organization: organization-owned and project-specific, each project-specific issuer with its owning project name. Requires org:read.'
            operationId: listOrganizationUserSessionIssuers
            parameters:
                - allowEmptyValue: true
                  description: 'Pagination cursor: id of the last item from the previous page.'
                  in: query
                  name: cursor
                  schema:
                    description: 'Pagination cursor: id of the last item from the previous page.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: 'Only issuers from one tier: organization-owned (organization) or project-specific (project). Omitted lists both.'
                  in: query
                  name: tier
                  schema:
                    description: 'Only issuers from one tier: organization-owned (organization) or project-specific (project). Omitted lists both.'
                    enum:
                        - organization
                        - project
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOrganizationUserSessionIssuersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listIssuers organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: OrganizationUserSessionIssuers
    /rpc/organizationUserSessionIssuers.listCimdClients:
        get:
            description: List custom CIMD document URLs on an organization-owned user_session_issuer. Requires org:read.
            operationId: listOrganizationUserSessionIssuerCimdClients
            parameters:
                - allowEmptyValue: true
                  description: The organization-owned user_session_issuer whose custom CIMD clients are listed.
                  in: query
                  name: user_session_issuer_id
                  required: true
                  schema:
                    description: The organization-owned user_session_issuer whose custom CIMD clients are listed.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: 'Pagination cursor: id of the last item from the previous page.'
                  in: query
                  name: cursor
                  schema:
                    description: 'Pagination cursor: id of the last item from the previous page.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUserSessionIssuerCimdClientsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listCimdClients organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: listCimdClients
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: OrganizationUserSessionIssuerCimdClients
    /rpc/organizationUserSessionIssuers.listMcpServers:
        get:
            description: List the live MCP servers, toolsets, and meta MCP servers attached to a user_session_issuer in the caller's organization, organization-owned or project-specific. A toolset served through an MCP server is listed once, as that server. Requires org:read.
            operationId: listOrganizationUserSessionIssuerMcpServers
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer whose attached MCP servers are listed.
                  in: query
                  name: user_session_issuer_id
                  required: true
                  schema:
                    description: The user_session_issuer whose attached MCP servers are listed.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: 'Pagination cursor: id of the last item from the previous page.'
                  in: query
                  name: cursor
                  schema:
                    description: 'Pagination cursor: id of the last item from the previous page.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUserSessionIssuerMcpServersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listMcpServers organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: listMcpServers
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: OrganizationUserSessionIssuerMcpServers
    /rpc/organizationUserSessionIssuers.migrate:
        post:
            description: Consolidate a source user_session_issuer onto a target issuer, preserving clients, sessions, attachments, and remote-session credentials before soft-deleting the source. The target must be in the same project or a broader organization scope. Access tokens issued through the authorization_code and refresh_token grants are audience-bound to the issuer, so once a repointed MCP server verifies bearers against the target, outstanding access tokens minted under the source are rejected until the client refreshes. Migrated sessions and refresh tokens keep working, so the refresh succeeds without re-authorization. Tokens from the jwt-bearer (ID-JAG) grant are bound to the resource URL and are unaffected. Requires org:admin.
            operationId: migrateOrganizationUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/MigrateIssuerRequestBody2'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MigrateOrganizationUserSessionIssuerResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: migrateIssuer organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: migrate
            x-speakeasy-react-hook:
                name: MigrateOrganizationUserSessionIssuer
    /rpc/organizationUserSessionIssuers.move:
        post:
            description: Re-scope a user_session_issuer in the caller's organization. Provide a project_id to make it project-specific, or omit it to make it organization-owned. Existing clients and sessions move with the issuer. Requires org:admin.
            operationId: moveOrganizationUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/MoveIssuerRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: moveIssuer organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: move
            x-speakeasy-react-hook:
                name: MoveOrganizationUserSessionIssuer
    /rpc/organizationUserSessionIssuers.setAuthenticationHost:
        post:
            description: Move a user_session_issuer in the caller's organization onto or off the deployment's authentication host. A shared authorization server with a pinned issuer URL is re-pinned to the matching host, so its issuer URL and token endpoint change; other issuers announce their authorization servers on the new host. Clients and anything configured with the previous URLs must be updated. Refused when the deployment has no authentication host, and for issuers managed by Speakeasy. Requires org:admin.
            operationId: setOrganizationUserSessionIssuerAuthenticationHost
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetAuthenticationHostRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: setAuthenticationHost organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: setAuthenticationHost
            x-speakeasy-react-hook:
                name: SetOrganizationUserSessionIssuerAuthenticationHost
    /rpc/organizationUserSessionIssuers.update:
        post:
            description: Update an organization-owned user_session_issuer. Requires org:admin.
            operationId: updateOrganizationUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateOrganizationUserSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateIssuer organizationUserSessionIssuers
            tags:
                - organizationUserSessionIssuers
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateOrganizationUserSessionIssuer
    /rpc/organizations.createPortalSession:
        post:
            description: Create a webhook portal session.
            operationId: createPortalSession
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreatePortalSessionResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createPortalSession organizations
            tags:
                - organizations
            x-speakeasy-name-override: createPortalSession
            x-speakeasy-react-hook:
                name: CreatePortalSession
    /rpc/organizations.disableWebhooks:
        post:
            description: Disable  webhooks for the active organization.
            operationId: disableWebhooks
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: disableWebhooks organizations
            tags:
                - organizations
            x-speakeasy-name-override: disableWebhooks
            x-speakeasy-react-hook:
                name: DisableWebhooks
    /rpc/organizations.enableWebhooks:
        post:
            description: Enable  webhooks for the active organization.
            operationId: enableWebhooks
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: enableWebhooks organizations
            tags:
                - organizations
            x-speakeasy-name-override: enableWebhooks
            x-speakeasy-react-hook:
                name: EnableWebhooks
    /rpc/organizations.generateWorkOSAdminPortalLink:
        post:
            description: Generate a WorkOS Admin Portal link for the given intent (e.g. dsync, sso).
            operationId: generateWorkOSAdminPortalLink
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GenerateWorkOSAdminPortalLinkRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GenerateWorkOSAdminPortalLinkResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: generateWorkOSAdminPortalLink organizations
            tags:
                - organizations
            x-speakeasy-name-override: generateWorkOSAdminPortalLink
            x-speakeasy-react-hook:
                name: GenerateWorkOSAdminPortalLink
    /rpc/organizations.get:
        get:
            description: Get the active organization from the session.
            operationId: getOrganization
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Organization'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: get organizations
            tags:
                - organizations
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: Organization
    /rpc/organizations.getGateway:
        get:
            description: 'Get the active organization''s gateway: one MCP URL that gives each member every MCP server in the organization they can reach, signed in through the organization''s own user session issuer. It is served while the organization owns exactly one organization-level user session issuer, on the platform host, so not for an organization whose custom domain restricts access to an IP allowlist, not while an organization admin has turned it off, and not for a disabled organization. Requires org:read.'
            operationId: getOrganizationGateway
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OrganizationGateway'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getGateway organizations
            tags:
                - organizations
            x-speakeasy-name-override: getGateway
            x-speakeasy-react-hook:
                name: OrganizationGateway
    /rpc/organizations.getOnboardingStatus:
        get:
            description: Get the onboarding status for the active organization by checking WorkOS domain verification, SSO connections, and directory sync state.
            operationId: getOnboardingStatus
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OnboardingStatusResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getOnboardingStatus organizations
            tags:
                - organizations
            x-speakeasy-name-override: getOnboardingStatus
            x-speakeasy-react-hook:
                name: OnboardingStatus
    /rpc/organizations.listInvites:
        get:
            description: List pending WorkOS invitations for the active organization.
            operationId: listInvites
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListInvitesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listInvites organizations
            tags:
                - organizations
            x-speakeasy-name-override: listInvites
            x-speakeasy-react-hook:
                name: ListInvites
    /rpc/organizations.listSetupTasks:
        get:
            description: List the fixed setup task catalog projected with organization state and completion evidence.
            operationId: listSetupTasks
            parameters:
                - allowEmptyValue: true
                  description: Include hidden tasks for platform administrators.
                  in: query
                  name: include_hidden
                  schema:
                    description: Include hidden tasks for platform administrators.
                    type: boolean
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSetupTasksResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listSetupTasks organizations
            tags:
                - organizations
            x-speakeasy-name-override: listSetupTasks
            x-speakeasy-react-hook:
                name: ListSetupTasks
    /rpc/organizations.listUsers:
        get:
            description: List users in the active organization from Speakeasy organization_user_relationships.
            operationId: listOrganizationUsers
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUsersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listUsers organizations
            tags:
                - organizations
            x-speakeasy-name-override: listUsers
            x-speakeasy-react-hook:
                name: ListOrganizationUsers
    /rpc/organizations.removeUser:
        delete:
            description: Remove a user from the active organization in Speakeasy and delete their WorkOS organization membership.
            operationId: removeOrganizationUser
            parameters:
                - allowEmptyValue: true
                  description: Speakeasy user ID to remove.
                  in: query
                  name: user_id
                  required: true
                  schema:
                    description: Speakeasy user ID to remove.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: removeUser organizations
            tags:
                - organizations
            x-speakeasy-name-override: removeUser
            x-speakeasy-react-hook:
                name: RemoveOrganizationUser
    /rpc/organizations.revokeInvite:
        delete:
            description: Revoke a pending WorkOS invitation.
            operationId: revokeInvite
            parameters:
                - allowEmptyValue: true
                  description: WorkOS invitation ID.
                  in: query
                  name: invitation_id
                  required: true
                  schema:
                    description: WorkOS invitation ID.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: revokeInvite organizations
            tags:
                - organizations
            x-speakeasy-name-override: revokeInvite
            x-speakeasy-react-hook:
                name: RevokeInvite
    /rpc/organizations.revokeMemberSignIns:
        post:
            description: Revoke a member's sign-ins in the active organization, end their identity provider sessions, and revoke every MCP grant made from those sign-ins. Requires organization admin.
            operationId: revokeOrganizationMemberSignIns
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RevokeMemberSignInsRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RevokeSignInsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: revokeMemberSignIns organizations
            tags:
                - organizations
            x-speakeasy-name-override: revokeMemberSignIns
            x-speakeasy-react-hook:
                name: RevokeOrganizationMemberSignIns
    /rpc/organizations.sendEnterpriseAdminOnboardingEmail:
        post:
            description: Send the enterprise admin onboarding email to one or more recipients. The email links each recipient to the wizard for the active organization. Used by the Platform Admin onboarding tools.
            operationId: sendEnterpriseAdminOnboardingEmail
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SendEnterpriseAdminOnboardingEmailRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SendEnterpriseAdminOnboardingEmailResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: sendEnterpriseAdminOnboardingEmail organizations
            tags:
                - organizations
            x-speakeasy-name-override: sendEnterpriseAdminOnboardingEmail
            x-speakeasy-react-hook:
                name: SendEnterpriseAdminOnboardingEmail
    /rpc/organizations.sendInvite:
        post:
            description: Send a WorkOS invitation for the active organization.
            operationId: sendInvite
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SendInviteRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OrganizationInvitation'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: sendInvite organizations
            tags:
                - organizations
            x-speakeasy-name-override: sendInvite
            x-speakeasy-react-hook:
                name: SendInvite
    /rpc/organizations.submitOnboardingSurvey:
        post:
            description: Record the onboarding survey result. The server picks the use case's default playbook, which decides the setup tasks the wizard walks; progress and assignments are kept.
            operationId: submitOnboardingSurvey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SubmitOnboardingSurveyRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSetupTasksResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: submitOnboardingSurvey organizations
            tags:
                - organizations
            x-speakeasy-name-override: submitOnboardingSurvey
            x-speakeasy-react-hook:
                name: SubmitOnboardingSurvey
    /rpc/organizations.updateInviteRole:
        put:
            description: Change the role assigned to a pending WorkOS invitation.
            operationId: updateInviteRole
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateInviteRoleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/OrganizationInvitation'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateInviteRole organizations
            tags:
                - organizations
            x-speakeasy-name-override: updateInviteRole
            x-speakeasy-react-hook:
                name: UpdateInviteRole
    /rpc/organizations.updateSetupTask:
        post:
            description: 'Update one fixed setup task. The request must include at least one effective update: status, assignee, hidden, or clear_assignee=true. Assignee is mutually exclusive with clear_assignee=true.'
            operationId: updateSetupTask
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateSetupTaskRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SetupTask'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: updateSetupTask organizations
            tags:
                - organizations
            x-speakeasy-name-override: updateSetupTask
            x-speakeasy-react-hook:
                name: UpdateSetupTask
    /rpc/organizations.verifyOnboardingHooksSetup:
        get:
            description: Return recent hook events for the active organization so the onboarding wizard can confirm that coding agent instrumentation is delivering events to Speakeasy. Polled from the confirm-traffic step.
            operationId: verifyOnboardingHooksSetup
            parameters:
                - allowEmptyValue: true
                  description: Only return events with time_unix_nano greater than this value. Pass the previous response's latest_unix_nano to poll for new events. Stringified to preserve int64 precision.
                  in: query
                  name: since_unix_nano
                  schema:
                    description: Only return events with time_unix_nano greater than this value. Pass the previous response's latest_unix_nano to poll for new events. Stringified to preserve int64 precision.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/VerifyOnboardingHooksSetupResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: verifyOnboardingHooksSetup organizations
            tags:
                - organizations
            x-speakeasy-name-override: verifyOnboardingHooksSetup
            x-speakeasy-react-hook:
                name: VerifyOnboardingHooksSetup
    /rpc/otel.getEventFacets:
        post:
            description: 'Org-scoped filter facets for the event feed: the distinct sources and event/span names observed in a time range.'
            operationId: getEventFacets
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetEventFacetsPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetEventFacetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getEventFacets otel
            tags:
                - otel
            x-speakeasy-name-override: getEventFacets
            x-speakeasy-react-hook:
                name: GetEventFacets
                type: query
    /rpc/otel.getEventVolume:
        post:
            description: 'Org-scoped event volume timeseries for the event feed: bucketed counts of ingested OpenTelemetry log records vs spans over a time range, honoring the same filters as listEventLog.'
            operationId: getEventVolume
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetEventVolumePayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetEventVolumeResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getEventVolume otel
            tags:
                - otel
            x-speakeasy-name-override: getEventVolume
            x-speakeasy-react-hook:
                name: GetEventVolume
                type: query
    /rpc/otel.listEventLog:
        post:
            description: 'Org-scoped event feed over ingested OpenTelemetry signals: log records and spans merged into one reverse-chronological list with keyset pagination and a capped total count.'
            operationId: listEventLog
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ListEventLogPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListEventLogResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listEventLog otel
            tags:
                - otel
            x-speakeasy-name-override: listEventLog
            x-speakeasy-react-hook:
                name: ListEventLog
                type: query
    /rpc/packages.create:
        post:
            description: Create a new package for a project.
            operationId: createPackage
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreatePackageForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreatePackageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createPackage packages
            tags:
                - packages
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreatePackage
    /rpc/packages.list:
        get:
            description: List all packages for a project.
            operationId: listPackages
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPackagesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listPackages packages
            tags:
                - packages
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListPackages
    /rpc/packages.listVersions:
        get:
            description: List published versions of a package.
            operationId: listVersions
            parameters:
                - allowEmptyValue: true
                  description: The name of the package
                  in: query
                  name: name
                  required: true
                  schema:
                    description: The name of the package
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListVersionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listVersions packages
            tags:
                - packages
            x-speakeasy-name-override: listVersions
            x-speakeasy-react-hook:
                name: ListVersions
    /rpc/packages.publish:
        post:
            description: Publish a new version of a package.
            operationId: publish
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/PublishPackageForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PublishPackageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: publish packages
            tags:
                - packages
            x-speakeasy-name-override: publish
            x-speakeasy-react-hook:
                name: PublishPackage
    /rpc/packages.update:
        put:
            description: Update package details.
            operationId: updatePackage
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdatePackageForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UpdatePackageResult'
                    description: OK response.
                "304":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/NotModified'
                    description: 'not_modified: Not Modified response.'
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updatePackage packages
            tags:
                - packages
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdatePackage
    /rpc/platformKillswitches.activatePrescription:
        post:
            tags:
                - platformKillswitches
            summary: activatePrescription platformKillswitches
            operationId: platformKillswitches#activatePrescription
            parameters:
                - name: Gram-Session
                  in: header
                  description: Session header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Session header
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ActivatePrescriptionRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformKillswitchMutationResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'version_conflict: The prescription changed after the supplied expected version.'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - session_header_Gram-Session: []
    /rpc/platformKillswitches.changePrescription:
        post:
            tags:
                - platformKillswitches
            summary: changePrescription platformKillswitches
            operationId: platformKillswitches#changePrescription
            parameters:
                - name: Gram-Session
                  in: header
                  description: Session header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Session header
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ChangePrescriptionRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformKillswitchMutationResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'version_conflict: The prescription changed after the supplied expected version.'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - session_header_Gram-Session: []
    /rpc/platformKillswitches.deactivatePrescription:
        post:
            tags:
                - platformKillswitches
            summary: deactivatePrescription platformKillswitches
            operationId: platformKillswitches#deactivatePrescription
            parameters:
                - name: Gram-Session
                  in: header
                  description: Session header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Session header
            requestBody:
                required: true
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DeactivatePrescriptionRequestBody'
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformKillswitchMutationResult'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'version_conflict: The prescription changed after the supplied expected version.'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - session_header_Gram-Session: []
    /rpc/platformKillswitches.getPrescription:
        get:
            tags:
                - platformKillswitches
            summary: getPrescription platformKillswitches
            operationId: platformKillswitches#getPrescription
            parameters:
                - name: organization_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                - name: prescription_id
                  in: query
                  allowEmptyValue: true
                  required: true
                  schema:
                    type: string
                    format: uuid
                - name: Gram-Session
                  in: header
                  description: Session header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Session header
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformKillswitchPrescription'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'version_conflict: The prescription changed after the supplied expected version.'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - session_header_Gram-Session: []
    /rpc/platformKillswitches.listDefinitions:
        get:
            tags:
                - platformKillswitches
            summary: listDefinitions platformKillswitches
            operationId: platformKillswitches#listDefinitions
            parameters:
                - name: Gram-Session
                  in: header
                  description: Session header
                  allowEmptyValue: true
                  schema:
                    type: string
                    description: Session header
            responses:
                "200":
                    description: OK response.
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDefinitionsResponseBody'
                "400":
                    description: 'bad_request: request is invalid'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "401":
                    description: 'unauthorized: unauthorized access'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "403":
                    description: 'forbidden: permission denied'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "404":
                    description: 'not_found: resource not found'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "409":
                    description: 'version_conflict: The prescription changed after the supplied expected version.'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "415":
                    description: 'unsupported_media: unsupported media type'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "422":
                    description: 'invalid: request contains one or more invalidation fields'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "500":
                    description: 'unexpected: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "502":
                    description: 'gateway_error: an unexpected error occurred'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                "503":
                    description: 'unavailable: service temporarily unavailable'
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
            security:
                - session_header_Gram-Session: []
    /rpc/platformKillswitches.listPrescriptions:
        get:
            operationId: platformKillswitches#listPrescriptions
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: limit
                  schema:
                    format: int32
                    maximum: 100
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  in: query
                  name: after_id
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPrescriptionsResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'version_conflict: The prescription changed after the supplied expected version.'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: listPrescriptions platformKillswitches
            tags:
                - platformKillswitches
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: after_id
                      type: cursor
                outputs:
                    nextCursor: $.next_after_id
                type: cursor
    /rpc/platformMcp.dismissOnboarding:
        post:
            description: Dismiss the optional current user's Platform MCP onboarding workflow without changing organization setup or project resources.
            operationId: dismissPlatformMCPOnboarding
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: dismissOnboarding platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: dismissOnboarding
            x-speakeasy-react-hook:
                name: DismissPlatformMCPOnboarding
    /rpc/platformMcp.distributeOnboardingCandidate:
        post:
            description: Attach the workflow-bound ready local MCP to the selected project's existing Default plugin. The caller supplies only the selected project slug and its opaque server-issued version token.
            operationId: distributePlatformMCPOnboardingCandidate
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DistributeOnboardingCandidateRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformMCPOnboardingState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: distributeOnboardingCandidate platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: distributeOnboardingCandidate
            x-speakeasy-react-hook:
                name: DistributePlatformMCPOnboardingCandidate
    /rpc/platformMcp.getOnboarding:
        get:
            description: Get the current user's safe Platform MCP onboarding projection for the active organization.
            operationId: getPlatformMCPOnboarding
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformMCPOnboardingState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: getOnboarding platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: getOnboarding
            x-speakeasy-react-hook:
                name: PlatformMCPOnboarding
    /rpc/platformMcp.recheckOnboardingReadiness:
        post:
            description: Force a rate-limited authenticated readiness recheck for the workflow-bound local registration.
            operationId: recheckPlatformMCPOnboardingReadiness
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformMCPOnboardingState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: recheckOnboardingReadiness platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: recheckOnboardingReadiness
            x-speakeasy-react-hook:
                name: RecheckPlatformMCPOnboardingReadiness
    /rpc/platformMcp.recordAgentConfigurationCopied:
        post:
            description: Record that the user copied the displayed Platform MCP configuration or completed an equivalent supported agent-setup action.
            operationId: recordPlatformMCPAgentConfigurationCopied
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformMCPOnboardingState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: recordAgentConfigurationCopied platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: recordAgentConfigurationCopied
            x-speakeasy-react-hook:
                name: RecordPlatformMCPAgentConfigurationCopied
    /rpc/platformMcp.recordDashboardCtaEvent:
        post:
            description: Record a bounded Platform MCP dashboard CTA impression, selection, or dismissal.
            operationId: recordPlatformMCPDashboardCtaEvent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RecordDashboardCtaEventRequestBody'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: recordDashboardCtaEvent platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: recordDashboardCtaEvent
            x-speakeasy-react-hook:
                name: RecordPlatformMCPDashboardCtaEvent
    /rpc/platformMcp.recordInstallIntent:
        post:
            description: Record a selected manual-install client family for the current user's Platform MCP workflow.
            operationId: recordPlatformMCPInstallIntent
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RecordInstallIntentRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformMCPOnboardingState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: recordInstallIntent platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: recordInstallIntent
            x-speakeasy-react-hook:
                name: RecordPlatformMCPInstallIntent
    /rpc/platformMcp.removeOnboardingDistribution:
        post:
            description: Remove only the workflow-bound MCP from the selected project's existing Default plugin. Registration, readiness, connection, and prior evidence remain intact.
            operationId: removePlatformMCPOnboardingDistribution
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DistributeOnboardingCandidateRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformMCPOnboardingState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: removeOnboardingDistribution platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: removeOnboardingDistribution
            x-speakeasy-react-hook:
                name: RemovePlatformMCPOnboardingDistribution
    /rpc/platformMcp.repairOnboardingPublication:
        post:
            description: Retry in-memory local package publication for the workflow-bound distribution without changing its attachment or version.
            operationId: repairPlatformMCPOnboardingPublication
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DistributeOnboardingCandidateRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformMCPOnboardingState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: repairOnboardingPublication platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: repairOnboardingPublication
            x-speakeasy-react-hook:
                name: RepairPlatformMCPOnboardingPublication
    /rpc/platformMcp.startOnboarding:
        post:
            description: Create or resume the current user's durable Platform MCP onboarding workflow.
            operationId: startPlatformMCPOnboarding
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/StartOnboardingRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformMCPOnboardingState'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: startOnboarding platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: startOnboarding
            x-speakeasy-react-hook:
                name: StartPlatformMCPOnboarding
    /rpc/platformMcp.startOnboardingSetup:
        post:
            description: Return the secure setup continuation for the workflow-bound registration. Browser Catalogue registrations return their existing same-origin dashboard Inspect page; the local fixture returns a one-time handoff for its synthetic provider setup endpoint.
            operationId: startPlatformMCPOnboardingSetup
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PlatformMCPOnboardingSetupHandoff'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - session_header_Gram-Session: []
            summary: startOnboardingSetup platformMcp
            tags:
                - platformMcp
            x-speakeasy-name-override: startOnboardingSetup
            x-speakeasy-react-hook:
                name: StartPlatformMCPOnboardingSetup
    /rpc/plugins.addPluginServer:
        post:
            description: Add an MCP server to a plugin.
            operationId: addPluginServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AddPluginServerForm'
                required: true
            responses:
                "201":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PluginServer'
                    description: Created response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: addPluginServer plugins
            tags:
                - plugins
            x-speakeasy-name-override: addPluginServer
            x-speakeasy-react-hook:
                name: AddPluginServer
    /rpc/plugins.createPlugin:
        post:
            description: Create a new plugin.
            operationId: createPlugin
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreatePluginForm'
                required: true
            responses:
                "201":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Plugin'
                    description: Created response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createPlugin plugins
            tags:
                - plugins
            x-speakeasy-name-override: createPlugin
            x-speakeasy-react-hook:
                name: CreatePlugin
    /rpc/plugins.deletePlugin:
        delete:
            description: Delete a plugin.
            operationId: deletePlugin
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deletePlugin plugins
            tags:
                - plugins
            x-speakeasy-name-override: deletePlugin
            x-speakeasy-react-hook:
                name: DeletePlugin
    /rpc/plugins.downloadCodexInstallScript:
        get:
            description: Download a bash install script that registers the Codex observability marketplace and pre-approves all hook events. Requires a published marketplace.
            operationId: downloadCodexInstallScript
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        text/x-shellscript:
                            schema:
                                format: binary
                                type: string
                    description: OK response.
                    headers:
                        Content-Disposition:
                            schema:
                                type: string
                        Content-Type:
                            schema:
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: downloadCodexInstallScript plugins
            tags:
                - plugins
            x-speakeasy-name-override: downloadCodexInstallScript
    /rpc/plugins.downloadObservabilityPlugin:
        get:
            description: Download a ZIP of the per-org observability plugin (Speakeasy hooks). Mints a fresh hooks-scoped API key on each download and embeds it in the plugin's hook script.
            operationId: downloadObservabilityPlugin
            parameters:
                - allowEmptyValue: true
                  description: Target platform.
                  in: query
                  name: platform
                  required: true
                  schema:
                    description: Target platform.
                    enum:
                        - claude
                        - cursor
                        - codex
                        - opencode
                        - copilot
                        - openclaw
                        - pi
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/zip:
                            schema:
                                format: binary
                                type: string
                    description: OK response.
                    headers:
                        Content-Disposition:
                            schema:
                                type: string
                        Content-Type:
                            schema:
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: downloadObservabilityPlugin plugins
            tags:
                - plugins
            x-speakeasy-name-override: downloadObservabilityPlugin
    /rpc/plugins.downloadPluginPackage:
        get:
            description: Download a ZIP of a single plugin package for direct installation.
            operationId: downloadPluginPackage
            parameters:
                - allowEmptyValue: true
                  description: The plugin to download.
                  in: query
                  name: plugin_id
                  required: true
                  schema:
                    description: The plugin to download.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Target platform to download plugins for.
                  in: query
                  name: platform
                  required: true
                  schema:
                    description: Target platform to download plugins for.
                    enum:
                        - claude
                        - cursor
                        - codex
                        - agent-plugin
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/zip:
                            schema:
                                format: binary
                                type: string
                    description: OK response.
                    headers:
                        Content-Disposition:
                            schema:
                                type: string
                        Content-Type:
                            schema:
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: downloadPluginPackage plugins
            tags:
                - plugins
            x-speakeasy-name-override: downloadPluginPackage
    /rpc/plugins.getDistributionPlugin:
        get:
            description: Get minimal distribution target metadata for a skill the caller can read. Requires skill:read, not org:read.
            operationId: getDistributionPlugin
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: skill_id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DistributionPlugin'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getDistributionPlugin plugins
            tags:
                - plugins
            x-speakeasy-name-override: getDistributionPlugin
            x-speakeasy-react-hook:
                name: DistributionPlugin
    /rpc/plugins.getMarketplaceSettings:
        get:
            description: Get the marketplace settings for the current project, including the effective marketplace name and the server-side default.
            operationId: getMarketplaceSettings
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MarketplaceSettingsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getMarketplaceSettings plugins
            tags:
                - plugins
            x-speakeasy-name-override: getMarketplaceSettings
            x-speakeasy-react-hook:
                name: MarketplaceSettings
    /rpc/plugins.getPlugin:
        get:
            description: Get a plugin with its servers and assignments.
            operationId: getPlugin
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Plugin'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getPlugin plugins
            tags:
                - plugins
            x-speakeasy-name-override: getPlugin
            x-speakeasy-react-hook:
                name: Plugin
    /rpc/plugins.getPublishStatus:
        get:
            description: Check whether GitHub publishing is configured and connected for this project.
            operationId: getPublishStatus
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PublishStatusResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getPublishStatus plugins
            tags:
                - plugins
            x-speakeasy-name-override: getPublishStatus
            x-speakeasy-react-hook:
                name: PublishStatus
    /rpc/plugins.listAudiences:
        get:
            description: List the audiences that can be assigned to plugins.
            operationId: listAudiences
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAudiencesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listAudiences plugins
            tags:
                - plugins
            x-speakeasy-name-override: listAudiences
            x-speakeasy-react-hook:
                name: Audiences
    /rpc/plugins.listDistributionPlugins:
        get:
            description: List minimal distribution targets for a skill the caller can read. Requires skill:read, not org:read.
            operationId: listDistributionPlugins
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: skill_id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListDistributionPluginsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listDistributionPlugins plugins
            tags:
                - plugins
            x-speakeasy-name-override: listDistributionPlugins
            x-speakeasy-react-hook:
                name: DistributionPlugins
    /rpc/plugins.listPlugins:
        get:
            description: List all plugins for the current project.
            operationId: listPlugins
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPluginsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listPlugins plugins
            tags:
                - plugins
            x-speakeasy-name-override: listPlugins
            x-speakeasy-react-hook:
                name: Plugins
    /rpc/plugins.publishPlugins:
        post:
            description: Generate and publish all plugin packages to a GitHub repository.
            operationId: publishPlugins
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/PublishPluginsRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PublishPluginsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: publishPlugins plugins
            tags:
                - plugins
            x-speakeasy-name-override: publishPlugins
            x-speakeasy-react-hook:
                name: PublishPlugins
    /rpc/plugins.removePluginServer:
        delete:
            description: Remove a server from a plugin.
            operationId: removePluginServer
            parameters:
                - allowEmptyValue: true
                  description: The plugin server ID to remove.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The plugin server ID to remove.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: plugin_id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: removePluginServer plugins
            tags:
                - plugins
            x-speakeasy-name-override: removePluginServer
            x-speakeasy-react-hook:
                name: RemovePluginServer
    /rpc/plugins.rotateObservabilityCredential:
        post:
            description: Rotate the observability plugin's hooks-scoped ingest credential. Mints a replacement key, republishes the marketplace when possible so installs pick it up, and either revokes previous plugin hooks keys immediately or keeps them valid for a grace window.
            operationId: rotateObservabilityCredential
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RotateObservabilityCredentialRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RotateObservabilityCredentialResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: rotateObservabilityCredential plugins
            tags:
                - plugins
            x-speakeasy-name-override: rotateObservabilityCredential
            x-speakeasy-react-hook:
                name: RotateObservabilityCredential
    /rpc/plugins.setPluginAssignments:
        put:
            description: Replace all assignments for a plugin with the given list of principal URNs.
            operationId: setPluginAssignments
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetPluginAssignmentsForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SetPluginAssignmentsResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: setPluginAssignments plugins
            tags:
                - plugins
            x-speakeasy-name-override: setPluginAssignments
            x-speakeasy-react-hook:
                name: SetPluginAssignments
    /rpc/plugins.updateMarketplaceSettings:
        post:
            description: Update the marketplace settings for the current project. If a marketplace is already published, the updated settings are pushed to GitHub before the call returns.
            operationId: updateMarketplaceSettings
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateMarketplaceSettingsRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UpdateMarketplaceSettingsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateMarketplaceSettings plugins
            tags:
                - plugins
            x-speakeasy-name-override: updateMarketplaceSettings
            x-speakeasy-react-hook:
                name: UpdateMarketplaceSettings
    /rpc/plugins.updatePlugin:
        put:
            description: Update plugin metadata.
            operationId: updatePlugin
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdatePluginForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Plugin'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updatePlugin plugins
            tags:
                - plugins
            x-speakeasy-name-override: updatePlugin
            x-speakeasy-react-hook:
                name: UpdatePlugin
    /rpc/plugins.updatePluginServer:
        put:
            description: Update a server's configuration within a plugin.
            operationId: updatePluginServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdatePluginServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PluginServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: service temporarily unavailable'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updatePluginServer plugins
            tags:
                - plugins
            x-speakeasy-name-override: updatePluginServer
            x-speakeasy-react-hook:
                name: UpdatePluginServer
    /rpc/productFeatures.get:
        get:
            description: Get the current state of all product feature flags.
            operationId: getProductFeatures
            parameters:
                - allowEmptyValue: true
                  description: Organization whose product features to read.
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    description: Organization whose product features to read.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ProductFeatures'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getProductFeatures features
            tags:
                - features
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: ProductFeatures
    /rpc/productFeatures.set:
        post:
            description: Enable or disable an organization feature flag. Staff-managed entitlements (such as sso and scim) additionally require a Speakeasy platform administrator; organization admins can set only the org-settable operational toggles.
            operationId: setProductFeature
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetProductFeatureRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: setProductFeature features
            tags:
                - features
            x-speakeasy-name-override: set
    /rpc/productFeatures.setRemoteSessionAutoRefreshPolicy:
        post:
            description: Set the organization policy for automatic remote-session refresh.
            operationId: setRemoteSessionAutoRefreshPolicy
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetRemoteSessionAutoRefreshPolicyRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: setRemoteSessionAutoRefreshPolicy features
            tags:
                - features
            x-speakeasy-name-override: setRemoteSessionAutoRefreshPolicy
            x-speakeasy-react-hook:
                name: SetRemoteSessionAutoRefreshPolicy
    /rpc/projects.create:
        post:
            description: Create a new project.
            operationId: createProject
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateProjectRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreateProjectResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: createProject projects
            tags:
                - projects
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateProject
    /rpc/projects.delete:
        delete:
            description: Delete a project by its ID
            operationId: deleteProject
            parameters:
                - allowEmptyValue: true
                  description: The id of the project to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The id of the project to delete
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: deleteProject projects
            tags:
                - projects
            x-speakeasy-name-override: deleteById
            x-speakeasy-react-hook:
                name: DeleteProject
    /rpc/projects.get:
        get:
            description: Get project details by slug.
            operationId: getProject
            parameters:
                - allowEmptyValue: true
                  description: The slug of the project to get
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetProjectResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: getProject projects
            tags:
                - projects
            x-speakeasy-name-override: read
            x-speakeasy-react-hook:
                name: Project
    /rpc/projects.list:
        get:
            description: List all projects for an organization.
            operationId: listProjects
            parameters:
                - allowEmptyValue: true
                  description: The ID of the organization to list projects for
                  in: query
                  name: organization_id
                  required: true
                  schema:
                    description: The ID of the organization to list projects for
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListProjectsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: listProjects projects
            tags:
                - projects
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListProjects
    /rpc/projects.listAllowedOrigins:
        get:
            description: List allowed origins for a project.
            operationId: listAllowedOrigins
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAllowedOriginsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listAllowedOrigins projects
            tags:
                - projects
            x-speakeasy-name-override: listAllowedOrigins
            x-speakeasy-react-hook:
                name: ListAllowedOrigins
    /rpc/projects.setLogo:
        post:
            description: Uploads a logo for a project.
            operationId: setProjectLogo
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetSignedAssetURLForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SetProjectLogoResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: setLogo projects
            tags:
                - projects
            x-speakeasy-name-override: setLogo
            x-speakeasy-react-hook:
                name: setProjectLogo
    /rpc/projects.setOrganizationWhitelist:
        post:
            description: Set organization whitelist status (admin only - requires speakeasy-team API key)
            operationId: setOrganizationWhitelist
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetOrganizationWhitelistRequestBody'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
            summary: setOrganizationWhitelist projects
            tags:
                - projects
            x-speakeasy-name-override: setOrganizationWhitelist
    /rpc/projects.update:
        post:
            description: Update the display name of the current project.
            operationId: updateProject
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateProjectForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UpdateProjectResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateProject projects
            tags:
                - projects
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateProject
    /rpc/projects.upsertAllowedOrigin:
        post:
            description: Upsert an allowed origin for a project.
            operationId: upsertAllowedOrigin
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertAllowedOriginForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UpsertAllowedOriginResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: upsertAllowedOrigin projects
            tags:
                - projects
            x-speakeasy-name-override: upsertAllowedOrigin
            x-speakeasy-react-hook:
                name: UpsertAllowedOrigin
    /rpc/remoteMcp.createServer:
        post:
            description: Create a new remote MCP server
            operationId: createRemoteMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteMcpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createServer remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: createServer
            x-speakeasy-react-hook:
                name: CreateRemoteMcpServer
    /rpc/remoteMcp.createServerAndMcpServer:
        post:
            description: Create a remote MCP server and its linked, disabled MCP server atomically. The dashboard uses this workflow so a failed linked-server creation never leaves an orphan remote source.
            operationId: createRemoteMcpServerAndMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreateServerAndMcpServerResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createServerAndMcpServer remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: createServerAndMcpServer
    /rpc/remoteMcp.createServerHeader:
        post:
            description: Create a header on a remote MCP server
            operationId: createRemoteMcpServerHeader
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateServerHeaderForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteMcpServerHeader'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createServerHeader remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: createServerHeader
            x-speakeasy-react-hook:
                name: CreateRemoteMcpServerHeader
    /rpc/remoteMcp.deleteServer:
        delete:
            description: Delete a remote MCP server
            operationId: deleteRemoteMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The ID of the remote MCP server to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the remote MCP server to delete
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteServer remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: deleteServer
            x-speakeasy-react-hook:
                name: DeleteRemoteMcpServer
    /rpc/remoteMcp.deleteServerHeader:
        delete:
            description: Delete a remote MCP server header
            operationId: deleteRemoteMcpServerHeader
            parameters:
                - allowEmptyValue: true
                  description: The ID of the header to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the header to delete
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteServerHeader remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: deleteServerHeader
            x-speakeasy-react-hook:
                name: DeleteRemoteMcpServerHeader
    /rpc/remoteMcp.discoverProtectedResourceMetadata:
        post:
            description: Probe the remote MCP server's origin for an RFC 9728 .well-known/oauth-protected-resource document and return either the parsed metadata or a typed unavailability reason. Runs server-side under guardian.Policy so production resource servers without CORS can still be inspected.
            operationId: discoverRemoteMcpProtectedResourceMetadata
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DiscoverProtectedResourceMetadataRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ProtectedResourceMetadataDiscovery'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: discoverProtectedResourceMetadata remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: discoverProtectedResourceMetadata
            x-speakeasy-react-hook:
                name: DiscoverRemoteMcpProtectedResourceMetadata
    /rpc/remoteMcp.getServer:
        get:
            description: Get a remote MCP server by ID or slug. Exactly one of id or slug must be provided.
            operationId: getRemoteMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The ID of the remote MCP server. Mutually exclusive with slug.
                  in: query
                  name: id
                  schema:
                    description: The ID of the remote MCP server. Mutually exclusive with slug.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The slug of the remote MCP server. Mutually exclusive with id.
                  in: query
                  name: slug
                  schema:
                    description: The slug of the remote MCP server. Mutually exclusive with id.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteMcpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getServer remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: getServer
            x-speakeasy-react-hook:
                name: GetRemoteMcpServer
    /rpc/remoteMcp.getServerHeader:
        get:
            description: Get a remote MCP server header by ID
            operationId: getRemoteMcpServerHeader
            parameters:
                - allowEmptyValue: true
                  description: The ID of the header
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the header
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteMcpServerHeader'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getServerHeader remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: getServerHeader
            x-speakeasy-react-hook:
                name: GetRemoteMcpServerHeader
    /rpc/remoteMcp.getServerScopes:
        get:
            description: 'Report the scope state of the protected resource a remote-backed MCP server''s logins are for: the operator pin, which belongs to the protected resource and so is shared by every server in the project with the same upstream URL, the scopes the resource advertises and last challenged with, the organization''s resource scope discovery flag, and what a login through each bound client would request now. Requires read access to the server only. Reads cached state only; never contacts the resource.'
            operationId: getRemoteMcpServerScopes
            parameters:
                - allowEmptyValue: true
                  description: The ID of the remote-backed MCP server.
                  in: query
                  name: mcp_server_id
                  required: true
                  schema:
                    description: The ID of the remote-backed MCP server.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteMcpServerScopes'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getServerScopes remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: getServerScopes
            x-speakeasy-react-hook:
                name: GetRemoteMcpServerScopes
    /rpc/remoteMcp.listServerHeaders:
        get:
            description: List the headers configured for a remote MCP server
            operationId: listRemoteMcpServerHeaders
            parameters:
                - allowEmptyValue: true
                  description: The ID of the remote MCP server
                  in: query
                  name: remote_mcp_server_id
                  required: true
                  schema:
                    description: The ID of the remote MCP server
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListServerHeadersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listServerHeaders remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: listServerHeaders
            x-speakeasy-react-hook:
                name: RemoteMcpServerHeaders
    /rpc/remoteMcp.listServers:
        get:
            description: List all remote MCP servers for a project
            operationId: listRemoteMcpServers
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListServersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listServers remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: listServers
            x-speakeasy-react-hook:
                name: RemoteMcpServers
    /rpc/remoteMcp.probeURL:
        post:
            description: Probe a candidate remote MCP server URL by issuing an MCP initialize request and reporting whether MCP is available, authentication is required, the response is invalid, or the server is unreachable.
            operationId: probeRemoteMcpURL
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ProbeURLForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ProbeURLResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: probeURL remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: probeURL
            x-speakeasy-react-hook:
                name: ProbeRemoteMcpURL
    /rpc/remoteMcp.setServerScopePin:
        post:
            description: Pin the scopes logins to a remote-backed MCP server's protected resource request, or clear the pin with an empty list. The pin belongs to the protected resource, so it applies to every server in the project with the same upstream URL, and the caller needs write access to all of them. Returns the scope state re-read after the write.
            operationId: setRemoteMcpServerScopePin
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetServerScopePinRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteMcpServerScopes'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: setServerScopePin remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: setServerScopePin
            x-speakeasy-react-hook:
                name: SetRemoteMcpServerScopePin
    /rpc/remoteMcp.updateServer:
        post:
            description: Update a remote MCP server
            operationId: updateRemoteMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteMcpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateServer remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: updateServer
            x-speakeasy-react-hook:
                name: UpdateRemoteMcpServer
    /rpc/remoteMcp.updateServerHeader:
        post:
            description: Update a remote MCP server header
            operationId: updateRemoteMcpServerHeader
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateServerHeaderForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteMcpServerHeader'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateServerHeader remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: updateServerHeader
            x-speakeasy-react-hook:
                name: UpdateRemoteMcpServerHeader
    /rpc/remoteMcp.verifyURL:
        post:
            deprecated: true
            description: |-
                Probe a candidate remote MCP server URL and return the legacy boolean verification result.

                Deprecated: use probeURL instead.
            operationId: verifyRemoteMcpURL
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/VerifyURLForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/VerifyURLResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: verifyURL remoteMcp
            tags:
                - remoteMcp
            x-speakeasy-name-override: verifyURL
            x-speakeasy-react-hook:
                name: VerifyRemoteMcpURL
    /rpc/remoteSessionClients.attachKeySet:
        post:
            description: Attach an organization JSON Web Key Set to a remote_session_client, opting it into signing private_key_jwt assertions. The set must belong to the client's organization. Requires the customer_managed_encryption_keys entitlement.
            operationId: attachRemoteSessionClientKeySet
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AttachKeySetForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: attachKeySet remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: attachKeySet
            x-speakeasy-react-hook:
                name: AttachRemoteSessionClientKeySet
    /rpc/remoteSessionClients.attachUserSessionIssuer:
        post:
            description: Attach a user_session_issuer to a remote_session_client by recording the binding in the join table. Rejected when another client is already bound to the same user_session_issuer for this client's remote_session_issuer.
            operationId: attachUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AttachUserSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: attachUserSessionIssuer remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: attachUserSessionIssuer
            x-speakeasy-react-hook:
                name: AttachUserSessionIssuer
    /rpc/remoteSessionClients.create:
        post:
            description: Register a remote_session_client by supplying a client_id and optional client_secret obtained out-of-band from the upstream issuer.
            operationId: createRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRemoteSessionClientForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createRemoteSessionClient remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateRemoteSessionClient
    /rpc/remoteSessionClients.createCimd:
        post:
            description: Register a remote_session_client in Client ID Metadata Document (CIMD) mode. Speakeasy generates the client_id (the URL of a hosted client metadata document) and serves the document publicly; the client carries no secret and authenticates with token_endpoint_auth_method=none. The owning issuer must advertise client_id_metadata_document_supported.
            operationId: createCimdRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateCimdForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createCimd remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: createCimd
            x-speakeasy-react-hook:
                name: CreateCimdRemoteSessionClient
    /rpc/remoteSessionClients.delete:
        delete:
            description: Soft-delete a remote_session_client. Cascades to remote_sessions rows pointing at this client; affected principals are forced to re-authenticate.
            operationId: deleteRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteRemoteSessionClient remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteRemoteSessionClient
    /rpc/remoteSessionClients.detachKeySet:
        delete:
            description: Detach the JSON Web Key Set from a remote_session_client. Refused while the client declares token_endpoint_auth_method=private_key_jwt. A no-op when no set is attached. Requires the customer_managed_encryption_keys entitlement.
            operationId: detachRemoteSessionClientKeySet
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "412":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'failed_precondition: resource is not in a valid state for this operation'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: detachKeySet remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: detachKeySet
            x-speakeasy-react-hook:
                name: DetachRemoteSessionClientKeySet
    /rpc/remoteSessionClients.detachUserSessionIssuer:
        post:
            description: Detach a user_session_issuer from a remote_session_client by removing the binding from the join table. A no-op when the binding does not exist.
            operationId: detachUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AttachUserSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: detachUserSessionIssuer remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: detachUserSessionIssuer
            x-speakeasy-react-hook:
                name: DetachUserSessionIssuer
    /rpc/remoteSessionClients.get:
        get:
            description: Get a remote_session_client by id.
            operationId: getRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getRemoteSessionClient remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: RemoteSessionClient
    /rpc/remoteSessionClients.list:
        get:
            description: List remote_session_clients in the caller's project.
            operationId: listRemoteSessionClients
            parameters:
                - allowEmptyValue: true
                  description: Filter to clients registered with this issuer.
                  in: query
                  name: remote_session_issuer_id
                  schema:
                    description: Filter to clients registered with this issuer.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Filter to clients paired with this user_session_issuer.
                  in: query
                  name: user_session_issuer_id
                  schema:
                    description: Filter to clients paired with this user_session_issuer.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRemoteSessionClientsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listRemoteSessionClients remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: RemoteSessionClients
    /rpc/remoteSessionClients.newClientCallbackUrl:
        get:
            description: Get the redirect URI a remote_session_client created now in the caller's project registers with its upstream provider.
            operationId: getNewRemoteSessionClientCallbackUrl
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/NewClientCallbackURLResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getNewClientCallbackUrl remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: getNewClientCallbackUrl
            x-speakeasy-react-hook:
                name: NewRemoteSessionClientCallbackUrl
    /rpc/remoteSessionClients.prepareEMA:
        post:
            description: Explicit, tenant-scoped identity-chaining configuration. Mutations require project-write authorization; reads require project-read authorization. Does not exchange tokens or establish provider verification, trust, consent, or user access.
            operationId: prepareEMA
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/PrepareEMARequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/IdentityChainingPreparation'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: prepareEMA remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: prepareEMA
    /rpc/remoteSessionClients.readEMA:
        post:
            description: Explicit, tenant-scoped identity-chaining configuration. Mutations require project-write authorization; reads require project-read authorization. Does not exchange tokens or establish provider verification, trust, consent, or user access.
            operationId: readEMA
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ReadEMARequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/IdentityChainingPreparation'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: readEMA remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: readEMA
    /rpc/remoteSessionClients.unlinkEMA:
        post:
            description: Explicit, tenant-scoped identity-chaining configuration. Mutations require project-write authorization; reads require project-read authorization. Does not exchange tokens or establish provider verification, trust, consent, or user access.
            operationId: unlinkEMA
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UnlinkEMARequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/IdentityChainingPreparation'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: unlinkEMA remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: unlinkEMA
    /rpc/remoteSessionClients.update:
        post:
            description: Rotate the client_secret or change the non-issuer settings on an existing remote_session_client. Issuer attachments are managed via attachUserSessionIssuer / detachUserSessionIssuer.
            operationId: updateRemoteSessionClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateRemoteSessionClientForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateRemoteSessionClient remoteSessionClients
            tags:
                - remoteSessionClients
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateRemoteSessionClient
    /rpc/remoteSessionIssuers.create:
        post:
            description: Create a new remote_session_issuer.
            operationId: createRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRemoteSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createRemoteSessionIssuer remoteSessionIssuers
            tags:
                - remoteSessionIssuers
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateRemoteSessionIssuer
    /rpc/remoteSessionIssuers.delete:
        delete:
            description: Soft-delete a remote_session_issuer. Blocked if any remote_session_clients still reference it.
            operationId: deleteRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteRemoteSessionIssuer remoteSessionIssuers
            tags:
                - remoteSessionIssuers
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteRemoteSessionIssuer
    /rpc/remoteSessionIssuers.fetchMetadata:
        post:
            description: Hit an upstream issuer's RFC 8414 .well-known/oauth-authorization-server document and return a draft suitable for createRemoteSessionIssuer. Keyed by issuer URL; no record need exist and nothing is persisted. Use refreshMetadata to re-discover and persist against an existing issuer.
            operationId: fetchRemoteSessionIssuerMetadata
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/FetchIssuerMetadataRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerDraft'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: fetchRemoteSessionIssuerMetadata remoteSessionIssuers
            tags:
                - remoteSessionIssuers
            x-speakeasy-name-override: fetchMetadata
            x-speakeasy-react-hook:
                name: FetchRemoteSessionIssuerMetadata
    /rpc/remoteSessionIssuers.get:
        get:
            description: |-
                Get a remote_session_issuer by id, by slug, or by upstream issuer URL. Provide exactly one.

                Looking up by issuer is how an automatic setup flow decides whether an upstream authorization server already has an identity provider before creating one: a 404 means nothing describes that URL yet, so create it. Unlike id and slug, which address at most one record, several issuers may legitimately describe the same URL — a project may keep its own alongside one inherited from its organization or from the platform catalog. This returns the one this project would use, preferring project over organization over platform and, within a tier, the oldest.

                The issuer URL is canonicalized before matching: scheme and host are lowercased, the scheme's default port is dropped, and trailing slashes are stripped. http and https are deliberately NOT equated, path case is significant, and a URL carrying a query or fragment is rejected (RFC 8414 forbids both on issuer identifiers). Canonicalization applies to the supplied URL only, never to stored values, so an issuer recorded with an unusual spelling may not be found and a duplicate is created instead, which is the safe direction to fail.
            operationId: getRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_issuer id.
                  in: query
                  name: id
                  schema:
                    description: The remote_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The remote_session_issuer slug.
                  in: query
                  name: slug
                  schema:
                    description: The remote_session_issuer slug.
                    type: string
                - allowEmptyValue: true
                  description: The upstream issuer URL (e.g. https://login.linear.app). Returns the issuer this project would use for that URL, or 404 when none describes it.
                  in: query
                  name: issuer
                  schema:
                    description: The upstream issuer URL (e.g. https://login.linear.app). Returns the issuer this project would use for that URL, or 404 when none describes it.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getRemoteSessionIssuer remoteSessionIssuers
            tags:
                - remoteSessionIssuers
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: RemoteSessionIssuer
    /rpc/remoteSessionIssuers.getDuplicatePreflight:
        get:
            description: |-
                Report the existing remote_session_issuers that already describe an upstream issuer URL, so a create or edit form can warn before it duplicates one. Covers this project's own issuers plus those inherited from the organization and the platform catalog.

                Advisory only. Duplicating an issuer URL is legitimate — a project may want its own record so it can attach different documentation, branding or scopes — so nothing here blocks a write, and no lock is taken. A create that races another create still produces two records, which is a supported state.

                Matching uses the same canonicalization as getRemoteSessionIssuer. A URL that cannot be parsed as an issuer identifier returns no matches rather than an error, because a partially typed URL is the normal state of a form field.
            operationId: getRemoteSessionIssuerDuplicatePreflight
            parameters:
                - allowEmptyValue: true
                  description: The upstream issuer URL being entered (e.g. https://login.linear.app). Empty or unparseable returns no matches.
                  in: query
                  name: issuer
                  schema:
                    description: The upstream issuer URL being entered (e.g. https://login.linear.app). Empty or unparseable returns no matches.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerDuplicatePreflight'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getRemoteSessionIssuerDuplicatePreflight remoteSessionIssuers
            tags:
                - remoteSessionIssuers
            x-speakeasy-name-override: getDuplicatePreflight
            x-speakeasy-react-hook:
                name: RemoteSessionIssuerDuplicatePreflight
    /rpc/remoteSessionIssuers.list:
        get:
            description: 'List the remote_session_issuers the caller''s project can use: its own, plus those inherited from its organization and from the platform catalog. Newest first; the search, upstream_host and tier filters narrow the listing without changing its order or cursor.'
            operationId: listRemoteSessionIssuers
            parameters:
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Only issuers whose name, slug or issuer URL contains this text, ignoring case.
                  in: query
                  name: search
                  schema:
                    description: Only issuers whose name, slug or issuer URL contains this text, ignoring case.
                    maxLength: 256
                    type: string
                - allowEmptyValue: true
                  description: 'Only issuers that could sign users in to an upstream at this host (e.g. mcp.linear.app): those whose issuer URL host equals it or is one of its parent domains (linear.app). Host only, optionally with a port; no scheme or path.'
                  in: query
                  name: upstream_host
                  schema:
                    description: 'Only issuers that could sign users in to an upstream at this host (e.g. mcp.linear.app): those whose issuer URL host equals it or is one of its parent domains (linear.app). Host only, optionally with a port; no scheme or path.'
                    maxLength: 260
                    type: string
                - allowEmptyValue: true
                  description: 'Only issuers from one tier: the project''s own (project), inherited from its organization (organization), or from the platform catalog (platform). Omitted lists all three.'
                  in: query
                  name: tier
                  schema:
                    description: 'Only issuers from one tier: the project''s own (project), inherited from its organization (organization), or from the platform catalog (platform). Omitted lists all three.'
                    enum:
                        - project
                        - organization
                        - platform
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRemoteSessionIssuersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listRemoteSessionIssuers remoteSessionIssuers
            tags:
                - remoteSessionIssuers
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: RemoteSessionIssuers
    /rpc/remoteSessionIssuers.refreshMetadata:
        post:
            description: Re-fetch an existing remote_session_issuer's RFC 8414 metadata document and persist the discovered values. Keyed by issuer id. Only RFC 8414-derived columns are written — endpoints, the *_supported arrays, client_id_metadata_document_supported, and the documentation URLs. Speakeasy behavior and display fields (oidc, passthrough, name, slug, logo, client setup documentation) are left alone. Requires project:write.
            operationId: refreshRemoteSessionIssuerMetadata
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuerRefresh'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: refreshRemoteSessionIssuerMetadata remoteSessionIssuers
            tags:
                - remoteSessionIssuers
            x-speakeasy-name-override: refreshMetadata
            x-speakeasy-react-hook:
                name: RefreshRemoteSessionIssuerMetadata
    /rpc/remoteSessionIssuers.update:
        post:
            description: Update fields on an existing remote_session_issuer.
            operationId: updateRemoteSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateRemoteSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RemoteSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateRemoteSessionIssuer remoteSessionIssuers
            tags:
                - remoteSessionIssuers
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateRemoteSessionIssuer
    /rpc/remoteSessions.attachBinding:
        post:
            description: Manage exact remote session attachments for an agent. Requires an ordinary human session, agent authorization authority and ownership of the upstream session. Never returns credentials.
            operationId: attachBinding
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AttachBindingRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PrincipalRemoteSessionBinding'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: attachBinding remoteSessions
            tags:
                - remoteSessions
            x-speakeasy-name-override: attachBinding
    /rpc/remoteSessions.commitServerIdentityConfiguration:
        post:
            description: Atomically configure identity for a Remote MCP-backed MCP server. The complete plan selects or creates a project Remote Identity Provider and links an existing client, creates a manual client, or automatically prefers CIMD over DCR. Existing-client linking requires mcp:write on the target and on every other MCP server sharing its user session issuer, because the client binding is keyed by issuer; creating a provider or client additionally requires project:write. Unsupported automatic registration returns manual_setup_required without changing local state.
            operationId: commitServerIdentityConfiguration
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CommitServerIdentityConfigurationForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CommitServerIdentityConfigurationResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: commitServerIdentityConfiguration remoteSessions
            tags:
                - remoteSessions
            x-speakeasy-name-override: commitServerIdentityConfiguration
            x-speakeasy-react-hook:
                name: CommitServerIdentityConfiguration
    /rpc/remoteSessions.count:
        get:
            description: 'Count the distinct people (user subjects) holding a live remote_session minted through one remote_session_client. Scoped like listRemoteSessions: only sessions whose issuer, client and remote issuer are reachable from the caller''s project count; API-key and anonymous subjects do not. A client shared by several MCP servers counts people across all of them.'
            operationId: countRemoteSessions
            parameters:
                - allowEmptyValue: true
                  description: The remote_session_client whose sessions to count.
                  in: query
                  name: remote_session_client_id
                  required: true
                  schema:
                    description: The remote_session_client whose sessions to count.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CountRemoteSessionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: countRemoteSessions remoteSessions
            tags:
                - remoteSessions
            x-speakeasy-name-override: count
            x-speakeasy-react-hook:
                name: RemoteSessionsCount
    /rpc/remoteSessions.detachBinding:
        post:
            description: Manage exact remote session attachments for an agent. Requires an ordinary human session, agent authorization authority and ownership of the upstream session. Never returns credentials.
            operationId: detachBinding
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DetachBindingRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: detachBinding remoteSessions
            tags:
                - remoteSessions
            x-speakeasy-name-override: detachBinding
    /rpc/remoteSessions.detachServerClientAssociation:
        post:
            description: 'Remove one MCP server''s association with an upstream OAuth client. The client and its associations with other servers are untouched. When the server is the only consumer of its user session issuer, the association follows the issuer''s client binding and is refused here with a conflict: turn off User Identity on the server instead. Requires mcp:write on the server.'
            operationId: detachServerClientAssociation
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DetachServerClientAssociationRequestBody'
                required: true
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: detachServerClientAssociation remoteSessions
            tags:
                - remoteSessions
            x-speakeasy-name-override: detachServerClientAssociation
            x-speakeasy-react-hook:
                name: DetachServerClientAssociation
    /rpc/remoteSessions.getServerIdentityImpact:
        get:
            description: Preview which other MCP servers and gateways a client binding change on a user session issuer would affect, across every project in the organization for an organization-level issuer. Each server's upstream authorization server is derived from the clients it can see (its own project's and organization-level ones), so a server is listed when that derivation changes (repoint or clear) or when a client it uses is replaced (resignin). A gateway is listed when a client it can see is unbound (client_removed). The target server is excluded. A change the commit would refuse, such as one that touches an organization-level client on an organization-level issuer, is refused here too. Requires mcp:write on mcp_server_id when given, otherwise project:write. Servers the caller cannot read are counted in hidden_server_count and never named.
            operationId: getServerIdentityImpact
            parameters:
                - allowEmptyValue: true
                  description: The user session issuer whose client bindings change.
                  in: query
                  name: user_session_issuer_id
                  required: true
                  schema:
                    description: The user session issuer whose client bindings change.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The MCP server the change is made from. Excluded from the result.
                  in: query
                  name: mcp_server_id
                  schema:
                    description: The MCP server the change is made from. Excluded from the result.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The kind of binding change.
                  in: query
                  name: change
                  required: true
                  schema:
                    description: The kind of binding change.
                    enum:
                        - replace
                        - attach
                        - detach
                    type: string
                - allowEmptyValue: true
                  description: The Remote Identity Provider of the client being bound. Omit for a new provider.
                  in: query
                  name: provider_id
                  schema:
                    description: The Remote Identity Provider of the client being bound. Omit for a new provider.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: An existing client being bound. Omit for a new client.
                  in: query
                  name: client_id
                  schema:
                    description: An existing client being bound. Omit for a new client.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ServerIdentityImpactResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getServerIdentityImpact remoteSessions
            tags:
                - remoteSessions
            x-speakeasy-name-override: getServerIdentityImpact
            x-speakeasy-react-hook:
                name: ServerIdentityImpact
    /rpc/remoteSessions.list:
        get:
            description: List remote_sessions in the caller's project. Supplying both principal_id and user_session_issuer_id instead lists only the ordinary human caller's eligible sessions for an agent they own, without requiring project read permission. Both filters must be supplied together. access_token_encrypted and refresh_token_encrypted are never returned — only metadata (access_expires_at, refresh_expires_at, scopes).
            operationId: listRemoteSessions
            parameters:
                - allowEmptyValue: true
                  description: Owned agent whose eligible sessions to list; requires user_session_issuer_id.
                  in: query
                  name: principal_id
                  schema:
                    description: Owned agent whose eligible sessions to list; requires user_session_issuer_id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Issuer configuration sessions must be eligible for; requires principal_id.
                  in: query
                  name: user_session_issuer_id
                  schema:
                    description: Issuer configuration sessions must be eligible for; requires principal_id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Exact-match filter on subject URN.
                  in: query
                  name: subject_urn
                  schema:
                    description: Exact-match filter on subject URN.
                    type: string
                - allowEmptyValue: true
                  description: Filter by remote_session_client id.
                  in: query
                  name: remote_session_client_id
                  schema:
                    description: Filter by remote_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Pagination cursor.
                  in: query
                  name: cursor
                  schema:
                    description: Pagination cursor.
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRemoteSessionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listRemoteSessions remoteSessions
            tags:
                - remoteSessions
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: RemoteSessions
    /rpc/remoteSessions.listBindings:
        get:
            description: Manage exact remote session attachments for an agent. Requires an ordinary human session, agent authorization authority and ownership of the upstream session. Never returns credentials.
            operationId: listBindings
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: principal_id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: user_session_issuer_id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListBindingsResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listBindings remoteSessions
            tags:
                - remoteSessions
            x-speakeasy-name-override: listBindings
    /rpc/remoteSessions.listServerClientAssociations:
        get:
            description: 'List the upstream OAuth clients an MCP server is associated with. An association is a per-server configuration fact: one client can serve several servers, and server_count reports how many live servers share each client, since editing or rotating a shared client changes every one of them. Associations are recorded ahead of the serving path that will read them; until then the server keeps signing in through its user session issuer''s bindings. Requires mcp:read on the server.'
            operationId: listServerClientAssociations
            parameters:
                - allowEmptyValue: true
                  description: The MCP server.
                  in: query
                  name: mcp_server_id
                  required: true
                  schema:
                    description: The MCP server.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListServerClientAssociationsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listServerClientAssociations remoteSessions
            tags:
                - remoteSessions
            x-speakeasy-name-override: listServerClientAssociations
            x-speakeasy-react-hook:
                name: ServerClientAssociations
    /rpc/remoteSessions.revoke:
        post:
            description: Drop a remote_session row. The next /mcp call by that principal triggers a fresh authn challenge.
            operationId: revokeRemoteSession
            parameters:
                - allowEmptyValue: true
                  description: The remote_session id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The remote_session id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: revokeRemoteSession remoteSessions
            tags:
                - remoteSessions
            x-speakeasy-name-override: revoke
            x-speakeasy-react-hook:
                name: RevokeRemoteSession
    /rpc/resources.list:
        get:
            description: List all resources for a project
            operationId: listResources
            parameters:
                - allowEmptyValue: true
                  description: The cursor to fetch results from
                  in: query
                  name: cursor
                  schema:
                    description: The cursor to fetch results from
                    type: string
                - allowEmptyValue: true
                  description: The number of resources to return per page
                  in: query
                  name: limit
                  schema:
                    description: The number of resources to return per page
                    format: int32
                    type: integer
                - allowEmptyValue: true
                  description: The deployment ID. If unset, latest deployment will be used.
                  in: query
                  name: deployment_id
                  schema:
                    description: The deployment ID. If unset, latest deployment will be used.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListResourcesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listResources resources
            tags:
                - resources
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListResources
    /rpc/risk.acknowledgePolicyChallenge:
        post:
            description: Acknowledge a risk policy warn/challenge from a warning-link token. Records the acknowledgement so the user's retried action proceeds; self-service (no admin approval).
            operationId: acknowledgeRiskPolicyChallenge
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AcknowledgeRiskPolicyChallengeRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AcknowledgeRiskPolicyChallengeResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: acknowledgeRiskPolicyChallenge risk
            tags:
                - risk
            x-speakeasy-group: risk.policyChallenges
            x-speakeasy-name-override: acknowledge
            x-speakeasy-react-hook:
                name: RiskAcknowledgePolicyChallenge
                type: mutation
    /rpc/risk.approvePolicyBypassRequest:
        post:
            description: Approve a risk policy bypass request for the requested policy target.
            operationId: approveRiskPolicyBypassRequest
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskPolicyBypassApprovalRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskPolicyBypassRequest'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: approveRiskPolicyBypassRequest risk
            tags:
                - risk
            x-speakeasy-group: risk.policyBypassRequests
            x-speakeasy-name-override: approve
            x-speakeasy-react-hook:
                name: RiskApprovePolicyBypassRequest
                type: mutation
    /rpc/risk.compileCELExpression:
        get:
            description: Compile a single CEL expression (a detection predicate or a policy scope predicate) without evaluating it, so the editor can validate as the author types. Returns ok=true when it compiles, otherwise ok=false with the compiler error message. An empty expression is valid (ok=true).
            operationId: compileExpr
            parameters:
                - allowEmptyValue: true
                  description: The CEL expression to compile. Empty is valid and compiles to ok=true.
                  in: query
                  name: expr
                  schema:
                    default: ""
                    description: The CEL expression to compile. Empty is valid and compiles to ok=true.
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ExprCompileResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: compileExpr risk
            tags:
                - risk
            x-speakeasy-group: risk.expr
            x-speakeasy-name-override: compile
            x-speakeasy-react-hook:
                name: RiskCompileExpr
    /rpc/risk.createCustomRule:
        post:
            description: Create a custom regex-backed detection rule for the current project.
            operationId: createCustomDetectionRule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateCustomDetectionRuleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskCustomDetectionRule'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createCustomDetectionRule risk
            tags:
                - risk
            x-speakeasy-group: risk.customRules
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: RiskCreateCustomDetectionRule
                type: mutation
    /rpc/risk.createExclusions:
        post:
            description: Create a risk exclusion. Omit risk_policy_id to create a global exclusion that applies to every policy in the project.
            operationId: createRiskExclusion
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRiskExclusionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskExclusion'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createRiskExclusion risk
            tags:
                - risk
            x-speakeasy-group: risk.exclusions
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: RiskCreateExclusion
                type: mutation
    /rpc/risk.createPolicy:
        post:
            description: Create a new risk analysis policy for the current project.
            operationId: createRiskPolicy
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRiskPolicyRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskPolicy'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createRiskPolicy risk
            tags:
                - risk
            x-speakeasy-group: risk.policies
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: RiskCreatePolicy
                type: mutation
    /rpc/risk.createPolicyBypassRequest:
        post:
            description: Create or refresh a risk policy bypass request from a signed request URL token.
            operationId: createRiskPolicyBypassRequest
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateRiskPolicyBypassRequestRequestBody'
                required: true
            responses:
                "201":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PolicyBypassRedemption'
                    description: Created response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: createRiskPolicyBypassRequest risk
            tags:
                - risk
            x-speakeasy-group: risk.policyBypassRequests
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: RiskCreatePolicyBypassRequest
                type: mutation
    /rpc/risk.declinePolicyChallenge:
        post:
            description: 'Decline a risk policy warn/challenge from a warning-link token: invalidate the link and mark the challenge declined. The blocked action stays blocked.'
            operationId: declineRiskPolicyChallenge
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AcknowledgeRiskPolicyChallengeRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeclineRiskPolicyChallengeResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: declineRiskPolicyChallenge risk
            tags:
                - risk
            x-speakeasy-group: risk.policyChallenges
            x-speakeasy-name-override: decline
            x-speakeasy-react-hook:
                name: RiskDeclinePolicyChallenge
                type: mutation
    /rpc/risk.deleteCustomRule:
        post:
            description: Delete a custom detection rule.
            operationId: deleteCustomDetectionRule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteCustomDetectionRule risk
            tags:
                - risk
            x-speakeasy-group: risk.customRules
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: RiskDeleteCustomDetectionRule
                type: mutation
    /rpc/risk.deleteExclusions:
        delete:
            description: Delete a risk exclusion. Previously suppressed findings are restored.
            operationId: deleteRiskExclusion
            parameters:
                - allowEmptyValue: true
                  description: The exclusion ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The exclusion ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteRiskExclusion risk
            tags:
                - risk
            x-speakeasy-group: risk.exclusions
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: RiskDeleteExclusion
                type: mutation
    /rpc/risk.deletePolicy:
        delete:
            description: Delete a risk analysis policy.
            operationId: deleteRiskPolicy
            parameters:
                - allowEmptyValue: true
                  description: The policy ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The policy ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteRiskPolicy risk
            tags:
                - risk
            x-speakeasy-group: risk.policies
            x-speakeasy-name-override: delete
    /rpc/risk.denyPolicyBypassRequest:
        post:
            description: Deny a risk policy bypass request, updating workflow state.
            operationId: denyRiskPolicyBypassRequest
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskPolicyBypassRequest'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: denyRiskPolicyBypassRequest risk
            tags:
                - risk
            x-speakeasy-group: risk.policyBypassRequests
            x-speakeasy-name-override: deny
            x-speakeasy-react-hook:
                name: RiskDenyPolicyBypassRequest
                type: mutation
    /rpc/risk.getAnalysisStatus:
        get:
            description: 'Get the run state of the project''s risk analysis coordinator, which produces the findings behind the Watchdog page. Analysis is signal-driven, not scheduled: the coordinator wakes within about 30 seconds of new chat traffic and never runs on a timer, so a quiet project can legitimately go a long time between runs. The state is never when no run is visible (the project has never been analyzed, or its last run is older than Temporal''s retention window), idle when the latest run has closed and the coordinator is waiting for the next chat write, and running when a run is in flight.'
            operationId: getRiskAnalysisStatus
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskAnalysisStatusResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getRiskAnalysisStatus risk
            tags:
                - risk
            x-speakeasy-group: risk.signals
            x-speakeasy-name-override: analysisStatus
            x-speakeasy-react-hook:
                name: RiskAnalysisStatus
    /rpc/risk.getBlock:
        get:
            description: Get a tool call block by its risk result ID for the durable block page.
            operationId: getRiskBlock
            parameters:
                - allowEmptyValue: true
                  description: The block ID (the underlying risk result ID).
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The block ID (the underlying risk result ID).
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskBlock'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getRiskBlock risk
            tags:
                - risk
            x-speakeasy-group: risk.blocks
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: RiskGetBlock
                type: query
    /rpc/risk.getCustomRule:
        get:
            description: Get a custom detection rule by ID.
            operationId: getCustomDetectionRule
            parameters:
                - allowEmptyValue: true
                  description: The custom detection rule ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The custom detection rule ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskCustomDetectionRule'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getCustomDetectionRule risk
            tags:
                - risk
            x-speakeasy-group: risk.customRules
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: RiskGetCustomDetectionRule
                type: query
    /rpc/risk.getMcpServerCounts:
        get:
            description: Get live finding counts per concrete MCP server over a window, largest first. Powers the MCP server filter pickers on Risk Events and Watchdog. Served from the ClickHouse findings store.
            operationId: getRiskMcpServerCounts
            parameters:
                - allowEmptyValue: true
                  description: Inclusive start of the window. Defaults to 7 days before to.
                  in: query
                  name: from
                  schema:
                    description: Inclusive start of the window. Defaults to 7 days before to.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Exclusive end of the window. Defaults to now.
                  in: query
                  name: to
                  schema:
                    description: Exclusive end of the window. Defaults to now.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskMcpServerCountsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getRiskMcpServerCounts risk
            tags:
                - risk
            x-speakeasy-group: risk.signals
            x-speakeasy-name-override: mcpServerCounts
            x-speakeasy-react-hook:
                name: RiskMcpServerCounts
    /rpc/risk.getOverview:
        get:
            description: Get risk overview metrics and trend data for the current project.
            operationId: getRiskOverview
            parameters:
                - allowEmptyValue: true
                  description: Inclusive start of the overview window. Defaults to the start of the 7-day calendar window ending at to.
                  in: query
                  name: from
                  schema:
                    description: Inclusive start of the overview window. Defaults to the start of the 7-day calendar window ending at to.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Exclusive end of the overview window. Defaults to now.
                  in: query
                  name: to
                  schema:
                    description: Exclusive end of the overview window. Defaults to now.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskOverviewResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getRiskOverview risk
            tags:
                - risk
            x-speakeasy-group: risk.overview
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: RiskOverview
    /rpc/risk.getPolicy:
        get:
            description: Get a risk analysis policy by ID.
            operationId: getRiskPolicy
            parameters:
                - allowEmptyValue: true
                  description: The policy ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The policy ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskPolicy'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getRiskPolicy risk
            tags:
                - risk
            x-speakeasy-group: risk.policies
            x-speakeasy-name-override: get
    /rpc/risk.getPolicyChallenge:
        post:
            description: Fetch the details of a risk policy warn/challenge from a warning-link token, WITHOUT acknowledging it. Powers the approval page (shows what was flagged and Approve/Deny actions).
            operationId: getRiskPolicyChallenge
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AcknowledgeRiskPolicyChallengeRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetRiskPolicyChallengeResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getRiskPolicyChallenge risk
            tags:
                - risk
            x-speakeasy-group: risk.policyChallenges
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: RiskGetPolicyChallenge
                type: mutation
    /rpc/risk.getSignals:
        get:
            description: Get clustered risk signals — findings grouped by rule and ranked by severity score — plus window-level KPI stats and the exposure breakdown by category. Powers the Watchdog page. Served from the ClickHouse findings store.
            operationId: getRiskSignals
            parameters:
                - allowEmptyValue: true
                  description: Inclusive start of the signals window. Defaults to the start of the 7-day calendar window ending at to.
                  in: query
                  name: from
                  schema:
                    description: Inclusive start of the signals window. Defaults to the start of the 7-day calendar window ending at to.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Exclusive end of the signals window. Defaults to now.
                  in: query
                  name: to
                  schema:
                    description: Exclusive end of the signals window. Defaults to now.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Optional concrete MCP server ID. When set, every signal, KPI and exposure figure is computed from findings on that server only.
                  in: query
                  name: mcp_server_id
                  schema:
                    description: Optional concrete MCP server ID. When set, every signal, KPI and exposure figure is computed from findings on that server only.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskSignalsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getRiskSignals risk
            tags:
                - risk
            x-speakeasy-group: risk.signals
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: RiskSignals
    /rpc/risk.getUserBreakdown:
        get:
            description: Per-user breakdowns of findings by category and by rule_id within a time window. Powers the risk panels on identity pages.
            operationId: getRiskUserBreakdown
            parameters:
                - allowEmptyValue: true
                  description: External user identifier to scope the breakdown to.
                  in: query
                  name: external_user_id
                  required: true
                  schema:
                    description: External user identifier to scope the breakdown to.
                    type: string
                - allowEmptyValue: true
                  description: Inclusive start of the window. Defaults to the same 7-day window as the overview.
                  in: query
                  name: from
                  schema:
                    description: Inclusive start of the window. Defaults to the same 7-day window as the overview.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Exclusive end of the window. Defaults to now.
                  in: query
                  name: to
                  schema:
                    description: Exclusive end of the window. Defaults to now.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskUserBreakdownResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getRiskUserBreakdown risk
            tags:
                - risk
            x-speakeasy-group: risk.overview
            x-speakeasy-name-override: userBreakdown
            x-speakeasy-react-hook:
                name: RiskUserBreakdown
    /rpc/risk.listBuiltinExclusions:
        get:
            description: List the built-in exclusion library (known-safe values suppressed before they reach exclusions), grouped by category.
            operationId: listBuiltinExclusions
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListBuiltinExclusionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listBuiltinExclusions risk
            tags:
                - risk
            x-speakeasy-group: risk.exclusions
            x-speakeasy-name-override: listBuiltinExclusions
            x-speakeasy-react-hook:
                name: BuiltinExclusions
    /rpc/risk.listCategories:
        get:
            description: 'Return the canonical risk category definitions: metadata (label/description/icon) plus the classification (source / rule_id list / rule_id prefix) used to bucket findings. Dashboards and CLIs should call this instead of maintaining their own copy of the mapping.'
            operationId: listRiskCategories
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskCategoriesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listRiskCategories risk
            tags:
                - risk
            x-speakeasy-group: risk.categories
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: RiskCategories
    /rpc/risk.listCustomRules:
        get:
            description: List custom detection rules for the current project.
            operationId: listCustomDetectionRules
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCustomDetectionRulesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listCustomDetectionRules risk
            tags:
                - risk
            x-speakeasy-group: risk.customRules
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: RiskListCustomDetectionRules
                type: query
    /rpc/risk.listDismissedResults:
        get:
            description: List suppressed risk results for the current project — findings hidden by an exclusion rule, a manual dismissal, or the automated false-positive sweep. Kept separate from listRiskResults, which never returns suppressed results.
            operationId: listDismissedRiskResults
            parameters:
                - allowEmptyValue: true
                  description: Cursor to fetch the next page of results.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor to fetch the next page of results.
                    type: string
                - allowEmptyValue: true
                  description: Maximum number of results to return per page.
                  in: query
                  name: limit
                  schema:
                    description: Maximum number of results to return per page.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Only return results suppressed for these reasons. Omitted or empty means all reasons.
                  in: query
                  name: reasons
                  schema:
                    description: Only return results suppressed for these reasons. Omitted or empty means all reasons.
                    items:
                        enum:
                            - rule
                            - manual
                            - automated
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRiskResultsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listDismissedRiskResults risk
            tags:
                - risk
            x-speakeasy-group: risk.results
            x-speakeasy-name-override: listDismissed
            x-speakeasy-react-hook:
                name: RiskListDismissedResults
                type: query
    /rpc/risk.listExclusions:
        get:
            description: List risk exclusions for the current project. Optionally filter to a single policy.
            operationId: listRiskExclusions
            parameters:
                - allowEmptyValue: true
                  description: Filter to exclusions bound to this policy. Omit to return all exclusions (global plus every policy).
                  in: query
                  name: risk_policy_id
                  schema:
                    description: Filter to exclusions bound to this policy. Omit to return all exclusions (global plus every policy).
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRiskExclusionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listRiskExclusions risk
            tags:
                - risk
            x-speakeasy-group: risk.exclusions
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: RiskListExclusions
                type: query
    /rpc/risk.listMCPPlatformToolsets:
        get:
            description: List code-owned Platform MCP toolsets available as risk policy scope targets.
            operationId: listMCPPlatformToolsets
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMCPPlatformToolsetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listMCPPlatformToolsets risk
            tags:
                - risk
            x-speakeasy-group: risk.policies
            x-speakeasy-name-override: listMcpPlatformToolsets
            x-speakeasy-react-hook:
                name: RiskListMcpPlatformToolsets
    /rpc/risk.listPolicies:
        get:
            description: List all risk analysis policies for the current project.
            operationId: listRiskPolicies
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRiskPoliciesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listRiskPolicies risk
            tags:
                - risk
            x-speakeasy-group: risk.policies
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: RiskListPolicies
    /rpc/risk.listPolicyBypassRequests:
        get:
            description: List current risk policy bypass request workflow records.
            operationId: listRiskPolicyBypassRequests
            parameters:
                - allowEmptyValue: true
                  description: Optional risk policy ID filter.
                  in: query
                  name: policy_id
                  schema:
                    description: Optional risk policy ID filter.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional request status filter.
                  in: query
                  name: status
                  schema:
                    description: Optional request status filter.
                    enum:
                        - requested
                        - approved
                        - denied
                        - revoked
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRiskPolicyBypassRequestsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listRiskPolicyBypassRequests risk
            tags:
                - risk
            x-speakeasy-group: risk.policyBypassRequests
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: RiskListPolicyBypassRequests
    /rpc/risk.listPresets:
        get:
            description: Return the use-case presets a risk policy can start from. Each preset resolves to a complete create payload (policy type, detectors, action, severity and, for prompt-based presets, the judge instruction) so the dashboard and the Platform MCP offer the same starting points.
            operationId: listRiskPresets
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskPresetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listRiskPresets risk
            tags:
                - risk
            x-speakeasy-group: risk.presets
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: RiskPresets
    /rpc/risk.listResults:
        get:
            description: List risk analysis results for the current project.
            operationId: listRiskResults
            parameters:
                - allowEmptyValue: true
                  description: Optional policy ID to filter by.
                  in: query
                  name: policy_id
                  schema:
                    description: Optional policy ID to filter by.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional chat ID to filter by.
                  in: query
                  name: chat_id
                  schema:
                    description: Optional chat ID to filter by.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional concrete MCP server ID to match exactly.
                  in: query
                  name: mcp_server_id
                  schema:
                    description: Optional concrete MCP server ID to match exactly.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional risk result ID; returns that one finding even when it is not on a loaded page, such as from a shared link. A dismissed finding, such as a false positive, is not returned.
                  in: query
                  name: result_id
                  schema:
                    description: Optional risk result ID; returns that one finding even when it is not on a loaded page, such as from a shared link. A dismissed finding, such as a false positive, is not returned.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional ID of one mediated MCP execution (tool call, resource read or prompt get), the execution_id a result carries; returns the live findings on that execution across its request and response phases. Findings that were dismissed, auto-excluded by exclusion rules, or raised under deleted policies are omitted.
                  in: query
                  name: execution_id
                  schema:
                    description: Optional ID of one mediated MCP execution (tool call, resource read or prompt get), the execution_id a result carries; returns the live findings on that execution across its request and response phases. Findings that were dismissed, auto-excluded by exclusion rules, or raised under deleted policies are omitted.
                    type: string
                - allowEmptyValue: true
                  description: Optional rule category key to filter by (e.g. secrets, pii, financial).
                  in: query
                  name: category
                  schema:
                    description: Optional rule category key to filter by (e.g. secrets, pii, financial).
                    type: string
                - allowEmptyValue: true
                  description: Optional rule identifier substring to filter by (case-insensitive, e.g. 'secret' matches all 'secret.*' rules).
                  in: query
                  name: rule_id
                  schema:
                    description: Optional rule identifier substring to filter by (case-insensitive, e.g. 'secret' matches all 'secret.*' rules).
                    type: string
                - allowEmptyValue: true
                  description: Optional user identifier substring to filter by (case-insensitive, matched against the chat's external user id).
                  in: query
                  name: user_id
                  schema:
                    description: Optional user identifier substring to filter by (case-insensitive, matched against the chat's external user id).
                    type: string
                - allowEmptyValue: true
                  description: Optional external user identifiers to filter by, matched whole rather than as a substring. Pass every identifier a subject is known by; unlike user_id this cannot pull in another person whose identifier merely contains theirs.
                  in: query
                  name: external_user_ids
                  schema:
                    description: Optional external user identifiers to filter by, matched whole rather than as a substring. Pass every identifier a subject is known by; unlike user_id this cannot pull in another person whose identifier merely contains theirs.
                    items:
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: If true, collapse results to one row per (policy_id, rule_id, match), keeping the most recent occurrence. Useful when the same secret is detected many times within a single message body.
                  in: query
                  name: unique_match
                  schema:
                    description: If true, collapse results to one row per (policy_id, rule_id, match), keeping the most recent occurrence. Useful when the same secret is detected many times within a single message body.
                    type: boolean
                - allowEmptyValue: true
                  description: If true, only return findings from chats that are not linked to an assistant. Useful for surfacing events that are missing user attribution.
                  in: query
                  name: non_assistant
                  schema:
                    description: If true, only return findings from chats that are not linked to an assistant. Useful for surfacing events that are missing user attribution.
                    type: boolean
                - allowEmptyValue: true
                  description: Optional assistant ID; only return findings from chats linked to this assistant.
                  in: query
                  name: assistant_id
                  schema:
                    description: Optional assistant ID; only return findings from chats linked to this assistant.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Filter results to messages created at or after this timestamp (ISO 8601).
                  in: query
                  name: from
                  schema:
                    description: Filter results to messages created at or after this timestamp (ISO 8601).
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Filter results to messages created strictly before this timestamp (ISO 8601).
                  in: query
                  name: to
                  schema:
                    description: Filter results to messages created strictly before this timestamp (ISO 8601).
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Cursor to fetch the next page of results.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor to fetch the next page of results.
                    type: string
                - allowEmptyValue: true
                  description: Maximum number of results to return per page.
                  in: query
                  name: limit
                  schema:
                    description: Maximum number of results to return per page.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRiskResultsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listRiskResults risk
            tags:
                - risk
            x-speakeasy-group: risk.results
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: RiskListResults
    /rpc/risk.listResultsByChat:
        get:
            description: List risk results grouped by chat session for the current project.
            operationId: listRiskResultsByChat
            parameters:
                - allowEmptyValue: true
                  description: Cursor to fetch the next page of results.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor to fetch the next page of results.
                    type: string
                - allowEmptyValue: true
                  description: Maximum number of results to return per page.
                  in: query
                  name: limit
                  schema:
                    description: Maximum number of results to return per page.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRiskResultsByChatResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listRiskResultsByChat risk
            tags:
                - risk
            x-speakeasy-group: risk.results
            x-speakeasy-name-override: byChat
            x-speakeasy-react-hook:
                name: RiskListResultsByChat
    /rpc/risk.listResultsForAgent:
        get:
            description: List risk analysis results with the `match` field redacted to an opaque length+sha256-prefix fingerprint. Matches the payload and pagination semantics of listRiskResults. Designed for AI assistant / MCP consumption so secret content (gitleaks captures, presidio entities, prompt-injection payloads) never reaches the model context. For shadow_mcp findings the `match` value — a non-sensitive server URL or command identifier — is passed through verbatim.
            operationId: listRiskResultsForAgent
            parameters:
                - allowEmptyValue: true
                  description: Optional policy ID to filter by.
                  in: query
                  name: policy_id
                  schema:
                    description: Optional policy ID to filter by.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional chat ID to filter by.
                  in: query
                  name: chat_id
                  schema:
                    description: Optional chat ID to filter by.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional concrete MCP server ID to match exactly.
                  in: query
                  name: mcp_server_id
                  schema:
                    description: Optional concrete MCP server ID to match exactly.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional rule category key to filter by (e.g. secrets, pii, financial).
                  in: query
                  name: category
                  schema:
                    description: Optional rule category key to filter by (e.g. secrets, pii, financial).
                    type: string
                - allowEmptyValue: true
                  description: Optional rule identifier substring to filter by (case-insensitive, e.g. 'secret' matches all 'secret.*' rules).
                  in: query
                  name: rule_id
                  schema:
                    description: Optional rule identifier substring to filter by (case-insensitive, e.g. 'secret' matches all 'secret.*' rules).
                    type: string
                - allowEmptyValue: true
                  description: Optional user identifier substring to filter by (case-insensitive, matched against the chat's external user id).
                  in: query
                  name: user_id
                  schema:
                    description: Optional user identifier substring to filter by (case-insensitive, matched against the chat's external user id).
                    type: string
                - allowEmptyValue: true
                  description: If true, collapse results to one row per (policy_id, rule_id, match), keeping the most recent occurrence. Useful when the same secret is detected many times within a single message body.
                  in: query
                  name: unique_match
                  schema:
                    description: If true, collapse results to one row per (policy_id, rule_id, match), keeping the most recent occurrence. Useful when the same secret is detected many times within a single message body.
                    type: boolean
                - allowEmptyValue: true
                  description: If true, only return findings from chats that are not linked to an assistant. Useful for surfacing events that are missing user attribution.
                  in: query
                  name: non_assistant
                  schema:
                    description: If true, only return findings from chats that are not linked to an assistant. Useful for surfacing events that are missing user attribution.
                    type: boolean
                - allowEmptyValue: true
                  description: Optional assistant ID; only return findings from chats linked to this assistant.
                  in: query
                  name: assistant_id
                  schema:
                    description: Optional assistant ID; only return findings from chats linked to this assistant.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Filter results to messages created at or after this timestamp (ISO 8601).
                  in: query
                  name: from
                  schema:
                    description: Filter results to messages created at or after this timestamp (ISO 8601).
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Filter results to messages created strictly before this timestamp (ISO 8601).
                  in: query
                  name: to
                  schema:
                    description: Filter results to messages created strictly before this timestamp (ISO 8601).
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Cursor to fetch the next page of results.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor to fetch the next page of results.
                    type: string
                - allowEmptyValue: true
                  description: Maximum number of results to return per page.
                  in: query
                  name: limit
                  schema:
                    description: Maximum number of results to return per page.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRiskResultsForAgentResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listRiskResultsForAgent risk
            tags:
                - risk
            x-speakeasy-group: risk.results
            x-speakeasy-name-override: listForAgent
            x-speakeasy-react-hook:
                name: RiskListResultsForAgent
    /rpc/risk.listRiskPoliciesForMcpServer:
        get:
            description: List enabled MCP-scoped risk policies that apply to an MCP server and optional tool. Policies without an MCP scope are excluded.
            operationId: listRiskPoliciesForMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The MCP server ID.
                  in: query
                  name: mcp_server_id
                  required: true
                  schema:
                    description: The MCP server ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional tool name used to apply per-server tool selections.
                  in: query
                  name: tool_name
                  schema:
                    description: Optional tool name used to apply per-server tool selections.
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRiskPoliciesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listRiskPoliciesForMcpServer risk
            tags:
                - risk
            x-speakeasy-group: risk.policies
            x-speakeasy-name-override: listForMcpServer
            x-speakeasy-react-hook:
                name: RiskListPoliciesForMcpServer
    /rpc/risk.listSessionQuarantines:
        get:
            description: List active session quarantines for the current project.
            operationId: listSessionQuarantines
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSessionQuarantinesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listSessionQuarantines risk
            tags:
                - risk
            x-speakeasy-group: risk.sessionQuarantines
            x-speakeasy-name-override: listSessionQuarantines
            x-speakeasy-react-hook:
                name: RiskListSessionQuarantines
    /rpc/risk.markResultsFalsePositive:
        post:
            description: 'Mark one or more risk results as manually-reviewed false positives. Distinct from exclusions: this suppresses the specific results picked, not future findings matching a rule.'
            operationId: markRiskResultsFalsePositive
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/MarkRiskResultsFalsePositiveRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: markRiskResultsFalsePositive risk
            tags:
                - risk
            x-speakeasy-group: risk.results
            x-speakeasy-name-override: markFalsePositive
            x-speakeasy-react-hook:
                name: RiskMarkResultsFalsePositive
                type: mutation
    /rpc/risk.releaseSessionQuarantine:
        post:
            description: Release an active session quarantine.
            operationId: releaseSessionQuarantine
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SessionQuarantineReleaseRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SessionQuarantine'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: releaseSessionQuarantine risk
            tags:
                - risk
            x-speakeasy-group: risk.sessionQuarantines
            x-speakeasy-name-override: releaseSessionQuarantine
            x-speakeasy-react-hook:
                name: RiskReleaseSessionQuarantine
                type: mutation
    /rpc/risk.revealResultPayload:
        post:
            description: Return the full scanned payload of the MCP tool call phase a risk result was raised on, so its findings can be shown in context. Positions of every finding with the same execution_id and phase index into the returned payload. Requires an unrestricted chat:read grant. Every successful reveal is audited.
            operationId: revealRiskResultPayload
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskRevealPayloadResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: revealRiskResultPayload risk
            tags:
                - risk
            x-speakeasy-group: risk.results
            x-speakeasy-name-override: revealPayload
            x-speakeasy-react-hook:
                name: RiskRevealResultPayload
                type: mutation
    /rpc/risk.revokePolicyBypassRequest:
        post:
            description: Revoke a previously approved risk policy bypass request.
            operationId: revokeRiskPolicyBypassRequest
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskPolicyBypassRequest'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: revokeRiskPolicyBypassRequest risk
            tags:
                - risk
            x-speakeasy-group: risk.policyBypassRequests
            x-speakeasy-name-override: revoke
            x-speakeasy-react-hook:
                name: RiskRevokePolicyBypassRequest
                type: mutation
    /rpc/risk.submitBlockFeedback:
        put:
            description: Record thumbs-up/thumbs-down feedback for a tool call block from the block page.
            operationId: submitRiskBlockFeedback
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SubmitRiskBlockFeedbackRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskBlock'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: submitRiskBlockFeedback risk
            tags:
                - risk
            x-speakeasy-group: risk.blocks
            x-speakeasy-name-override: submitFeedback
            x-speakeasy-react-hook:
                name: RiskSubmitBlockFeedback
                type: mutation
    /rpc/risk.suggestCustomRules:
        post:
            description: Suggest a custom detection rule (rule_id, title, description, regex, severity) from a natural-language prompt. Calls the configured LLM with a JSON-schema constrained response so the dashboard can prefill the create form.
            operationId: suggestCustomDetectionRule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SuggestCustomDetectionRuleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SuggestCustomDetectionRuleResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: suggestCustomDetectionRule risk
            tags:
                - risk
            x-speakeasy-group: risk.customRules
            x-speakeasy-name-override: suggest
            x-speakeasy-react-hook:
                name: RiskSuggestCustomRule
                type: mutation
    /rpc/risk.suggestExclusion:
        post:
            description: Suggest a risk exclusion (match_type, match_value, filters) from a natural-language prompt, a batch of example findings, or both. Calls the configured LLM with a JSON-schema constrained response so the dashboard can prefill the create exclusion form. At least one of prompt or finding_ids is required.
            operationId: suggestExclusion
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SuggestExclusionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SuggestExclusionResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: suggestExclusion risk
            tags:
                - risk
            x-speakeasy-group: risk.exclusions
            x-speakeasy-name-override: suggest
            x-speakeasy-react-hook:
                name: RiskSuggestExclusion
                type: mutation
    /rpc/risk.suggestPolicy:
        post:
            description: 'Map a plain-language description of a risk to a policy draft: the closest preset with its detectors, action and severity, or a bespoke prompt-based guardrail when no preset fits. Uses the configured LLM when available and a deterministic keyword match otherwise. Nothing is created.'
            operationId: suggestRiskPolicy
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SuggestRiskPolicyRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SuggestRiskPolicyResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: suggestRiskPolicy risk
            tags:
                - risk
            x-speakeasy-group: risk.presets
            x-speakeasy-name-override: suggest
            x-speakeasy-react-hook:
                name: RiskSuggestPolicy
                type: mutation
    /rpc/risk.testRule:
        post:
            description: Run a single detection rule against pasted sample text and return any matches. Reuses the same scanner code (gitleaks, Presidio, prompt-injection, custom regex) that the analyzer runs in production so the playground match shape mirrors the chat-message path.
            operationId: testDetectionRule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/TestDetectionRuleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TestDetectionRuleResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: testDetectionRule risk
            tags:
                - risk
            x-speakeasy-group: risk.rules
            x-speakeasy-name-override: test
            x-speakeasy-react-hook:
                name: RiskTestDetectionRule
                type: mutation
    /rpc/risk.triggerPolicy:
        post:
            description: Manually trigger risk analysis for a policy, starting or signaling the drain workflow. Defaults to the most recent 100 unanalyzed messages; pass `limit=0` to backfill every unanalyzed message.
            operationId: triggerRiskAnalysis
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/TriggerRiskAnalysisRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: triggerRiskAnalysis risk
            tags:
                - risk
            x-speakeasy-group: risk.policies
            x-speakeasy-name-override: trigger
    /rpc/risk.unmarkResultsFalsePositive:
        post:
            description: Undo a false-positive dismissal for one or more risk results.
            operationId: unmarkRiskResultsFalsePositive
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UnmarkRiskResultsFalsePositiveRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: unmarkRiskResultsFalsePositive risk
            tags:
                - risk
            x-speakeasy-group: risk.results
            x-speakeasy-name-override: unmarkFalsePositive
            x-speakeasy-react-hook:
                name: RiskUnmarkResultsFalsePositive
                type: mutation
    /rpc/risk.unmaskResult:
        post:
            description: Return the plaintext match for a single risk result on demand. Every finding requires chat:read for its attributed chat. MCP findings with an empty or invalid chat ID require an unrestricted chat:read grant and use encrypted stored evidence. Every successful reveal is audited.
            operationId: unmaskRiskResult
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskUnmaskResultResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: unmaskRiskResult risk
            tags:
                - risk
            x-speakeasy-group: risk.results
            x-speakeasy-name-override: unmask
            x-speakeasy-react-hook:
                name: RiskUnmaskResult
                type: mutation
    /rpc/risk.updateCustomRule:
        post:
            description: Update a custom detection rule.
            operationId: updateCustomDetectionRule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateCustomDetectionRuleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskCustomDetectionRule'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateCustomDetectionRule risk
            tags:
                - risk
            x-speakeasy-group: risk.customRules
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: RiskUpdateCustomDetectionRule
                type: mutation
    /rpc/risk.updateExclusions:
        put:
            description: Update a risk exclusion.
            operationId: updateRiskExclusion
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateRiskExclusionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskExclusion'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateRiskExclusion risk
            tags:
                - risk
            x-speakeasy-group: risk.exclusions
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: RiskUpdateExclusion
                type: mutation
    /rpc/risk.updatePolicy:
        put:
            description: Update a risk analysis policy.
            operationId: updateRiskPolicy
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateRiskPolicyRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskPolicy'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateRiskPolicy risk
            tags:
                - risk
            x-speakeasy-group: risk.policies
            x-speakeasy-name-override: update
    /rpc/riskEvals.deleteReview:
        delete:
            description: Remove the current reviewer's verdict for one session (the toggle-off path). A reviewer can only clear their own verdict.
            operationId: deleteRiskEvalReview
            parameters:
                - allowEmptyValue: true
                  description: The policy the verdict belongs to.
                  in: query
                  name: policy_id
                  required: true
                  schema:
                    description: The policy the verdict belongs to.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The chat session whose verdict to clear.
                  in: query
                  name: chat_id
                  required: true
                  schema:
                    description: The chat session whose verdict to clear.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteRiskEvalReview risk
            tags:
                - risk
            x-speakeasy-group: risk.evals
            x-speakeasy-name-override: deleteReview
            x-speakeasy-react-hook:
                name: RiskDeleteEvalReview
                type: mutation
    /rpc/riskEvals.evaluate:
        post:
            description: 'Replay a prompt_based guardrail against a single chat session and return the LLM judge''s per-message verdict. The guardrail (prompt + judge config + message-type scope + CEL scope) is passed inline so the policy-eval workbench can evaluate an unsaved draft before a policy exists. This path is read-only: it never writes risk_results, publishes to the outbox, or enforces. It exists purely to tune a guardrail against real transcripts. Judges only the chat''s latest generation and at most the first 200 in-scope messages in transcript order; message-type scoping and CEL scope predicates are both applied.'
            operationId: evaluatePromptGuardrail
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/EvaluatePromptGuardrailRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PromptGuardrailEvalResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: evaluatePromptGuardrail risk
            tags:
                - risk
            x-speakeasy-group: risk.evals
            x-speakeasy-name-override: evaluate
            x-speakeasy-react-hook:
                name: RiskEvaluatePromptGuardrail
                type: query
    /rpc/riskEvals.listReviews:
        get:
            description: 'List the active regression set for a prompt-based policy: every reviewer''s current ground-truth verdicts.'
            operationId: listRiskEvalReviews
            parameters:
                - allowEmptyValue: true
                  description: The policy whose review set to list.
                  in: query
                  name: policy_id
                  required: true
                  schema:
                    description: The policy whose review set to list.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListRiskEvalReviewsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listRiskEvalReviews risk
            tags:
                - risk
            x-speakeasy-group: risk.evals
            x-speakeasy-name-override: listReviews
            x-speakeasy-react-hook:
                name: RiskListEvalReviews
                type: query
    /rpc/riskEvals.saveReview:
        post:
            description: 'Record (or replace) the current reviewer''s ground-truth verdict for one chat session under a prompt-based policy. This is the durable regression set the eval workbench scores the live guardrail against. Upserts: a reviewer has at most one verdict per session per policy.'
            operationId: saveRiskEvalReview
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SaveRiskEvalReviewRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RiskPolicyEvalReview'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: saveRiskEvalReview risk
            tags:
                - risk
            x-speakeasy-group: risk.evals
            x-speakeasy-name-override: saveReview
            x-speakeasy-react-hook:
                name: RiskSaveEvalReview
                type: mutation
    /rpc/sigint.createSensor:
        post:
            description: Create a sensor. multi_label permits independently applicable labels, exclusive makes attached signals compete and permits at most 255, and ordered_score uses ordered levels and permits at most 10. Empty and one-signal sensors are valid drafts. Omitted signal_ids creates an empty sensor; [] is explicitly empty. Repeated, deleted, missing, or cross-project signal IDs are rejected atomically.
            operationId: createSigintSensor
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateSigintSensorForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SigintSensor'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createSensor sigint
            tags:
                - sigint
            x-speakeasy-name-override: createSensor
            x-speakeasy-react-hook:
                name: CreateSigintSensor
    /rpc/sigint.createSignal:
        post:
            description: Create a reusable custom signal. Names are trimmed and must contain 1 to 200 characters. Description and classifier criteria are optional authoring metadata; an empty string clears either field.
            operationId: createSigintSignal
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateSigintSignalForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SigintSignal'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createSignal sigint
            tags:
                - sigint
            x-speakeasy-name-override: createSignal
            x-speakeasy-react-hook:
                name: CreateSigintSignal
    /rpc/sigint.deleteSensor:
        delete:
            description: Soft-delete a sensor and its memberships. Shared custom signals remain active.
            operationId: deleteSigintSensor
            parameters:
                - allowEmptyValue: true
                  description: Sensor ID
                  in: query
                  name: id
                  required: true
                  schema:
                    description: Sensor ID
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SigintSensor'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteSensor sigint
            tags:
                - sigint
            x-speakeasy-name-override: deleteSensor
            x-speakeasy-react-hook:
                name: DeleteSigintSensor
    /rpc/sigint.deleteSignal:
        delete:
            description: Soft-delete a custom signal and detach it from every sensor in the selected project. Surviving sensor signal order is compacted; sensors may remain incomplete drafts.
            operationId: deleteSigintSignal
            parameters:
                - allowEmptyValue: true
                  description: Custom signal ID
                  in: query
                  name: id
                  required: true
                  schema:
                    description: Custom signal ID
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SigintSignal'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteSignal sigint
            tags:
                - sigint
            x-speakeasy-name-override: deleteSignal
            x-speakeasy-react-hook:
                name: DeleteSigintSignal
    /rpc/sigint.getSensor:
        get:
            description: Get an active sensor with its ordered signal_ids. The collection is always returned and is [] when no signals are attached.
            operationId: getSigintSensor
            parameters:
                - allowEmptyValue: true
                  description: Sensor ID
                  in: query
                  name: id
                  required: true
                  schema:
                    description: Sensor ID
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SigintSensor'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getSensor sigint
            tags:
                - sigint
            x-speakeasy-name-override: getSensor
            x-speakeasy-react-hook:
                name: GetSigintSensor
    /rpc/sigint.getSignal:
        get:
            description: Get an active custom signal by ID in the selected project.
            operationId: getSigintSignal
            parameters:
                - allowEmptyValue: true
                  description: Custom signal ID
                  in: query
                  name: id
                  required: true
                  schema:
                    description: Custom signal ID
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SigintSignal'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getSignal sigint
            tags:
                - sigint
            x-speakeasy-name-override: getSignal
            x-speakeasy-react-hook:
                name: GetSigintSignal
    /rpc/sigint.listSensors:
        get:
            description: List active sensors in deterministic ID order with each sensor's ordered signal_ids from one consistent database snapshot. The collection is [] for an unattached sensor.
            operationId: listSigintSensors
            parameters:
                - allowEmptyValue: true
                  description: Sensor ID after which to continue
                  in: query
                  name: cursor
                  schema:
                    description: Sensor ID after which to continue
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Page size
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: Page size
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSigintSensorsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listSensors sigint
            tags:
                - sigint
            x-speakeasy-name-override: listSensors
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: SigintSensors
    /rpc/sigint.listSignals:
        get:
            description: List active custom signals in deterministic ID order. The cursor is the final ID from the previous page.
            operationId: listSigintSignals
            parameters:
                - allowEmptyValue: true
                  description: Signal ID after which to continue
                  in: query
                  name: cursor
                  schema:
                    description: Signal ID after which to continue
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Page size
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: Page size
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSigintSignalsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listSignals sigint
            tags:
                - sigint
            x-speakeasy-name-override: listSignals
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: SigintSignals
    /rpc/sigint.updateSensor:
        post:
            description: 'Partially update a sensor. Omitted fields and JSON null preserve stored values. Empty optional text clears it. Omitted signal_ids preserves membership, while [] clears it and a non-empty array replaces and reorders it atomically. Mode changes validate the final membership: exclusive permits at most 255 signals and ordered_score at most 10; incomplete drafts remain valid.'
            operationId: updateSigintSensor
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateSigintSensorForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SigintSensor'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateSensor sigint
            tags:
                - sigint
            x-speakeasy-name-override: updateSensor
            x-speakeasy-react-hook:
                name: UpdateSigintSensor
    /rpc/sigint.updateSignal:
        post:
            description: Partially update a custom signal. Omitted fields and JSON null leave existing values unchanged. Supplying an empty optional-text value clears it. A supplied name is trimmed and must contain 1 to 200 characters.
            operationId: updateSigintSignal
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateSigintSignalForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SigintSignal'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateSignal sigint
            tags:
                - sigint
            x-speakeasy-name-override: updateSignal
            x-speakeasy-react-hook:
                name: UpdateSigintSignal
    /rpc/skillEfficacy.getSettings:
        get:
            description: Get effective organization-wide skill efficacy sampling settings.
            operationId: getSkillEfficacySettings
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SkillEfficacySettings'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: getSettings skillEfficacy
            tags:
                - skillEfficacy
            x-speakeasy-name-override: getSettings
            x-speakeasy-react-hook:
                name: SkillEfficacySettings
    /rpc/skillEfficacy.queryInsights:
        get:
            description: Query activation-time skill efficacy, estimated savings, attributed session cost, and optional scored-session detail for the current project. Scores are sampled and costs fan out to every activated version.
            operationId: querySkillEfficacyInsights
            parameters:
                - allowEmptyValue: true
                  description: Active skill IDs to query (up to 200). Omit to query all active project skills.
                  in: query
                  name: skill_ids
                  schema:
                    description: Active skill IDs to query (up to 200). Omit to query all active project skills.
                    items:
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: RFC3339 window start; defaults to 30 days before to.
                  in: query
                  name: from
                  schema:
                    description: RFC3339 window start; defaults to 30 days before to.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: RFC3339 window end; defaults to now.
                  in: query
                  name: to
                  schema:
                    description: RFC3339 window end; defaults to now.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Include per-version daily trends.
                  in: query
                  name: include_versions
                  schema:
                    description: Include per-version daily trends.
                    type: boolean
                - allowEmptyValue: true
                  description: Include a newest-first page of scored sessions. Intended for one skill detail view.
                  in: query
                  name: include_scored_sessions
                  schema:
                    description: Include a newest-first page of scored sessions. Intended for one skill detail view.
                    type: boolean
                - allowEmptyValue: true
                  description: Calculate attributed session cost. Disable for surfaces that do not display it.
                  in: query
                  name: include_session_cost
                  schema:
                    description: Calculate attributed session cost. Disable for surfaces that do not display it.
                    type: boolean
                - allowEmptyValue: true
                  description: Calculate the current-versus-predecessor efficacy regression signal.
                  in: query
                  name: include_regression_signal
                  schema:
                    description: Calculate the current-versus-predecessor efficacy regression signal.
                    type: boolean
                - allowEmptyValue: true
                  description: Cursor for the next page of scored sessions.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of scored sessions.
                    type: string
                - allowEmptyValue: true
                  description: The number of scored sessions to return per page.
                  in: query
                  name: limit
                  schema:
                    default: 20
                    description: The number of scored sessions to return per page.
                    format: int64
                    maximum: 100
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SkillEfficacyInsightsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: queryInsights skillEfficacy
            tags:
                - skillEfficacy
            x-speakeasy-name-override: queryInsights
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: SkillEfficacyInsights
                type: query
    /rpc/skillEfficacy.upsertSettings:
        post:
            description: Create or replace organization-wide skill efficacy sampling settings.
            operationId: upsertSkillEfficacySettings
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertSettingsRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SkillEfficacySettings'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                - session_header_Gram-Session: []
            summary: upsertSettings skillEfficacy
            tags:
                - skillEfficacy
            x-speakeasy-name-override: upsertSettings
            x-speakeasy-react-hook:
                name: UpsertSkillEfficacySettings
    /rpc/skills.addVersion:
        post:
            description: Record an uploaded SKILL.md as a version of an existing skill. The implementation requires the skills product feature and skill write scope, and returns the existing canonical version as a no-op when appropriate.
            operationId: addSkillVersion
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AddSkillVersionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RecordSkillResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: addVersion skills
            tags:
                - skills
            x-speakeasy-name-override: addVersion
            x-speakeasy-react-hook:
                name: AddSkillVersion
    /rpc/skills.approveAllSuggestions:
        post:
            description: Snapshot and independently process selected skill edit suggestions, or every open suggestion when no IDs are supplied. One conflict or failure does not stop the remaining approvals.
            operationId: approveAllSkillSuggestions
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ApproveAllSkillSuggestionsRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApproveAllSkillSuggestionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: approveAllSuggestions skills
            tags:
                - skills
            x-speakeasy-name-override: approveAllSuggestions
            x-speakeasy-react-hook:
                name: ApproveAllSkillSuggestions
    /rpc/skills.approveSuggestion:
        post:
            description: Approve an open skill edit suggestion, optionally replacing its proposed SKILL.md content or taking only a subset of its proposed changes. Stale suggestions are superseded instead.
            operationId: approveSkillSuggestion
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ApproveSkillSuggestionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApproveSkillSuggestionResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: approveSuggestion skills
            tags:
                - skills
            x-speakeasy-name-override: approveSuggestion
            x-speakeasy-react-hook:
                name: ApproveSkillSuggestion
    /rpc/skills.archive:
        post:
            description: Idempotently archive a skill. The implementation requires the skills product feature and skill write scope. Repeated requests for the same skill succeed without creating another state transition.
            operationId: archiveSkill
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ArchiveSkillRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: archive skills
            tags:
                - skills
            x-speakeasy-name-override: archive
            x-speakeasy-react-hook:
                name: ArchiveSkill
    /rpc/skills.create:
        post:
            description: Record an uploaded SKILL.md. The implementation requires the skills product feature and skill write scope, and may create a skill, add a version to an existing skill, or return an existing canonical version as a no-op.
            operationId: createSkill
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateSkillRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RecordSkillResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: create skills
            tags:
                - skills
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateSkill
    /rpc/skills.dismissSuggestion:
        post:
            description: Idempotently dismiss an open skill edit suggestion. Approved and superseded suggestions conflict.
            operationId: dismissSkillSuggestion
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DismissSkillSuggestionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SkillEditSuggestion'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: dismissSuggestion skills
            tags:
                - skills
            x-speakeasy-name-override: dismissSuggestion
            x-speakeasy-react-hook:
                name: DismissSkillSuggestion
    /rpc/skills.distribute:
        post:
            description: Create or update the active distribution of a skill to exactly one plugin or assistant. Repeating the request for the same target updates the version pin or is a no-op.
            operationId: distributeSkill
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        example:
                            id: 550e8400-e29b-41d4-a716-446655440000
                            plugin_id: 550e8400-e29b-41d4-a716-446655440001
                        schema:
                            $ref: '#/components/schemas/DistributeSkillRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SkillDistribution'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: distribute skills
            tags:
                - skills
            x-speakeasy-name-override: distribute
            x-speakeasy-react-hook:
                name: DistributeSkill
    /rpc/skills.get:
        get:
            description: Get an active skill and its latest version. The implementation requires the skills product feature and skill read scope.
            operationId: getSkill
            parameters:
                - allowEmptyValue: true
                  description: The skill ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The skill ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetSkillResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: get skills
            tags:
                - skills
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: Skill
    /rpc/skills.getShared:
        get:
            description: Fetch the publicly shared view of a skill by its share token. This endpoint is unauthenticated and only ever exposes the skill name, display name, summary, and latest content.
            operationId: getSharedSkill
            parameters:
                - allowEmptyValue: true
                  description: The public share token.
                  in: query
                  name: token
                  required: true
                  schema:
                    description: The public share token.
                    maxLength: 128
                    minLength: 32
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SharedSkill2'
                    description: OK response.
                    headers:
                        Cache-Control:
                            description: The Cache-Control response header.
                            schema:
                                description: The Cache-Control response header.
                                type: string
                        Referrer-Policy:
                            description: The Referrer-Policy response header.
                            schema:
                                description: The Referrer-Policy response header.
                                type: string
                        X-Robots-Tag:
                            description: The X-Robots-Tag response header.
                            schema:
                                description: The X-Robots-Tag response header.
                                type: string
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: getShared skills
            tags:
                - skills
            x-speakeasy-name-override: getShared
            x-speakeasy-react-hook:
                name: SharedSkill
    /rpc/skills.list:
        get:
            description: List active skills in the project. The implementation requires the skills product feature and skill read scope.
            operationId: listSkills
            parameters:
                - allowEmptyValue: true
                  description: Cursor for the next page of skills.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of skills.
                    type: string
                - allowEmptyValue: true
                  description: The number of skills to return per page.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: The number of skills to return per page.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Search skill names, display names, and summaries.
                  in: query
                  name: search
                  schema:
                    description: Search skill names, display names, and summaries.
                    maxLength: 256
                    type: string
                - allowEmptyValue: true
                  description: Only return skills from these sources.
                  in: query
                  name: source_kinds
                  schema:
                    description: Only return skills from these sources.
                    items:
                        enum:
                            - manual
                            - captured
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Only return skills with these classifications.
                  in: query
                  name: classifications
                  schema:
                    description: Only return skills with these classifications.
                    items:
                        enum:
                            - custom
                            - built_in
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Only return skills that have any of these tags.
                  in: query
                  name: tags
                  schema:
                    description: Only return skills that have any of these tags.
                    items:
                        maxLength: 64
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Only return skills at least one of these Speakeasy users is authorized to reach, through a grant on them or on a role they hold, less any blocking grant withdrawing the same scope. Plugin membership is distribution and does not widen it.
                  in: query
                  name: accessible_by
                  schema:
                    description: Only return skills at least one of these Speakeasy users is authorized to reach, through a grant on them or on a role they hold, less any blocking grant withdrawing the same scope. Plugin membership is distribution and does not widen it.
                    items:
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: How to order skills.
                  in: query
                  name: sort
                  schema:
                    default: name
                    description: How to order skills.
                    enum:
                        - name
                        - updated
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSkillsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: list skills
            tags:
                - skills
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: Skills
    /rpc/skills.listDistributions:
        get:
            description: List active plugin skill distributions for the current project.
            operationId: listSkillDistributions
            parameters:
                - allowEmptyValue: true
                  description: Only return distributions of this skill.
                  in: query
                  name: skill_id
                  schema:
                    description: Only return distributions of this skill.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Only return distributions carried by this plugin.
                  in: query
                  name: plugin_id
                  schema:
                    description: Only return distributions carried by this plugin.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Cursor for the next page of skill distributions.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of skill distributions.
                    type: string
                - allowEmptyValue: true
                  description: The number of skill distributions to return per page.
                  in: query
                  name: limit
                  schema:
                    default: 20
                    description: The number of skill distributions to return per page.
                    format: int64
                    maximum: 50
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSkillDistributionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listDistributions skills
            tags:
                - skills
            x-speakeasy-name-override: listDistributions
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: SkillDistributions
    /rpc/skills.listFeedback:
        get:
            description: List outcome counts, collection metrics, volume, and recent resolved feedback for a skill. Name-only feedback is excluded.
            operationId: listSkillFeedback
            parameters:
                - allowEmptyValue: true
                  description: The skill ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The skill ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Cursor for the next page of feedback.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of feedback.
                    type: string
                - allowEmptyValue: true
                  description: The number of feedback rows to return per page.
                  in: query
                  name: limit
                  schema:
                    default: 20
                    description: The number of feedback rows to return per page.
                    format: int64
                    maximum: 50
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSkillFeedbackResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listFeedback skills
            tags:
                - skills
            x-speakeasy-name-override: listFeedback
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: SkillFeedback
    /rpc/skills.listSuggestionFeedback:
        get:
            description: List the agent feedback cited as the reason for one proposed change, newest first.
            operationId: listSkillSuggestionFeedback
            parameters:
                - allowEmptyValue: true
                  description: The proposed change ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The proposed change ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The number of feedback records to return.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: The number of feedback records to return.
                    format: int64
                    maximum: 50
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSkillSuggestionFeedbackResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listSuggestionFeedback skills
            tags:
                - skills
            x-speakeasy-name-override: listSuggestionFeedback
            x-speakeasy-react-hook:
                name: SkillSuggestionFeedback
    /rpc/skills.listSuggestions:
        get:
            description: List open skill edit suggestions in the project, newest first. The implementation requires the skills product feature and skill read scope.
            operationId: listSkillSuggestions
            parameters:
                - allowEmptyValue: true
                  description: Only return suggestions for this skill.
                  in: query
                  name: skill_id
                  schema:
                    description: Only return suggestions for this skill.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Cursor for the next page of suggestions.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of suggestions.
                    type: string
                - allowEmptyValue: true
                  description: The number of suggestions to return per page.
                  in: query
                  name: limit
                  schema:
                    default: 20
                    description: The number of suggestions to return per page.
                    format: int64
                    maximum: 50
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSkillSuggestionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listSuggestions skills
            tags:
                - skills
            x-speakeasy-name-override: listSuggestions
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: SkillSuggestions
    /rpc/skills.listTags:
        get:
            description: List distinct tags used by active skills in the project. The implementation requires the skills product feature and skill read scope.
            operationId: listSkillTags
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSkillTagsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listTags skills
            tags:
                - skills
            x-speakeasy-name-override: listTags
            x-speakeasy-react-hook:
                name: SkillTags
    /rpc/skills.listUnknownActivations:
        get:
            description: List terminal skill activations that could not be attributed to a skill version.
            operationId: listUnknownSkillActivations
            parameters:
                - allowEmptyValue: true
                  description: Cursor for the next page of unknown activations.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of unknown activations.
                    type: string
                - allowEmptyValue: true
                  description: The number of unknown activations to return per page.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: The number of unknown activations to return per page.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUnknownSkillActivationsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listUnknownActivations skills
            tags:
                - skills
            x-speakeasy-name-override: listUnknownActivations
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: UnknownSkillActivations
    /rpc/skills.listVersions:
        get:
            description: List immutable versions of an active skill, newest first. The implementation requires the skills product feature and skill read scope.
            operationId: listSkillVersions
            parameters:
                - allowEmptyValue: true
                  description: The skill ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The skill ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Cursor for the next page of skill versions.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor for the next page of skill versions.
                    type: string
                - allowEmptyValue: true
                  description: The number of skill versions to return per page.
                  in: query
                  name: limit
                  schema:
                    default: 20
                    description: The number of skill versions to return per page.
                    format: int64
                    maximum: 50
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSkillVersionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listVersions skills
            tags:
                - skills
            x-speakeasy-name-override: listVersions
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: SkillVersions
    /rpc/skills.restoreVersion:
        post:
            description: Restore a historical valid version as the skill's current version without changing the immutable version record or explicit distribution pins.
            operationId: restoreSkillVersion
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RestoreSkillVersionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RecordSkillResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: restoreVersion skills
            tags:
                - skills
            x-speakeasy-name-override: restoreVersion
            x-speakeasy-react-hook:
                name: RestoreSkillVersion
    /rpc/skills.share:
        post:
            description: Create a public share link for a skill. Repeated requests return the existing active link, so each skill has at most one active share token.
            operationId: shareSkill
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ShareSkillRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SkillShareLink'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: share skills
            tags:
                - skills
            x-speakeasy-name-override: share
            x-speakeasy-react-hook:
                name: ShareSkill
    /rpc/skills.triggerSuggestion:
        post:
            description: Manually run suggestion analysis for a skill, bypassing automatic feedback and efficacy thresholds while preserving the one-open-suggestion invariant.
            operationId: triggerSkillSuggestion
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/TriggerSkillSuggestionRequestBody'
                required: true
            responses:
                "202":
                    description: Accepted response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: triggerSuggestion skills
            tags:
                - skills
            x-speakeasy-name-override: triggerSuggestion
            x-speakeasy-react-hook:
                name: TriggerSkillSuggestion
                type: mutation
    /rpc/skills.undistribute:
        post:
            description: Revoke a skill's active distribution to exactly one plugin or assistant. Repeated requests are a no-op.
            operationId: undistributeSkill
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        example:
                            id: 550e8400-e29b-41d4-a716-446655440000
                            plugin_id: 550e8400-e29b-41d4-a716-446655440001
                        schema:
                            $ref: '#/components/schemas/UndistributeSkillRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: undistribute skills
            tags:
                - skills
            x-speakeasy-name-override: undistribute
            x-speakeasy-react-hook:
                name: UndistributeSkill
    /rpc/skills.unshare:
        post:
            description: Revoke a skill's active public share link. Repeated requests are a no-op.
            operationId: unshareSkill
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UnshareSkillRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: unshare skills
            tags:
                - skills
            x-speakeasy-name-override: unshare
            x-speakeasy-react-hook:
                name: UnshareSkill
    /rpc/skills.update:
        post:
            description: Rename an active skill or update its display name, summary, and tags. The implementation requires the skills product feature and skill write scope.
            operationId: updateSkill
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateSkillRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Skill'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: update skills
            tags:
                - skills
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateSkill
    /rpc/slackDirectoryConnections.begin:
        post:
            operationId: beginSlackDirectoryConnection
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/BeginSlackDirectoryConnectionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/BeginResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/vnd.goa.error:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: Slack connections are unavailable or authorization is not configured.'
            security:
                - session_header_Gram-Session: []
            summary: begin slackDirectoryConnections
            tags:
                - slackDirectoryConnections
            x-speakeasy-name-override: begin
            x-speakeasy-react-hook:
                name: BeginSlackDirectoryConnection
    /rpc/slackDirectoryConnections.disconnect:
        post:
            operationId: disconnectSlackDirectoryConnection
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DisconnectSlackDirectoryConnectionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SlackDirectoryConnection'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/vnd.goa.error:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: Slack connections are unavailable or authorization is not configured.'
            security:
                - session_header_Gram-Session: []
            summary: disconnect slackDirectoryConnections
            tags:
                - slackDirectoryConnections
            x-speakeasy-name-override: disconnect
            x-speakeasy-react-hook:
                name: DisconnectSlackDirectoryConnection
    /rpc/slackDirectoryConnections.getMember:
        get:
            description: Read current Slack profile and mapping before an administrator confirms a selection.
            operationId: getSlackDirectoryMember
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SlackDirectoryMember'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/vnd.goa.error:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: Slack connections are unavailable or authorization is not configured.'
            security:
                - session_header_Gram-Session: []
            summary: getMember slackDirectoryConnections
            tags:
                - slackDirectoryConnections
            x-speakeasy-name-override: getMember
            x-speakeasy-react-hook:
                name: SlackDirectoryMember
    /rpc/slackDirectoryConnections.list:
        get:
            operationId: listSlackDirectoryConnections
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/vnd.goa.error:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: Slack connections are unavailable or authorization is not configured.'
            security:
                - session_header_Gram-Session: []
            summary: list slackDirectoryConnections
            tags:
                - slackDirectoryConnections
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: SlackDirectoryConnections
    /rpc/slackDirectoryConnections.listMembers:
        get:
            description: Read observed Slack members across the organization or within one workspace. Does not create identity mappings.
            operationId: listSlackDirectoryMembers
            parameters:
                - allowEmptyValue: true
                  description: Filter to a workspace connection.
                  in: query
                  name: connection_id
                  schema:
                    description: Filter to a workspace connection.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Literal case-insensitive name, email or Slack ID search.
                  in: query
                  name: search
                  schema:
                    description: Literal case-insensitive name, email or Slack ID search.
                    maxLength: 200
                    type: string
                - allowEmptyValue: true
                  description: Filter mapping state.
                  in: query
                  name: mapping_status
                  schema:
                    description: Filter mapping state.
                    enum:
                        - unmapped
                        - mapped
                        - needs_review
                    type: string
                - allowEmptyValue: true
                  description: Include members deactivated in Slack.
                  in: query
                  name: include_deactivated
                  schema:
                    default: false
                    description: Include members deactivated in Slack.
                    type: boolean
                - allowEmptyValue: true
                  description: Include bots and apps.
                  in: query
                  name: include_bots
                  schema:
                    default: false
                    description: Include bots and apps.
                    type: boolean
                - allowEmptyValue: true
                  description: Include guests.
                  in: query
                  name: include_guests
                  schema:
                    default: false
                    description: Include guests.
                    type: boolean
                - allowEmptyValue: true
                  description: Sort by mapping state at this time, so mapping changes after it do not reorder pages. Pass back the sort_as_of from the first page; defaults to the database's current time.
                  in: query
                  name: sort_as_of
                  schema:
                    description: Sort by mapping state at this time, so mapping changes after it do not reorder pages. Pass back the sort_as_of from the first page; defaults to the database's current time.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: One-based page number. Unmapped members sort first, then members needing review, then mapped members, each alphabetically.
                  in: query
                  name: page
                  schema:
                    default: 1
                    description: One-based page number. Unmapped members sort first, then members needing review, then mapped members, each alphabetically.
                    format: int64
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Maximum returned rows.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: Maximum returned rows.
                    format: int64
                    maximum: 100
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListMembersResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/vnd.goa.error:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: Slack connections are unavailable or authorization is not configured.'
            security:
                - session_header_Gram-Session: []
            summary: listMembers slackDirectoryConnections
            tags:
                - slackDirectoryConnections
            x-speakeasy-name-override: listMembers
            x-speakeasy-react-hook:
                name: SlackDirectoryMembers
    /rpc/slackDirectoryConnections.listPersonAccounts:
        get:
            description: Read mapped Slack accounts for an active organization person by exact Speakeasy user ID. Browser session only; caller must be that person or an organization administrator. Does not infer associations from email or grant permissions.
            operationId: listSlackPersonAccounts
            parameters:
                - allowEmptyValue: true
                  description: Exact Speakeasy user ID of the active organization person.
                  in: query
                  name: user_id
                  required: true
                  schema:
                    description: Exact Speakeasy user ID of the active organization person.
                    minLength: 1
                    type: string
                - allowEmptyValue: true
                  description: Continue after the last membership ID.
                  in: query
                  name: cursor
                  schema:
                    description: Continue after the last membership ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPersonAccountsResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/vnd.goa.error:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: Slack connections are unavailable or authorization is not configured.'
            security:
                - session_header_Gram-Session: []
            summary: listPersonAccounts slackDirectoryConnections
            tags:
                - slackDirectoryConnections
            x-speakeasy-name-override: listPersonAccounts
            x-speakeasy-react-hook:
                name: SlackPersonAccounts
    /rpc/slackDirectoryConnections.setMapping:
        post:
            description: Explicitly confirm, reassign or remove a Slack association. This grants no permissions and does not establish runtime eligibility.
            operationId: setSlackIdentityMapping
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetSlackIdentityMappingRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SlackDirectoryMember'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/vnd.goa.error:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: Slack connections are unavailable or authorization is not configured.'
            security:
                - session_header_Gram-Session: []
            summary: setMapping slackDirectoryConnections
            tags:
                - slackDirectoryConnections
            x-speakeasy-name-override: setMapping
            x-speakeasy-react-hook:
                name: SetSlackIdentityMapping
    /rpc/slackDirectoryConnections.sync:
        post:
            description: Request a complete Slack workspace directory sync. Concurrent requests join the running sync.
            operationId: syncSlackDirectory
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SyncSlackDirectoryRequestBody'
                required: true
            responses:
                "202":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SyncResponseBody'
                    description: Accepted response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
                "503":
                    content:
                        application/vnd.goa.error:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unavailable: Slack connections are unavailable or authorization is not configured.'
            security:
                - session_header_Gram-Session: []
            summary: sync slackDirectoryConnections
            tags:
                - slackDirectoryConnections
            x-speakeasy-name-override: sync
            x-speakeasy-react-hook:
                name: SyncSlackDirectory
    /rpc/spendrules.archiveRule:
        post:
            description: 'Archive a budget rule. There is no delete: archiving ends the rule''s lineage while retaining its slug, version history, and events. Any open circuits for the rule close on the next evaluation cycle.'
            operationId: archiveSpendRule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RiskIDRequestBody'
                required: true
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: archiveSpendRule spendRules
            tags:
                - spendRules
            x-speakeasy-group: spendRules.rules
            x-speakeasy-name-override: archive
            x-speakeasy-react-hook:
                name: SpendRulesArchiveRule
                type: mutation
    /rpc/spendrules.createRule:
        post:
            description: Create a new budget rule for the current organization.
            operationId: createSpendRule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateSpendRuleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SpendRule'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createSpendRule spendRules
            tags:
                - spendRules
            x-speakeasy-group: spendRules.rules
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: SpendRulesCreateRule
                type: mutation
    /rpc/spendrules.getOverview:
        get:
            description: 'Get budgets overview metrics: aggregate card numbers plus current-window usage per rule.'
            operationId: getSpendRulesOverview
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SpendRulesOverviewResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getSpendRulesOverview spendRules
            tags:
                - spendRules
            x-speakeasy-group: spendRules.overview
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: SpendRulesOverview
    /rpc/spendrules.getRule:
        get:
            description: Get a budget rule by ID.
            operationId: getSpendRule
            parameters:
                - allowEmptyValue: true
                  description: The rule ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The rule ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SpendRule'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getSpendRule spendRules
            tags:
                - spendRules
            x-speakeasy-group: spendRules.rules
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: SpendRulesGetRule
    /rpc/spendrules.listActorAttributes:
        get:
            description: List the member attributes a rule target condition can be written against, with each attribute's value kind. Static reference data that powers the rule editor's attribute picker.
            operationId: listSpendRuleActorAttributes
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListActorAttributesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listActorAttributes spendRules
            tags:
                - spendRules
            x-speakeasy-group: spendRules.actorAttributes
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: SpendRulesActorAttributes
    /rpc/spendrules.listEvents:
        get:
            description: List warning and breach events emitted by budget rule evaluation, most recent first.
            operationId: listSpendRuleEvents
            parameters:
                - allowEmptyValue: true
                  description: 'Optional rule ID to filter by. Matches the rule''s whole lineage: events from every version of the rule are returned.'
                  in: query
                  name: rule_id
                  schema:
                    description: 'Optional rule ID to filter by. Matches the rule''s whole lineage: events from every version of the rule are returned.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Optional event type to filter by.
                  in: query
                  name: event_type
                  schema:
                    description: Optional event type to filter by.
                    enum:
                        - warning
                        - breach
                    type: string
                - allowEmptyValue: true
                  description: Cursor to fetch the next page of events.
                  in: query
                  name: cursor
                  schema:
                    description: Cursor to fetch the next page of events.
                    type: string
                - allowEmptyValue: true
                  description: Maximum number of events to return per page.
                  in: query
                  name: limit
                  schema:
                    description: Maximum number of events to return per page.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSpendRuleEventsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listSpendRuleEvents spendRules
            tags:
                - spendRules
            x-speakeasy-group: spendRules.events
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: SpendRulesListEvents
    /rpc/spendrules.listRules:
        get:
            description: List all budget rules for the current organization.
            operationId: listSpendRules
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSpendRulesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listSpendRules spendRules
            tags:
                - spendRules
            x-speakeasy-group: spendRules.rules
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: SpendRulesListRules
    /rpc/spendrules.previewRule:
        post:
            description: Preview which actors a target expression matches and their current spend against a proposed budget. Powers the live preview in the rule editor and the per-actor breakdown in the rule detail view.
            operationId: previewSpendRule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/PreviewSpendRuleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PreviewSpendRuleResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: previewSpendRule spendRules
            tags:
                - spendRules
            x-speakeasy-group: spendRules.rules
            x-speakeasy-name-override: preview
            x-speakeasy-react-hook:
                name: SpendRulesPreviewRule
                type: mutation
    /rpc/spendrules.updateRule:
        put:
            description: 'Update a budget rule. Rule rows are immutable version snapshots: any change besides the enabled toggle archives the current version row and creates a successor at version + 1 (returned as the result, under a new ID). Enabled-only changes toggle the live row in place.'
            operationId: updateSpendRule
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateSpendRuleRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SpendRule'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateSpendRule spendRules
            tags:
                - spendRules
            x-speakeasy-group: spendRules.rules
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: SpendRulesUpdateRule
                type: mutation
    /rpc/telemetry.captureEvent:
        post:
            description: Capture a telemetry event and forward it to PostHog
            operationId: captureEvent
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
                - allowEmptyValue: true
                  description: Chat Sessions token header
                  in: header
                  name: Gram-Chat-Session
                  schema:
                    description: Chat Sessions token header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CaptureEventPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CaptureEventResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - chat_sessions_token_header_Gram-Chat-Session: []
            summary: captureEvent telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: captureEvent
    /rpc/telemetry.getEmployeeDataFlowGraph:
        post:
            description: Get an employee's MCP data flow graph across origins, clients, servers, and tools
            operationId: getEmployeeDataFlowGraph
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetEmployeeDataFlowGraphPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetEmployeeDataFlowGraphResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getEmployeeDataFlowGraph telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getEmployeeDataFlowGraph
            x-speakeasy-react-hook:
                name: GetEmployeeDataFlowGraph
                type: query
    /rpc/telemetry.getHooksSummary:
        post:
            description: Get aggregated hooks metrics grouped by server
            operationId: getHooksSummary
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetHooksSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetHooksSummaryResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getHooksSummary telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getHooksSummary
            x-speakeasy-react-hook:
                name: GetHooksSummary
                type: query
    /rpc/telemetry.getMcpNetworkTraffic:
        post:
            description: Observed inbound public and private MCP request counts for a server or gateway over a recent window
            operationId: getMcpNetworkTraffic
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetMcpNetworkTrafficPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetMcpNetworkTrafficResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getMcpNetworkTraffic telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getMcpNetworkTraffic
            x-speakeasy-react-hook:
                name: GetMcpNetworkTraffic
                type: query
    /rpc/telemetry.getMcpServerActivity:
        post:
            description: Get per-MCP-server tool-call activity for the Distribute MCP listing. Returns, for every MCP server with usage in the lookback window, its total and recent tool-call counts plus the last tool-call time, so the listing can flag servers that have never received a tool call or that have gone quiet.
            operationId: getMcpServerActivity
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetMcpServerActivityPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetMcpServerActivityResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getMcpServerActivity telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getMcpServerActivity
            x-speakeasy-react-hook:
                name: GetMcpServerActivity
                type: query
    /rpc/telemetry.getMetaMcpServerUsage:
        post:
            description: Discovery funnel and per-member execution breakdown for one gateway (meta MCP server), from gateway-attributed telemetry.
            operationId: getMetaMcpServerUsage
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetMetaMcpServerUsagePayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetMetaMcpServerUsageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getMetaMcpServerUsage telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getMetaMcpServerUsage
            x-speakeasy-react-hook:
                name: GetMetaMcpServerUsage
                type: query
    /rpc/telemetry.getObservabilityOverview:
        post:
            description: Get observability overview metrics including time series, tool breakdowns, and summary stats
            operationId: getObservabilityOverview
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetObservabilityOverviewPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetObservabilityOverviewResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getObservabilityOverview telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getObservabilityOverview
            x-speakeasy-react-hook:
                name: GetObservabilityOverview
                type: query
    /rpc/telemetry.getProjectMetricsSummary:
        post:
            description: Get aggregated metrics summary for an entire project
            operationId: getProjectMetricsSummary
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetProjectMetricsSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetMetricsSummaryResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getProjectMetricsSummary telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getProjectMetricsSummary
            x-speakeasy-react-hook:
                name: GetProjectMetricsSummary
                type: query
    /rpc/telemetry.getProjectOverview:
        post:
            description: Get project-level overview including total chats, tool calls, active servers/users, and top lists
            operationId: getProjectOverview
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetProjectMetricsSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetProjectOverviewResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getProjectOverview telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getProjectOverview
            x-speakeasy-react-hook:
                name: GetProjectOverview
                type: query
    /rpc/telemetry.getToolUsageClientToolBreakdown:
        post:
            description: Get per-tool MCP and tool usage grouped by MCP client
            operationId: getToolUsageClientToolBreakdown
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageClientToolBreakdownResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageClientToolBreakdown telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageClientToolBreakdown
            x-speakeasy-react-hook:
                name: GetToolUsageClientToolBreakdown
                type: query
    /rpc/telemetry.getToolUsageClients:
        post:
            description: Get top MCP clients by tool usage
            operationId: getToolUsageClients
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageClientsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageClients telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageClients
            x-speakeasy-react-hook:
                name: GetToolUsageClients
                type: query
    /rpc/telemetry.getToolUsageFilterOptions:
        post:
            description: Get filter options for target-aware MCP and tool usage metrics
            operationId: getToolUsageFilterOptions
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageFilterOptionsPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageFilterOptionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageFilterOptions telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageFilterOptions
            x-speakeasy-react-hook:
                name: GetToolUsageFilterOptions
                type: query
    /rpc/telemetry.getToolUsageSummary:
        post:
            description: Get target-aware MCP and tool usage metrics
            operationId: getToolUsageSummary
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageSummaryResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageSummary telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageSummary
            x-speakeasy-react-hook:
                name: GetToolUsageSummary
                type: query
    /rpc/telemetry.getToolUsageTargetTimeSeries:
        post:
            description: Get time-series MCP and tool usage grouped by target
            operationId: getToolUsageTargetTimeSeries
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageTargetTimeSeriesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageTargetTimeSeries telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageTargetTimeSeries
            x-speakeasy-react-hook:
                name: GetToolUsageTargetTimeSeries
                type: query
    /rpc/telemetry.getToolUsageTargetToolBreakdown:
        post:
            description: Get per-tool MCP and tool usage grouped by target
            operationId: getToolUsageTargetToolBreakdown
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageTargetToolBreakdownResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageTargetToolBreakdown telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageTargetToolBreakdown
            x-speakeasy-react-hook:
                name: GetToolUsageTargetToolBreakdown
                type: query
    /rpc/telemetry.getToolUsageTargets:
        post:
            description: Get top MCP and tool usage targets
            operationId: getToolUsageTargets
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageTargetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageTargets telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageTargets
            x-speakeasy-react-hook:
                name: GetToolUsageTargets
                type: query
    /rpc/telemetry.getToolUsageTotals:
        post:
            description: Get overall MCP and tool usage totals
            operationId: getToolUsageTotals
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageTotalsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageTotals telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageTotals
            x-speakeasy-react-hook:
                name: GetToolUsageTotals
                type: query
    /rpc/telemetry.getToolUsageUserTimeSeries:
        post:
            description: Get time-series MCP and tool usage grouped by user identity
            operationId: getToolUsageUserTimeSeries
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageUserTimeSeriesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageUserTimeSeries telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageUserTimeSeries
            x-speakeasy-react-hook:
                name: GetToolUsageUserTimeSeries
                type: query
    /rpc/telemetry.getToolUsageUsers:
        post:
            description: Get top MCP and tool usage user identities
            operationId: getToolUsageUsers
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageUsersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageUsers telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageUsers
            x-speakeasy-react-hook:
                name: GetToolUsageUsers
                type: query
    /rpc/telemetry.getToolUsageUsersByTarget:
        post:
            description: Get cross-dimensional MCP and tool usage grouped by target and user identity
            operationId: getToolUsageUsersByTarget
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetToolUsageSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetToolUsageUsersByTargetResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getToolUsageUsersByTarget telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getToolUsageUsersByTarget
            x-speakeasy-react-hook:
                name: GetToolUsageUsersByTarget
                type: query
    /rpc/telemetry.getUnproxiedMcpServerClientUsage:
        post:
            description: Best-effort per-client (hook source, e.g. claude-code, cursor, codex) call counts for an unproxied MCP server, sourced from Shadow MCP's hook-reported traces matched by canonicalized URL. Same coverage caveats as getUnproxiedMcpServerUsage.
            operationId: getUnproxiedMcpServerClientUsage
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UnproxiedMcpServerUsageBreakdownPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetUnproxiedMcpServerClientUsageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getUnproxiedMcpServerClientUsage telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getUnproxiedMcpServerClientUsage
            x-speakeasy-react-hook:
                name: GetUnproxiedMcpServerClientUsage
                type: query
    /rpc/telemetry.getUnproxiedMcpServerToolUsage:
        post:
            description: Best-effort per-tool call counts for an unproxied MCP server, sourced from Shadow MCP's hook-reported traces matched by canonicalized URL. Same coverage caveats as getUnproxiedMcpServerUsage.
            operationId: getUnproxiedMcpServerToolUsage
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UnproxiedMcpServerUsageBreakdownPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetUnproxiedMcpServerToolUsageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getUnproxiedMcpServerToolUsage telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getUnproxiedMcpServerToolUsage
            x-speakeasy-react-hook:
                name: GetUnproxiedMcpServerToolUsage
                type: query
    /rpc/telemetry.getUnproxiedMcpServerUsage:
        post:
            description: 'Best-effort tool-call activity for an unproxied MCP server, sourced from Shadow MCP''s hook-reported traces matched by canonicalized URL. Coverage is opportunistic: only calls made from hook-instrumented sessions in this project are visible, so a freshly added or rarely used server may show no data.'
            operationId: getUnproxiedMcpServerUsage
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetUnproxiedMcpServerUsageRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetUnproxiedMcpServerUsageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getUnproxiedMcpServerUsage telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getUnproxiedMcpServerUsage
            x-speakeasy-react-hook:
                name: GetUnproxiedMcpServerUsage
                type: query
    /rpc/telemetry.getUnproxiedMcpServerUserUsage:
        post:
            description: Best-effort per-user call counts for an unproxied MCP server, sourced from Shadow MCP's hook-reported traces matched by canonicalized URL. Same coverage caveats as getUnproxiedMcpServerUsage.
            operationId: getUnproxiedMcpServerUserUsage
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UnproxiedMcpServerUsageBreakdownPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetUnproxiedMcpServerUserUsageResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getUnproxiedMcpServerUserUsage telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getUnproxiedMcpServerUserUsage
            x-speakeasy-react-hook:
                name: GetUnproxiedMcpServerUserUsage
                type: query
    /rpc/telemetry.getUserMetricsSummary:
        post:
            description: Get aggregated metrics summary grouped by user
            operationId: getUserMetricsSummary
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetUserMetricsSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetUserMetricsSummaryResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getUserMetricsSummary telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: getUserMetricsSummary
            x-speakeasy-react-hook:
                name: GetUserMetricsSummary
                type: query
    /rpc/telemetry.listAttributeKeys:
        post:
            description: List distinct attribute keys available for filtering
            operationId: listAttributeKeys
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/GetProjectMetricsSummaryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListAttributeKeysResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listAttributeKeys telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: listAttributeKeys
            x-speakeasy-react-hook:
                name: ListAttributeKeys
                type: query
    /rpc/telemetry.listFilterOptions:
        post:
            description: List available filter options (API keys or users) for the observability overview
            operationId: listFilterOptions
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ListFilterOptionsPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListFilterOptionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listFilterOptions telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: listFilterOptions
            x-speakeasy-react-hook:
                name: ListFilterOptions
                type: query
    /rpc/telemetry.listHooksTraces:
        post:
            description: List hook traces aggregated by trace_id with user information
            operationId: listHooksTraces
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ListHooksTracesPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListHooksTracesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listHooksTraces telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: listHooksTraces
            x-speakeasy-react-hook:
                name: ListHooksTraces
                type: query
    /rpc/telemetry.listSessions:
        post:
            description: Org-scoped list of individual chat sessions for a slice of usage, filtered by the same allowlisted dimensions as telemetry.query. Returns per-session cost, token, and tool metrics with cursor pagination.
            operationId: listSessions
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ListSessionsPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListSessionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: listSessions telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: listSessions
            x-speakeasy-react-hook:
                name: ListSessions
                type: query
    /rpc/telemetry.listToolUsageTraces:
        post:
            description: List target-aware MCP and tool usage traces
            operationId: listToolUsageTraces
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ListToolUsageTracesPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListToolUsageTracesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listToolUsageTraces telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: listToolUsageTraces
            x-speakeasy-react-hook:
                name: ListToolUsageTraces
                type: query
    /rpc/telemetry.query:
        post:
            description: Generic, org-scoped analytics query over pre-aggregated usage metrics. Returns both a grouped table and a per-group hourly timeseries for the same slice of data, supporting arbitrary allowlisted group-by dimensions and filters (e.g. group by department_name, then drill in by filtering department_name and grouping by role).
            operationId: query
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/QueryPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/QueryResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: query telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: query
            x-speakeasy-react-hook:
                name: TelemetryQuery
                type: query
    /rpc/telemetry.queryTumDetails:
        post:
            description: 'Org-scoped daily usage details for the billing page, computed in one pass: the tokens-under-management daily token-type split (observed agent traffic; cache reads excluded) and per-dimension breakdowns over the same population.'
            operationId: queryTumDetails
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/TelemetryWindowPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TumDetailsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: queryTumDetails telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: queryTumDetails
            x-speakeasy-react-hook:
                name: TelemetryQueryTumDetails
                type: query
    /rpc/telemetry.searchChats:
        post:
            description: Search and list chat session summaries that match a search filter
            operationId: searchChats
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SearchChatsPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SearchChatsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: searchChats telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: searchChats
            x-speakeasy-react-hook:
                name: SearchChats
                type: query
    /rpc/telemetry.searchLogs:
        post:
            description: Search and list telemetry logs that match a search filter
            operationId: searchLogs
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SearchLogsPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SearchLogsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: searchLogs telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: searchLogs
            x-speakeasy-react-hook:
                name: SearchLogs
    /rpc/telemetry.searchToolCalls:
        post:
            description: Search and list tool calls that match a search filter
            operationId: searchToolCalls
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SearchToolCallsPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SearchToolCallsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: searchToolCalls telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: searchToolCalls
            x-speakeasy-react-hook:
                name: SearchToolCalls
    /rpc/telemetry.searchUsers:
        post:
            description: Search and list user usage summaries grouped by user_id or external_user_id
            operationId: searchUsers
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SearchUsersPayload'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SearchUsersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: searchUsers telemetry
            tags:
                - telemetry
            x-speakeasy-name-override: searchUsers
            x-speakeasy-react-hook:
                name: SearchUsers
                type: query
    /rpc/templates.create:
        post:
            description: Create a new prompt template.
            operationId: createTemplate
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreatePromptTemplateForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreatePromptTemplateResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createTemplate templates
            tags:
                - templates
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateTemplate
    /rpc/templates.delete:
        delete:
            description: Delete prompt template by its ID or name.
            operationId: deleteTemplate
            parameters:
                - allowEmptyValue: true
                  description: The ID of the prompt template
                  in: query
                  name: id
                  schema:
                    description: The ID of the prompt template
                    type: string
                - allowEmptyValue: true
                  description: The name of the prompt template
                  in: query
                  name: name
                  schema:
                    description: The name of the prompt template
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteTemplate templates
            tags:
                - templates
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteTemplate
    /rpc/templates.get:
        get:
            description: Get prompt template by its ID or name.
            operationId: getTemplate
            parameters:
                - allowEmptyValue: true
                  description: The ID of the prompt template
                  in: query
                  name: id
                  schema:
                    description: The ID of the prompt template
                    type: string
                - allowEmptyValue: true
                  description: The name of the prompt template
                  in: query
                  name: name
                  schema:
                    description: The name of the prompt template
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/GetPromptTemplateResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getTemplate templates
            tags:
                - templates
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: Template
    /rpc/templates.list:
        get:
            description: List available prompt template.
            operationId: listTemplates
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListPromptTemplatesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listTemplates templates
            tags:
                - templates
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: Templates
    /rpc/templates.render:
        post:
            description: Render a prompt template by ID with provided input data.
            operationId: renderTemplateByID
            parameters:
                - allowEmptyValue: true
                  description: The ID of the prompt template to render
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the prompt template to render
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RenderTemplateByIDRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RenderTemplateResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: renderTemplateByID templates
            tags:
                - templates
            x-speakeasy-name-override: renderByID
            x-speakeasy-react-hook:
                name: RenderTemplateByID
                type: query
    /rpc/templates.renderDirect:
        post:
            description: Render a prompt template directly with all template fields provided.
            operationId: renderTemplate
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RenderTemplateRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RenderTemplateResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: renderTemplate templates
            tags:
                - templates
            x-speakeasy-name-override: render
            x-speakeasy-react-hook:
                name: RenderTemplate
                type: query
    /rpc/templates.update:
        post:
            description: Update a prompt template.
            operationId: updateTemplate
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdatePromptTemplateForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UpdatePromptTemplateResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateTemplate templates
            tags:
                - templates
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateTemplate
    /rpc/tokenExchange.exchange:
        post:
            description: Exchange the org-scoped device-agent install credential plus a vouched user email for a long-lived, per-user API key carrying the 'agent_user' scope. Authenticated with an org-scoped API key carrying the 'agent' scope — deliberately broader than the 'agent_user' scope the minted per-user keys carry, so a leaked per-user key cannot re-enter this endpoint to forge another user's key. The raw key is returned exactly once.
            operationId: tokenExchange
            parameters:
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/ExchangeRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TokenResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - apikey_header_Gram-Key: []
            summary: exchange tokenExchange
            tags:
                - tokenExchange
            x-speakeasy-name-override: exchange
    /rpc/tools.list:
        get:
            description: List all tools for a project
            operationId: listTools
            parameters:
                - allowEmptyValue: true
                  description: The cursor to fetch results from
                  in: query
                  name: cursor
                  schema:
                    description: The cursor to fetch results from
                    type: string
                - allowEmptyValue: true
                  description: The number of tools to return per page
                  in: query
                  name: limit
                  schema:
                    description: The number of tools to return per page
                    format: int32
                    type: integer
                - allowEmptyValue: true
                  description: The deployment ID. If unset, latest deployment will be used.
                  in: query
                  name: deployment_id
                  schema:
                    description: The deployment ID. If unset, latest deployment will be used.
                    type: string
                - allowEmptyValue: true
                  description: Filter tools by URN prefix (e.g. 'tools:http:kitchen-sink' to match all tools starting with that prefix)
                  in: query
                  name: urn_prefix
                  schema:
                    description: Filter tools by URN prefix (e.g. 'tools:http:kitchen-sink' to match all tools starting with that prefix)
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: tool_types
                  schema:
                    default:
                        - http
                        - function
                        - prompt
                        - platform
                    items:
                        description: The type of tool
                        enum:
                            - http
                            - prompt
                            - function
                            - platform
                            - externalmcp
                        type: string
                    type: array
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListToolsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listTools tools
            tags:
                - tools
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListTools
    /rpc/toolsets.addExternalOAuthServer:
        post:
            description: Associate an external OAuth server with a toolset
            operationId: addExternalOAuthServer
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset to update
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AddExternalOAuthServerRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Toolset'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: addExternalOAuthServer toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: addExternalOAuthServer
            x-speakeasy-react-hook:
                name: AddExternalOAuthServer
    /rpc/toolsets.checkMCPSlugAvailability:
        get:
            deprecated: true
            description: |-
                Check if a MCP slug is taken in any scope (true means taken).

                Deprecated: use mcpEndpoints.checkSlugAvailability instead, which is scoped to one domain and returns true when available.
            operationId: checkMCPSlugAvailability
            parameters:
                - allowEmptyValue: true
                  description: The slug to check
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                type: boolean
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: checkMCPSlugAvailability toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: checkMCPSlugAvailability
            x-speakeasy-react-hook:
                name: CheckMCPSlugAvailability
    /rpc/toolsets.clone:
        post:
            description: Clone an existing toolset with a new name
            operationId: cloneToolset
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset to clone
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Toolset'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Authorization: []
                  project_slug_header_Gram-Project: []
            summary: cloneToolset toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: cloneBySlug
            x-speakeasy-react-hook:
                name: CloneToolset
    /rpc/toolsets.create:
        post:
            description: Create a new toolset with associated tools
            operationId: createToolset
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateToolsetRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Toolset'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createToolset toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateToolset
    /rpc/toolsets.delete:
        delete:
            description: Delete a toolset by its ID
            operationId: deleteToolset
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "204":
                    description: No Content response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteToolset toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: deleteBySlug
            x-speakeasy-react-hook:
                name: DeleteToolset
    /rpc/toolsets.get:
        get:
            description: Get detailed information about a toolset including full HTTP tool definitions
            operationId: getToolset
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: The slug of the toolset
                    maxLength: 60
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Toolset'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getToolset toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: getBySlug
            x-speakeasy-react-hook:
                name: Toolset
    /rpc/toolsets.list:
        get:
            description: List all toolsets for a project
            operationId: listToolsets
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListToolsetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listToolsets toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: ListToolsets
    /rpc/toolsets.listForOrg:
        get:
            description: List all toolsets across the organization (summary view)
            operationId: listToolsetsForOrg
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListToolsetSummariesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
            summary: listToolsetsForOrg toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: listForOrg
            x-speakeasy-react-hook:
                name: ListToolsetsForOrg
    /rpc/toolsets.listToolFilters:
        get:
            description: List the tool filter scopes (tags) available on a toolset-backed MCP server and the tools under each, including tools excluded from all filters. Read-only; reflects the explicit tool variations group configured on the toolset, deriving effective tags with the same logic as the runtime ?tags= filter. Returns filtering disabled when no explicit group is set.
            operationId: listToolsetToolFilters
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListToolFiltersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listToolFilters toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: listToolFilters
            x-speakeasy-react-hook:
                name: ListToolsetToolFilters
    /rpc/toolsets.listToolSchemaStaticValues:
        get:
            description: 'List every const, default, enum, example, and examples value in each tool input schema. The result is deliberately mechanical: clients decide how to present or interpret the values. This supports reviewing the exact schema contents before changing how a toolset is shared.'
            operationId: listToolsetToolSchemaStaticValues
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListToolSchemaStaticValuesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listToolSchemaStaticValues toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: listToolSchemaStaticValues
            x-speakeasy-react-hook:
                name: ListToolSchemaStaticValues
    /rpc/toolsets.removeOAuthServer:
        post:
            description: Remove OAuth server association from a toolset
            operationId: removeOAuthServer
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Toolset'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: removeOAuthServer toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: removeOAuthServer
            x-speakeasy-react-hook:
                name: RemoveOAuthServer
    /rpc/toolsets.setToolVariationsGroup:
        post:
            description: Assign a tool variations group to a toolset to enable MCP tool filtering (or pass null to disable). The group must already exist in the caller's project.
            operationId: setToolsetToolVariationsGroup
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset to configure
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetToolVariationsGroupRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Toolset'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: setToolVariationsGroup toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: setToolVariationsGroup
            x-speakeasy-react-hook:
                name: SetToolsetToolVariationsGroup
    /rpc/toolsets.setUserSessionIssuer:
        post:
            deprecated: true
            description: |-
                Link a toolset to a user_session_issuer (or pass null to unlink). The user_session_issuer must already exist in the caller's project.

                Deprecated: use mcpServers.update instead.
            operationId: setToolsetUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset to link
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetUserSessionIssuerRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Toolset'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: setUserSessionIssuer toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: setUserSessionIssuer
            x-speakeasy-react-hook:
                name: SetToolsetUserSessionIssuer
    /rpc/toolsets.update:
        post:
            description: Update a toolset's properties including name, description, and HTTP tools
            operationId: updateToolset
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset to update
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateToolsetRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Toolset'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateToolset toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: updateBySlug
            x-speakeasy-react-hook:
                name: UpdateToolset
    /rpc/toolsets.updateExternalOAuthServer:
        post:
            description: Change an attached external OAuth server between provider-hosted and Speakeasy-hosted authorization-server metadata without replacing the server, registrations, tokens, or toolset association
            operationId: updateExternalOAuthServer
            parameters:
                - allowEmptyValue: true
                  description: The slug of the toolset whose attached external OAuth server is updated
                  in: query
                  name: slug
                  required: true
                  schema:
                    description: A short url-friendly label that uniquely identifies a resource.
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateExternalOAuthServerRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Toolset'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateExternalOAuthServer toolsets
            tags:
                - toolsets
            x-speakeasy-name-override: updateExternalOAuthServer
            x-speakeasy-react-hook:
                name: UpdateExternalOAuthServer
    /rpc/triggers.create:
        post:
            description: Create a trigger instance.
            operationId: createTriggerInstance
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateTriggerInstanceForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TriggerInstance'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createTriggerInstance triggers
            tags:
                - triggers
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateTrigger
    /rpc/triggers.delete:
        delete:
            description: Delete a trigger instance.
            operationId: deleteTriggerInstance
            parameters:
                - allowEmptyValue: true
                  description: The trigger instance ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The trigger instance ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteTriggerInstance triggers
            tags:
                - triggers
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteTrigger
    /rpc/triggers.get:
        get:
            description: Get a trigger instance by ID.
            operationId: getTriggerInstance
            parameters:
                - allowEmptyValue: true
                  description: The trigger instance ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The trigger instance ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TriggerInstance'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getTriggerInstance triggers
            tags:
                - triggers
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: Trigger
    /rpc/triggers.list:
        get:
            description: List trigger instances for the current project.
            operationId: listTriggerInstances
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListTriggerInstancesResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listTriggerInstances triggers
            tags:
                - triggers
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: Triggers
    /rpc/triggers.listDefinitions:
        get:
            description: List static trigger definitions available to a project.
            operationId: listTriggerDefinitions
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListTriggerDefinitionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listTriggerDefinitions triggers
            tags:
                - triggers
            x-speakeasy-name-override: listDefinitions
            x-speakeasy-react-hook:
                name: TriggerDefinitions
    /rpc/triggers.listEvents:
        get:
            description: List recent dispatch events for a trigger instance.
            operationId: listTriggerEvents
            parameters:
                - allowEmptyValue: true
                  description: The trigger instance ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The trigger instance ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Maximum number of events to return.
                  in: query
                  name: limit
                  schema:
                    default: 50
                    description: Maximum number of events to return.
                    format: int64
                    maximum: 200
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListTriggerEventsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listTriggerEvents triggers
            tags:
                - triggers
            x-speakeasy-name-override: listEvents
            x-speakeasy-react-hook:
                name: TriggerEvents
    /rpc/triggers.pause:
        post:
            description: Pause a trigger instance.
            operationId: pauseTriggerInstance
            parameters:
                - allowEmptyValue: true
                  description: The trigger instance ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The trigger instance ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TriggerInstance'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: pauseTriggerInstance triggers
            tags:
                - triggers
            x-speakeasy-name-override: pause
            x-speakeasy-react-hook:
                name: PauseTrigger
    /rpc/triggers.resume:
        post:
            description: Resume a trigger instance.
            operationId: resumeTriggerInstance
            parameters:
                - allowEmptyValue: true
                  description: The trigger instance ID.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The trigger instance ID.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TriggerInstance'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: resumeTriggerInstance triggers
            tags:
                - triggers
            x-speakeasy-name-override: resume
            x-speakeasy-react-hook:
                name: ResumeTrigger
    /rpc/triggers.update:
        post:
            description: Update a trigger instance.
            operationId: updateTriggerInstance
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateTriggerInstanceForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TriggerInstance'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateTriggerInstance triggers
            tags:
                - triggers
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateTrigger
    /rpc/tunneledMcp.createServer:
        post:
            description: Create a new tunneled MCP server source. Returns the tunnel key once.
            operationId: createTunneledMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateTunneledMcpServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreateTunneledMcpServerResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createServer tunneledMcp
            tags:
                - tunneledMcp
            x-speakeasy-name-override: createServer
            x-speakeasy-react-hook:
                name: CreateTunneledMcpServer
    /rpc/tunneledMcp.deleteServer:
        delete:
            description: Delete a tunneled MCP server source
            operationId: deleteTunneledMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The ID of the tunneled MCP server to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the tunneled MCP server to delete
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteServer tunneledMcp
            tags:
                - tunneledMcp
            x-speakeasy-name-override: deleteServer
            x-speakeasy-react-hook:
                name: DeleteTunneledMcpServer
    /rpc/tunneledMcp.getServer:
        get:
            description: Get a tunneled MCP server by ID
            operationId: getTunneledMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The ID of the tunneled MCP server
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the tunneled MCP server
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TunneledMcpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getServer tunneledMcp
            tags:
                - tunneledMcp
            x-speakeasy-name-override: getServer
            x-speakeasy-react-hook:
                name: GetTunneledMcpServer
    /rpc/tunneledMcp.getServerMetrics:
        get:
            description: Read seven-day payload-free tunnel activity aggregates
            operationId: getTunneledMcpServerMetrics
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: id
                  required: true
                  schema:
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: window
                  schema:
                    default: day
                    enum:
                        - hour
                        - day
                        - week
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TunnelMetrics'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getServerMetrics tunneledMcp
            tags:
                - tunneledMcp
            x-speakeasy-name-override: getServerMetrics
            x-speakeasy-react-hook:
                name: GetTunneledMcpServerMetrics
    /rpc/tunneledMcp.listServerConnections:
        get:
            description: List live tunnel connections for a tunneled MCP server
            operationId: listTunneledMcpServerConnections
            parameters:
                - allowEmptyValue: true
                  description: The ID of the tunneled MCP server
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the tunneled MCP server
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TunneledMcpServerConnections'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listServerConnections tunneledMcp
            tags:
                - tunneledMcp
            x-speakeasy-name-override: listServerConnections
            x-speakeasy-react-hook:
                name: ListTunneledMcpServerConnections
    /rpc/tunneledMcp.listServers:
        get:
            description: List all tunneled MCP server sources for a project
            operationId: listTunneledMcpServers
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListTunneledMcpServersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listServers tunneledMcp
            tags:
                - tunneledMcp
            x-speakeasy-name-override: listServers
            x-speakeasy-react-hook:
                name: TunneledMcpServers
    /rpc/tunneledMcp.rotateServerKey:
        post:
            description: Rotate a tunneled MCP server source key. Returns the new tunnel key once.
            operationId: rotateTunneledMcpServerKey
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RotateTunneledMcpServerKeyForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RotateTunneledMcpServerKeyResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: rotateServerKey tunneledMcp
            tags:
                - tunneledMcp
            x-speakeasy-name-override: rotateServerKey
            x-speakeasy-react-hook:
                name: RotateTunneledMcpServerKey
    /rpc/tunneledMcp.updateServer:
        post:
            description: Update a tunneled MCP server source
            operationId: updateTunneledMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateTunneledMcpServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TunneledMcpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateServer tunneledMcp
            tags:
                - tunneledMcp
            x-speakeasy-name-override: updateServer
            x-speakeasy-react-hook:
                name: UpdateTunneledMcpServer
    /rpc/unproxiedMcp.createServer:
        post:
            description: Create a new unproxied MCP server. Restricted to callers whose email is on the speakeasy.com or speakeasyapi.dev domain.
            operationId: createUnproxiedMcpServer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateUnproxiedMcpServerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UnproxiedMcpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createServer unproxiedMcp
            tags:
                - unproxiedMcp
            x-speakeasy-name-override: createServer
            x-speakeasy-react-hook:
                name: CreateUnproxiedMcpServer
    /rpc/unproxiedMcp.deleteServer:
        delete:
            description: Delete an unproxied MCP server
            operationId: deleteUnproxiedMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The ID of the unproxied MCP server to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The ID of the unproxied MCP server to delete
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteServer unproxiedMcp
            tags:
                - unproxiedMcp
            x-speakeasy-name-override: deleteServer
            x-speakeasy-react-hook:
                name: DeleteUnproxiedMcpServer
    /rpc/unproxiedMcp.getServer:
        get:
            description: Get an unproxied MCP server by ID or slug. Exactly one of id or slug must be provided.
            operationId: getUnproxiedMcpServer
            parameters:
                - allowEmptyValue: true
                  description: The ID of the unproxied MCP server. Mutually exclusive with slug.
                  in: query
                  name: id
                  schema:
                    description: The ID of the unproxied MCP server. Mutually exclusive with slug.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The slug of the unproxied MCP server. Mutually exclusive with id.
                  in: query
                  name: slug
                  schema:
                    description: The slug of the unproxied MCP server. Mutually exclusive with id.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UnproxiedMcpServer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getServer unproxiedMcp
            tags:
                - unproxiedMcp
            x-speakeasy-name-override: getServer
            x-speakeasy-react-hook:
                name: GetUnproxiedMcpServer
    /rpc/unproxiedMcp.listServers:
        get:
            description: List all unproxied MCP servers for a project
            operationId: listUnproxiedMcpServers
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUnproxiedMcpServersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listServers unproxiedMcp
            tags:
                - unproxiedMcp
            x-speakeasy-name-override: listServers
            x-speakeasy-react-hook:
                name: UnproxiedMcpServers
    /rpc/usage.cancelStripeSubscription:
        post:
            description: Schedule the organization's Stripe PAYG subscription to cancel at the end of its current period
            operationId: cancelStripeSubscription
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/StripeSubscription'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: cancelStripeSubscription usage
            tags:
                - usage
            x-speakeasy-name-override: cancelStripeSubscription
            x-speakeasy-react-hook:
                name: cancelStripeSubscription
    /rpc/usage.createCheckout:
        post:
            description: Create a checkout link for upgrading to the business plan
            operationId: createCheckout
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                type: string
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createCheckout usage
            tags:
                - usage
            x-speakeasy-name-override: createCheckout
            x-speakeasy-react-hook:
                name: createCheckout
    /rpc/usage.createCustomerSession:
        post:
            description: Create a customer session for the user
            operationId: createCustomerSession
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                type: string
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createCustomerSession usage
            tags:
                - usage
            x-speakeasy-name-override: createCustomerSession
            x-speakeasy-react-hook:
                name: createCustomerSession
    /rpc/usage.createStripeCheckout:
        post:
            description: Create a Stripe Checkout link for starting PAYG billing
            operationId: createStripeCheckout
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                type: string
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createStripeCheckout usage
            tags:
                - usage
            x-speakeasy-name-override: createStripeCheckout
            x-speakeasy-react-hook:
                name: createStripeCheckout
    /rpc/usage.createStripePortalSession:
        post:
            description: Create a Stripe customer portal session for the organization's PAYG subscription
            operationId: createStripePortalSession
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                type: string
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createStripePortalSession usage
            tags:
                - usage
            x-speakeasy-name-override: createStripePortalSession
            x-speakeasy-react-hook:
                name: createStripePortalSession
    /rpc/usage.createTopUpCheckout:
        post:
            description: Create a checkout link for a one-time credit top-up purchase
            operationId: createTopUpCheckout
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                type: string
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: createTopUpCheckout usage
            tags:
                - usage
            x-speakeasy-name-override: createTopUpCheckout
            x-speakeasy-react-hook:
                name: createTopUpCheckout
    /rpc/usage.getBillingEmail:
        get:
            description: Get the billing notification email for a PAYG organization
            operationId: getBillingEmail
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/BillingEmail'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getBillingEmail usage
            tags:
                - usage
            x-speakeasy-name-override: getBillingEmail
            x-speakeasy-react-hook:
                name: getBillingEmail
    /rpc/usage.getInferenceSpendCaps:
        get:
            description: List current usage and caps for the organization's materialized platform-managed inference keys
            operationId: getInferenceSpendCaps
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                items:
                                    $ref: '#/components/schemas/InferenceSpendCap'
                                type: array
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getInferenceSpendCaps usage
            tags:
                - usage
            x-speakeasy-name-override: getInferenceSpendCaps
            x-speakeasy-react-hook:
                name: getInferenceSpendCaps
    /rpc/usage.getMeterUsage:
        get:
            description: Get incrementally aggregated ordinary meter usage by UTC day over a maximum of three calendar months. Duplicate deliveries count unless prevented by the producer.
            operationId: getMeterUsage
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: family
                  required: true
                  schema:
                    enum:
                        - agent_session_storage
                        - mcp_bandwidth
                        - risk_content_scans
                    type: string
                - allowEmptyValue: true
                  description: Inclusive UTC midnight reporting boundary. Must be paired with to.
                  in: query
                  name: from
                  schema:
                    description: Inclusive UTC midnight reporting boundary. Must be paired with to.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Exclusive UTC midnight reporting boundary. Must be paired with from and no later than three calendar months after from, clamped to the target month's last day.
                  in: query
                  name: to
                  schema:
                    description: Exclusive UTC midnight reporting boundary. Must be paired with from and no later than three calendar months after from, clamped to the target month's last day.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Family-compatible reporting facet
                  in: query
                  name: breakdown
                  schema:
                    description: Family-compatible reporting facet
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MeterUsageResponse'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getMeterUsage usage
            tags:
                - usage
            x-speakeasy-name-override: getMeterUsage
            x-speakeasy-react-hook:
                name: getMeterUsage
    /rpc/usage.getPaygBillingSummary:
        get:
            description: Get exact billable usage and estimated cost for the organization's live paid Stripe service period
            operationId: getPaygBillingSummary
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PaygBillingSummary'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getPaygBillingSummary usage
            tags:
                - usage
            x-speakeasy-name-override: getPaygBillingSummary
            x-speakeasy-react-hook:
                name: getPaygBillingSummary
    /rpc/usage.getPeriodUsage:
        get:
            description: Get the usage for an organization for a given period
            operationId: getPeriodUsage
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PeriodUsage'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getPeriodUsage usage
            tags:
                - usage
            x-speakeasy-name-override: getPeriodUsage
            x-speakeasy-react-hook:
                name: getPeriodUsage
    /rpc/usage.getSpendBreakdown:
        get:
            description: 'Report spend availability and estimate PAYG organizations'' three metered products at current list prices over a maximum of three calendar months. Other plans return unsupported_plan, empty products, and a zero total without calculating estimates. This is not an actual bill: ordinary summaries count duplicate deliveries unless prevented by the producer and exclude adjustment readings.'
            operationId: getSpendBreakdown
            parameters:
                - allowEmptyValue: true
                  description: Inclusive UTC midnight reporting boundary. Must be paired with to.
                  in: query
                  name: from
                  schema:
                    description: Inclusive UTC midnight reporting boundary. Must be paired with to.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Exclusive UTC midnight reporting boundary. Must be paired with from and no later than three calendar months after from, clamped to the target month's last day.
                  in: query
                  name: to
                  schema:
                    description: Exclusive UTC midnight reporting boundary. Must be paired with from and no later than three calendar months after from, clamped to the target month's last day.
                    format: date-time
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SpendBreakdownResponse'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getSpendBreakdown usage
            tags:
                - usage
            x-speakeasy-name-override: getSpendBreakdown
            x-speakeasy-react-hook:
                name: getSpendBreakdown
    /rpc/usage.getStripeSubscription:
        get:
            description: Get the live lifecycle state of the organization's Stripe PAYG subscription
            operationId: getStripeSubscription
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/StripeSubscription'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getStripeSubscription usage
            tags:
                - usage
            x-speakeasy-name-override: getStripeSubscription
            x-speakeasy-react-hook:
                name: getStripeSubscription
    /rpc/usage.getTokensUnderManagement:
        get:
            description: Get tokens under management for the active billing cycle alongside the contracted terms
            operationId: getTokensUnderManagement
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TokensUnderManagement'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: getTokensUnderManagement usage
            tags:
                - usage
            x-speakeasy-name-override: getTokensUnderManagement
            x-speakeasy-react-hook:
                name: getTokensUnderManagement
    /rpc/usage.getUsageTiers:
        get:
            description: Get the usage tiers
            operationId: getUsageTiers
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UsageTiers'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: getUsageTiers usage
            tags:
                - usage
            x-speakeasy-name-override: getUsageTiers
            x-speakeasy-react-hook:
                name: getUsageTiers
    /rpc/usage.resumeStripeSubscription:
        post:
            description: Remove a scheduled end-of-period cancellation from the organization's Stripe PAYG subscription
            operationId: resumeStripeSubscription
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/StripeSubscription'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: resumeStripeSubscription usage
            tags:
                - usage
            x-speakeasy-name-override: resumeStripeSubscription
            x-speakeasy-react-hook:
                name: resumeStripeSubscription
    /rpc/usage.setBillingEmail:
        post:
            description: Set or clear the billing notification email for a PAYG organization
            operationId: setBillingEmail
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/BillingEmail'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/BillingEmail'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: setBillingEmail usage
            tags:
                - usage
            x-speakeasy-name-override: setBillingEmail
            x-speakeasy-react-hook:
                name: setBillingEmail
    /rpc/usage.setBillingMetadata:
        post:
            description: Set an organization's billing contract terms. Restricted to platform admins.
            operationId: setBillingMetadata
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetBillingMetadataRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/TokensUnderManagement'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: setBillingMetadata usage
            tags:
                - usage
            x-speakeasy-name-override: setBillingMetadata
            x-speakeasy-react-hook:
                name: setBillingMetadata
    /rpc/usage.setSpendCap:
        post:
            description: Set the monthly spend cap for one of a PAYG organization's platform-managed inference keys
            operationId: setSpendCap
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/SetSpendCapRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/SpendCap'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
            summary: setSpendCap usage
            tags:
                - usage
            x-speakeasy-name-override: setSpendCap
            x-speakeasy-react-hook:
                name: setSpendCap
    /rpc/userSessionClients.get:
        get:
            description: Get a user_session_client by id.
            operationId: getUserSessionClient
            parameters:
                - allowEmptyValue: true
                  description: The user_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getUserSessionClient userSessionClients
            tags:
                - userSessionClients
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: UserSessionClient
    /rpc/userSessionClients.list:
        get:
            description: List user_session_clients in the caller's project.
            operationId: listUserSessionClients
            parameters:
                - allowEmptyValue: true
                  description: Filter to clients registered with this issuer.
                  in: query
                  name: user_session_issuer_id
                  schema:
                    description: Filter to clients registered with this issuer.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: 'Pagination cursor: id of the last item from the previous page.'
                  in: query
                  name: cursor
                  schema:
                    description: 'Pagination cursor: id of the last item from the previous page.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUserSessionClientsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listUserSessionClients userSessionClients
            tags:
                - userSessionClients
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: UserSessionClients
    /rpc/userSessionClients.refreshCIMD:
        post:
            description: 'Force a CIMD client''s metadata document to be re-read. Purges the stored cache state (expiry + ETag) before re-fetching, so the read is unconditional: a host answering 304 Not Modified cannot re-confirm the copy the operator is discarding. Rejected for DCR clients. Deliberately bypasses the document cache, so it carries a per-client cooldown: a refresh shortly after the last successful read returns rate_limit_exceeded.'
            operationId: refreshUserSessionClientCIMD
            parameters:
                - allowEmptyValue: true
                  description: The user_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: refreshUserSessionClientCIMD userSessionClients
            tags:
                - userSessionClients
            x-speakeasy-name-override: refreshCIMD
            x-speakeasy-react-hook:
                name: RefreshUserSessionClientCIMD
    /rpc/userSessionClients.revoke:
        post:
            description: 'Soft-delete a user_session_client and cascade to the user_sessions it issued. A DCR client stays revoked. A CIMD client does not: its identity is the metadata document URL, so the next /authorize re-resolves that document and registers a fresh row. Durably blocking a CIMD client is admission control''s job, not revocation''s.'
            operationId: revokeUserSessionClient
            parameters:
                - allowEmptyValue: true
                  description: The user_session_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: revokeUserSessionClient userSessionClients
            tags:
                - userSessionClients
            x-speakeasy-name-override: revoke
            x-speakeasy-react-hook:
                name: RevokeUserSessionClient
    /rpc/userSessionConsents.list:
        get:
            description: List consent records for the caller's project.
            operationId: listUserSessionConsents
            parameters:
                - allowEmptyValue: true
                  description: Filter by subject URN.
                  in: query
                  name: subject_urn
                  schema:
                    description: Filter by subject URN.
                    type: string
                - allowEmptyValue: true
                  description: Filter by user_session_client id.
                  in: query
                  name: user_session_client_id
                  schema:
                    description: Filter by user_session_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Filter by user_session_issuer id (joins through user_session_clients).
                  in: query
                  name: user_session_issuer_id
                  schema:
                    description: Filter by user_session_issuer id (joins through user_session_clients).
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: 'Pagination cursor: id of the last item from the previous page.'
                  in: query
                  name: cursor
                  schema:
                    description: 'Pagination cursor: id of the last item from the previous page.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUserSessionConsentsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listUserSessionConsents userSessionConsents
            tags:
                - userSessionConsents
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: UserSessionConsents
    /rpc/userSessionConsents.revoke:
        post:
            description: Withdraw consent. Subsequent authorization requests for matching (subject, user_session_client) pairs re-prompt.
            operationId: revokeUserSessionConsent
            parameters:
                - allowEmptyValue: true
                  description: The user_session_consent id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_consent id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: revokeUserSessionConsent userSessionConsents
            tags:
                - userSessionConsents
            x-speakeasy-name-override: revoke
            x-speakeasy-react-hook:
                name: RevokeUserSessionConsent
    /rpc/userSessionIssuers.create:
        post:
            description: Create a new user_session_issuer.
            operationId: createUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateUserSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createUserSessionIssuer userSessionIssuers
            tags:
                - userSessionIssuers
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateUserSessionIssuer
    /rpc/userSessionIssuers.delete:
        delete:
            description: Soft-delete a user_session_issuer. Cascades to dependent user_sessions, user_session_consents, and remote_session_clients.
            operationId: deleteUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteUserSessionIssuer userSessionIssuers
            tags:
                - userSessionIssuers
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteUserSessionIssuer
    /rpc/userSessionIssuers.get:
        get:
            description: Get a user_session_issuer by id or by slug. Provide exactly one.
            operationId: getUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer id.
                  in: query
                  name: id
                  schema:
                    description: The user_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The user_session_issuer slug.
                  in: query
                  name: slug
                  schema:
                    description: The user_session_issuer slug.
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getUserSessionIssuer userSessionIssuers
            tags:
                - userSessionIssuers
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: UserSessionIssuer
    /rpc/userSessionIssuers.getAttachImpact:
        get:
            description: 'Preview what attaching a user_session_issuer to an existing MCP server, toolset, or meta MCP server changes for its clients, before calling the matching update. Name exactly one of mcp_server_id, toolset_id, or meta_mcp_server_id; omit user_session_issuer_id to preview detaching the current issuer. Clients and sessions belong to an issuer, so any change of issuer requires the server''s clients to authorize again. Advisory only: the update does not require it. Requires the mcp:write access the matching update requires.'
            operationId: getUserSessionIssuerAttachImpact
            parameters:
                - allowEmptyValue: true
                  description: The MCP server the issuer would be attached to.
                  in: query
                  name: mcp_server_id
                  schema:
                    description: The MCP server the issuer would be attached to.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The toolset the issuer would be attached to.
                  in: query
                  name: toolset_id
                  schema:
                    description: The toolset the issuer would be attached to.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The meta MCP server the issuer would be attached to.
                  in: query
                  name: meta_mcp_server_id
                  schema:
                    description: The meta MCP server the issuer would be attached to.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: The issuer to attach. Omit to preview detaching the current issuer.
                  in: query
                  name: user_session_issuer_id
                  schema:
                    description: The issuer to attach. Omit to preview detaching the current issuer.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuerAttachImpact'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getAttachImpact userSessionIssuers
            tags:
                - userSessionIssuers
            x-speakeasy-name-override: getAttachImpact
            x-speakeasy-react-hook:
                name: UserSessionIssuerAttachImpact
    /rpc/userSessionIssuers.list:
        get:
            description: List user_session_issuers in the caller's project.
            operationId: listUserSessionIssuers
            parameters:
                - allowEmptyValue: true
                  description: 'Pagination cursor: id of the last item from the previous page.'
                  in: query
                  name: cursor
                  schema:
                    description: 'Pagination cursor: id of the last item from the previous page.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Optional MCP server or toolset resource ID used to authorize callers with resource-scoped mcp:write access. The resource must belong to the selected project.
                  in: query
                  name: mcp_resource_id
                  schema:
                    description: Optional MCP server or toolset resource ID used to authorize callers with resource-scoped mcp:write access. The resource must belong to the selected project.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUserSessionIssuersResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listUserSessionIssuers userSessionIssuers
            tags:
                - userSessionIssuers
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: UserSessionIssuers
    /rpc/userSessionIssuers.update:
        post:
            description: Update fields on an existing user_session_issuer.
            operationId: updateUserSessionIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateUserSessionIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuer'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateUserSessionIssuer userSessionIssuers
            tags:
                - userSessionIssuers
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateUserSessionIssuer
    /rpc/userSessionIssuersCimdClients.create:
        post:
            description: 'Allow an additional CIMD document URL on a user_session_issuer, beyond the preset catalog. The URL is validated for draft-ietf-oauth-client-id-metadata-document-02 §3 syntax and rejected outright when malformed. The document itself is deliberately NOT fetched here: a vendor''s host being briefly unreachable must not block configuration, and an advisory warning nobody can act on is not worth an outbound request on every write. Call verifyURL first to check that the document is reachable and valid.'
            operationId: createUserSessionIssuerCimdClient
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateUserSessionIssuerCimdClientForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/CreateUserSessionIssuerCimdClientResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createUserSessionIssuerCimdClient userSessionIssuersCimdClients
            tags:
                - userSessionIssuersCimdClients
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateUserSessionIssuerCimdClient
    /rpc/userSessionIssuersCimdClients.delete:
        delete:
            description: Remove a custom CIMD document URL from a user_session_issuer. New authorization requests from that client are denied immediately; sessions already issued to it are unaffected and continue until they expire.
            operationId: deleteUserSessionIssuerCimdClient
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer_cimd_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_issuer_cimd_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteUserSessionIssuerCimdClient userSessionIssuersCimdClients
            tags:
                - userSessionIssuersCimdClients
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteUserSessionIssuerCimdClient
    /rpc/userSessionIssuersCimdClients.get:
        get:
            description: Get a single custom CIMD document URL entry by id.
            operationId: getUserSessionIssuerCimdClient
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer_cimd_client id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session_issuer_cimd_client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UserSessionIssuerCimdClient'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getUserSessionIssuerCimdClient userSessionIssuersCimdClients
            tags:
                - userSessionIssuersCimdClients
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: UserSessionIssuerCimdClient
    /rpc/userSessionIssuersCimdClients.list:
        get:
            description: List the custom CIMD document URLs configured on a user_session_issuer. Does not include the preset catalog — call listPresets for that.
            operationId: listUserSessionIssuerCimdClients
            parameters:
                - allowEmptyValue: true
                  description: The user_session_issuer whose custom CIMD clients are listed.
                  in: query
                  name: user_session_issuer_id
                  required: true
                  schema:
                    description: The user_session_issuer whose custom CIMD clients are listed.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: 'Pagination cursor: id of the last item from the previous page.'
                  in: query
                  name: cursor
                  schema:
                    description: 'Pagination cursor: id of the last item from the previous page.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUserSessionIssuerCimdClientsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listUserSessionIssuerCimdClients userSessionIssuersCimdClients
            tags:
                - userSessionIssuersCimdClients
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: UserSessionIssuerCimdClients
    /rpc/userSessionIssuersCimdClients.listPresets:
        get:
            description: List Speakeasy's curated CIMD preset catalog. Issuers whose admission mode is 'presets' admit every enabled entry here automatically, with no per-issuer configuration. Presets mode is opt-in; an issuer without an explicit mode uses 'open' and evaluates this catalog only for its shadow measurement. The catalog is global and contains no tenant data.
            operationId: listCimdClientPresets
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListCimdClientPresetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listPresets userSessionIssuersCimdClients
            tags:
                - userSessionIssuersCimdClients
            x-speakeasy-name-override: listPresets
            x-speakeasy-react-hook:
                name: CimdClientPresets
    /rpc/userSessionIssuersCimdClients.verifyURL:
        post:
            description: 'Check that a CIMD document URL is reachable and spec-compliant, without saving anything. A pre-flight for create: the same fetch and validation the authorization server performs, reported in full so an operator can fix the URL before adding it. Every probe outcome is a 200 with verified true or false — errors are reserved for a malformed request, missing authorization, or an exceeded rate limit. Rate limited per project, since this is the one endpoint that makes Speakeasy fetch a caller-chosen URL.'
            operationId: verifyUserSessionIssuerCimdClientURL
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/VerifyURLRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/VerifyCimdURLResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: verifyURL userSessionIssuersCimdClients
            tags:
                - userSessionIssuersCimdClients
            x-speakeasy-name-override: verifyURL
            x-speakeasy-react-hook:
                name: VerifyUserSessionIssuerCimdClientURL
    /rpc/userSessions.list:
        get:
            description: List issued user_sessions in the caller's project. refresh_token_hash is never returned.
            operationId: listUserSessions
            parameters:
                - allowEmptyValue: true
                  description: Exact-match filter on subject URN.
                  in: query
                  name: subject_urn
                  schema:
                    description: Exact-match filter on subject URN.
                    type: string
                - allowEmptyValue: true
                  description: Filter by user_session_issuer id.
                  in: query
                  name: user_session_issuer_id
                  schema:
                    description: Filter by user_session_issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Filter by session status.
                  in: query
                  name: status
                  schema:
                    description: Filter by session status.
                    enum:
                        - active
                        - expired
                        - revoked
                        - all
                    type: string
                - allowEmptyValue: true
                  description: Filter by the connecting client id.
                  in: query
                  name: client_id
                  schema:
                    description: Filter by the connecting client id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: 'Pagination cursor: id of the last item from the previous page.'
                  in: query
                  name: cursor
                  schema:
                    description: 'Pagination cursor: id of the last item from the previous page.'
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Page size (default 50, max 100).
                  in: query
                  name: limit
                  schema:
                    description: Page size (default 50, max 100).
                    format: int64
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUserSessionsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listUserSessions userSessions
            tags:
                - userSessions
            x-speakeasy-name-override: list
            x-speakeasy-pagination:
                inputs:
                    - in: parameters
                      name: cursor
                      type: cursor
                outputs:
                    nextCursor: $.next_cursor
                type: cursor
            x-speakeasy-react-hook:
                name: UserSessions
    /rpc/userSessions.listFacets:
        get:
            description: List available user session facet values (clients, users, servers) in the caller's project.
            operationId: listUserSessionFacets
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListUserSessionFacetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listFacets userSessions
            tags:
                - userSessions
            x-speakeasy-name-override: listFacets
            x-speakeasy-react-hook:
                name: UserSessionFacets
    /rpc/userSessions.mint:
        post:
            description: 'Mint a user_session on behalf of the authenticated dashboard user, bound to an issuer-gated audience: an MCP server, a meta MCP server, or a legacy toolset without an mcp_servers wrapper. Exactly one of toolset_id, mcp_server_id, or meta_mcp_server_id must be provided. The minted JWT matches the shape /token would emit after a successful OAuth dance, so the runtime MCP gateway validates it through the same path as a real MCP client''s bearer.'
            operationId: mintUserSession
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/MintUserSessionRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MintUserSessionResponseBody'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: mintUserSession userSessions
            tags:
                - userSessions
            x-speakeasy-name-override: mint
            x-speakeasy-react-hook:
                name: MintUserSession
    /rpc/userSessions.revoke:
        post:
            description: Push the session's jti into the revocation cache and soft-delete the row.
            operationId: revokeUserSession
            parameters:
                - allowEmptyValue: true
                  description: The user_session id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The user_session id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: revokeUserSession userSessions
            tags:
                - userSessions
            x-speakeasy-name-override: revoke
            x-speakeasy-react-hook:
                name: RevokeUserSession
    /rpc/variations.createGlobal:
        post:
            description: 'Ensure the project-default (global) tool variation group exists, returning it. Idempotent: returns the existing group unchanged when present, otherwise creates it. Takes no parameters and only manages the single project-default group.'
            operationId: createGlobalToolVariationGroup
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ToolVariationGroupResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createGlobal variations
            tags:
                - variations
            x-speakeasy-name-override: createGlobal
            x-speakeasy-react-hook:
                name: CreateGlobalToolVariationGroup
    /rpc/variations.deleteGlobal:
        delete:
            description: Create or update a globally defined tool variation.
            operationId: deleteGlobalVariation
            parameters:
                - allowEmptyValue: true
                  description: The ID of the variation to delete
                  in: query
                  name: variation_id
                  required: true
                  schema:
                    description: The ID of the variation to delete
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeleteGlobalToolVariationResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: deleteGlobal variations
            tags:
                - variations
            x-speakeasy-name-override: deleteGlobal
            x-speakeasy-react-hook:
                name: deleteGlobalVariation
    /rpc/variations.listGlobal:
        get:
            description: List globally defined tool variations.
            operationId: listGlobalVariations
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListVariationsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listGlobal variations
            tags:
                - variations
            x-speakeasy-name-override: listGlobal
            x-speakeasy-react-hook:
                name: GlobalVariations
    /rpc/variations.listGroups:
        get:
            description: List the tool variation groups visible to the project. In v1 this returns the project-default group when it exists, or an empty list otherwise.
            operationId: listToolVariationGroups
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListToolVariationGroupsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listGroups variations
            tags:
                - variations
            x-speakeasy-name-override: listGroups
            x-speakeasy-react-hook:
                name: ToolVariationGroups
    /rpc/variations.upsertGlobal:
        post:
            description: Create or update a globally defined tool variation.
            operationId: upsertGlobalVariation
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpsertGlobalToolVariationForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/UpsertGlobalToolVariationResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: upsertGlobal variations
            tags:
                - variations
            x-speakeasy-name-override: upsertGlobal
            x-speakeasy-react-hook:
                name: UpsertGlobalVariation
    /rpc/widgets.create:
        post:
            description: Save a widget. Any member of the project can. The question is validated against the catalog, and the chart against the question, before it is stored.
            operationId: createWidget
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateWidgetRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Widget'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: createWidget widgets
            tags:
                - widgets
            x-speakeasy-name-override: create
            x-speakeasy-react-hook:
                name: CreateWidget
    /rpc/widgets.delete:
        delete:
            description: Delete a widget. Its creator can; deleting someone else's needs project write access.
            operationId: deleteWidget
            parameters:
                - allowEmptyValue: true
                  description: The widget to delete
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The widget to delete
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: deleteWidget widgets
            tags:
                - widgets
            x-speakeasy-name-override: delete
            x-speakeasy-react-hook:
                name: DeleteWidget
    /rpc/widgets.duplicate:
        post:
            description: 'Copy a widget into a new one the caller owns, named "<name> (copy)". This is how a widget is shared: a teammate duplicates it rather than editing it. Like every save, the copy is validated, so a broken widget cannot be duplicated until it is fixed.'
            operationId: duplicateWidget
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/DuplicateWidgetRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Widget'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: duplicateWidget widgets
            tags:
                - widgets
            x-speakeasy-name-override: duplicate
            x-speakeasy-react-hook:
                name: DuplicateWidget
    /rpc/widgets.get:
        get:
            description: Get one widget by id, validated as it is read.
            operationId: getWidget
            parameters:
                - allowEmptyValue: true
                  description: The widget to get
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The widget to get
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Widget'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: getWidget widgets
            tags:
                - widgets
            x-speakeasy-name-override: get
            x-speakeasy-react-hook:
                name: Widget
                type: query
    /rpc/widgets.list:
        get:
            description: List the project's widgets, most recently updated first. Each is validated as it is read, so a widget a catalog change broke says so.
            operationId: listWidgets
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListWidgetsResult'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: listWidgets widgets
            tags:
                - widgets
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: Widgets
                type: query
    /rpc/widgets.update:
        post:
            description: Replace a widget's name, description, dataset, query and visualization. Its creator can; editing someone else's needs project write access.
            operationId: updateWidget
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateWidgetRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Widget'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
            summary: updateWidget widgets
            tags:
                - widgets
            x-speakeasy-name-override: update
            x-speakeasy-react-hook:
                name: UpdateWidget
    /rpc/workloadIdentities.admitSubject:
        post:
            description: 'Admit a subject one of the trusted issuers asserts, and assign the agent it inherits its policy from. Both happen in one transaction: a subject admitted without an agent is refused at the token endpoint, so that half-configured state is not reachable. Requires workload:write.'
            operationId: admitWorkloadSubject
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AdmitWorkloadSubjectForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadIdentityPolicy'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: admitSubject workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: admitSubject
            x-speakeasy-react-hook:
                name: AdmitWorkloadSubject
    /rpc/workloadIdentities.createDeviceJoinToken:
        post:
            description: 'Create a single-use join token that enrolls one headless box with no platform identity as a workload assigned to an agent. The token is returned once and only its hash is kept. Only a person can create one: a key backed by a principal rather than a user is refused with 403 whatever its grants. Requires workload:write, and either owning the agent or agent:authorize on it, since an enrolled box acts under the agent''s policy.'
            operationId: createWorkloadDeviceJoinToken
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/CreateDeviceJoinTokenRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadDeviceJoinToken'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: createDeviceJoinToken workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: createDeviceJoinToken
            x-speakeasy-react-hook:
                name: CreateWorkloadDeviceJoinToken
    /rpc/workloadIdentities.getCustomFlows:
        get:
            description: 'Get the forms for trusting a platform the catalog does not list and allowing its workloads: registering and editing a trusted platform, and allowing and editing access. The same for every organization. Requires workload:read.'
            operationId: getWorkloadCustomFlows
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadCustomFlows'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: getCustomFlows workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: getCustomFlows
            x-speakeasy-react-hook:
                name: WorkloadCustomFlows
    /rpc/workloadIdentities.list:
        get:
            description: 'Read the whole trust policy: every trusted issuer and every admitted subject at the organization tier, plus the selected project''s tier when the caller names a project, with the agent each subject resolves to. Requires workload:read.'
            operationId: listWorkloadIdentities
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadIdentityPolicy'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: list workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: list
            x-speakeasy-react-hook:
                name: WorkloadIdentities
    /rpc/workloadIdentities.listPlatforms:
        get:
            description: 'List the platforms the catalog offers to trust without looking anything up, each with the policy that trusting it writes: the issuer and signing keys it is recognised by, the values the operator supplies, and the access rule it produces. How the setup is explained belongs to the dashboard. The same for every organization. Requires workload:read.'
            operationId: listWorkloadPlatforms
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadPlatformCatalog'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listPlatforms workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: listPlatforms
            x-speakeasy-react-hook:
                name: WorkloadPlatforms
    /rpc/workloadIdentities.listTokenEndpoints:
        get:
            description: 'List the token endpoints an external platform can be pointed at: one per user session issuer in shared mode, at the organization level and in each project, with the issuer it serves. Issuers this deployment does not serve a shared authorization server for are left out. Requires workload:read.'
            operationId: listWorkloadTokenEndpoints
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadTokenEndpoints'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: listTokenEndpoints workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: listTokenEndpoints
            x-speakeasy-react-hook:
                name: WorkloadTokenEndpoints
    /rpc/workloadIdentities.registerDevice:
        post:
            description: 'Enroll a device with its public key, redeeming a join token. No session or API key: the single-use join token is the credential, and an unknown, expired, or already redeemed token returns 401. A key already registered to another device returns 409, and an agent whose policy no longer grants org:device_agent_sync returns a failed precondition without spending the token. In one transaction the device''s key is registered, the device is admitted under the organization''s Speakeasy device issuer, and it is assigned the token''s agent.'
            operationId: registerWorkloadDevice
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RegisterDeviceRequestBody'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadDeviceRegistration'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            summary: registerDevice workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: registerDevice
    /rpc/workloadIdentities.registerIssuer:
        post:
            description: Trust an external issuer to vouch for workloads. Requires workload:write. Returns the whole policy, so a caller replaces its view rather than merging into it.
            operationId: registerWorkloadIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/RegisterWorkloadIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadIdentityPolicy'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: registerIssuer workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: registerIssuer
            x-speakeasy-react-hook:
                name: RegisterWorkloadIssuer
    /rpc/workloadIdentities.updateIssuer:
        post:
            description: Edit a trusted issuer's name, description, tags, or JWKS URI. Omitted fields are left unchanged. The issuer URL and the wildcard admission setting are fixed at registration. Requires workload:write. Returns the whole policy, so a caller replaces its view rather than merging into it.
            operationId: updateWorkloadIssuer
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateWorkloadIssuerForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadIdentityPolicy'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateIssuer workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: updateIssuer
            x-speakeasy-react-hook:
                name: UpdateWorkloadIssuer
    /rpc/workloadIdentities.updateSubject:
        post:
            description: Edit an admitted subject's label, tags, or assigned agent. Omitted fields are left unchanged. The subject, match kind, issuer, and tier are fixed at admission. The agent assignment is shared by every admission of the same subject under the same issuer, at either tier, so reassigning it through one admission reassigns it for both. Requires workload:write. Returns the whole policy, so a caller replaces its view rather than merging into it.
            operationId: updateWorkloadSubject
            parameters:
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/UpdateWorkloadSubjectForm'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadIdentityPolicy'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: updateSubject workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: updateSubject
            x-speakeasy-react-hook:
                name: UpdateWorkloadSubject
    /rpc/workloadIdentities.withdrawIssuer:
        delete:
            description: Stop trusting an issuer. Every subject admitted under it is withdrawn in the same transaction, so no admission can outlive the issuer it names. Requires workload:write.
            operationId: withdrawWorkloadIssuer
            parameters:
                - allowEmptyValue: true
                  description: The workload issuer id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The workload issuer id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadIdentityPolicy'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: withdrawIssuer workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: withdrawIssuer
            x-speakeasy-react-hook:
                name: WithdrawWorkloadIssuer
    /rpc/workloadIdentities.withdrawSubject:
        delete:
            description: Withdraw an admitted subject and its agent assignment, stopping it authenticating. Requires workload:write.
            operationId: withdrawWorkloadSubject
            parameters:
                - allowEmptyValue: true
                  description: The admission id.
                  in: query
                  name: id
                  required: true
                  schema:
                    description: The admission id.
                    format: uuid
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WorkloadIdentityPolicy'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: withdrawSubject workloadIdentities
            tags:
                - workloadIdentities
            x-speakeasy-name-override: withdrawSubject
            x-speakeasy-react-hook:
                name: WithdrawWorkloadSubject
    /v0.1/servers:
        get:
            operationId: discoverServers
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: include_deleted
                  schema:
                    default: false
                    type: boolean
                - allowEmptyValue: true
                  description: 'Unsupported: any supplied value returns 400'
                  in: query
                  name: updated_since
                  schema:
                    description: 'Unsupported: any supplied value returns 400'
                    type: string
                - allowEmptyValue: true
                  description: Search query; at most 1024 UTF-8 bytes, enforced by the server (not a character count).
                  in: query
                  name: search
                  schema:
                    description: Search query; at most 1024 UTF-8 bytes, enforced by the server (not a character count).
                    type: string
                - allowEmptyValue: true
                  description: Version filter; at most 1024 UTF-8 bytes, enforced by the server (not a character count).
                  in: query
                  name: version
                  schema:
                    description: Version filter; at most 1024 UTF-8 bytes, enforced by the server (not a character count).
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: cursor
                  schema:
                    maxLength: 8192
                    type: string
                - allowEmptyValue: true
                  in: query
                  name: limit
                  schema:
                    default: 25
                    format: int32
                    maximum: 100
                    minimum: 1
                    type: integer
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RegistryDiscoveryPage'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RegistryDiscoverydiscoverServersResponseBody'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RegistryDiscoverydiscoverServersResponseBody'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: discoverServers registryDiscovery
            tags:
                - registryDiscovery
            x-speakeasy-name-override: discoverServers
    /v0.1/servers/{serverName}/versions:
        get:
            operationId: discoverVersions
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: include_deleted
                  schema:
                    default: false
                    type: boolean
                - allowEmptyValue: true
                  description: 'Unsupported: any supplied value returns 400'
                  in: query
                  name: updated_since
                  schema:
                    description: 'Unsupported: any supplied value returns 400'
                    type: string
                - in: path
                  name: serverName
                  required: true
                  schema:
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RegistryDiscoveryPage'
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RegistryDiscoverydiscoverServersResponseBody'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RegistryDiscoverydiscoverServersResponseBody'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: discoverVersions registryDiscovery
            tags:
                - registryDiscovery
            x-speakeasy-name-override: discoverVersions
    /v0.1/servers/{serverName}/versions/{version}:
        get:
            operationId: discoverVersion
            parameters:
                - allowEmptyValue: true
                  in: query
                  name: include_deleted
                  schema:
                    default: false
                    type: boolean
                - allowEmptyValue: true
                  description: 'Unsupported: any supplied value returns 400'
                  in: query
                  name: updated_since
                  schema:
                    description: 'Unsupported: any supplied value returns 400'
                    type: string
                - in: path
                  name: serverName
                  required: true
                  schema:
                    type: string
                - in: path
                  name: version
                  required: true
                  schema:
                    type: string
                - allowEmptyValue: true
                  description: Session header
                  in: header
                  name: Gram-Session
                  schema:
                    description: Session header
                    type: string
                - allowEmptyValue: true
                  description: API Key header
                  in: header
                  name: Gram-Key
                  schema:
                    description: API Key header
                    type: string
                - allowEmptyValue: true
                  description: project header
                  in: header
                  name: Gram-Project
                  schema:
                    description: project header
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema: {}
                    description: OK response.
                "400":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RegistryDiscoverydiscoverServersResponseBody'
                    description: 'bad_request: request is invalid'
                "401":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unauthorized: unauthorized access'
                "403":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'forbidden: permission denied'
                "404":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/RegistryDiscoverydiscoverServersResponseBody'
                    description: 'not_found: resource not found'
                "409":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'conflict: resource already exists'
                "415":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unsupported_media: unsupported media type'
                "422":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'invalid: request contains one or more invalidation fields'
                "500":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'unexpected: an unexpected error occurred'
                "502":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Error'
                    description: 'gateway_error: an unexpected error occurred'
            security:
                - project_slug_header_Gram-Project: []
                  session_header_Gram-Session: []
                - apikey_header_Gram-Key: []
                  project_slug_header_Gram-Project: []
            summary: discoverVersion registryDiscovery
            tags:
                - registryDiscovery
            x-speakeasy-name-override: discoverVersion
components:
    schemas:
        AIDetection:
            type: object
            properties:
                access:
                    $ref: '#/components/schemas/AIToolAccessSummary'
                category:
                    type: string
                    description: 'Detection target category: harness (an AI coding tool), assistant (a general-purpose AI assistant or agent), or local_model (an open model run locally). From the catalog for ids it knows, otherwise as recorded at detection time.'
                    enum:
                        - harness
                        - assistant
                        - local_model
                device_count:
                    type: integer
                    description: Distinct devices, by hardware serial, this tool was detected on. Devices that report no serial are not counted.
                    format: int64
                display_name:
                    type: string
                    description: Human-readable name from the server's detection target catalog. Ids the catalog does not know — agent binaries can ship newer target lists — fall back to the raw id.
                first_seen:
                    type: string
                    description: When this tool was first detected anywhere in the organization.
                    format: date-time
                last_seen:
                    type: string
                    description: When this tool was most recently detected.
                    format: date-time
                signals:
                    type: array
                    items:
                        type: string
                        enum:
                            - installed
                            - running
                    description: 'Detection signals observed for this target across all reports: installed and/or running.'
                target_id:
                    type: string
                    description: Id of the detected AI tool as reported by agents (e.g. claude-code, ollama).
                user_count:
                    type: integer
                    description: Distinct enrolled users this tool was detected for.
                    format: int64
                versions:
                    type: array
                    items:
                        type: string
                    description: Unique non-empty detected versions for this target.
            description: One AI detection target aggregated across an organization's device-agent scan reports.
            required:
                - target_id
                - display_name
                - category
                - user_count
                - device_count
                - signals
                - versions
                - first_seen
                - last_seen
        AIDetectionUser:
            type: object
            properties:
                device_count:
                    type: integer
                    description: Distinct devices, by hardware serial, this tool was detected on for this user. Devices that report no serial are not counted.
                    format: int64
                first_seen:
                    type: string
                    description: When this tool was first detected for this user.
                    format: date-time
                last_seen:
                    type: string
                    description: When this tool was most recently detected for this user.
                    format: date-time
                signals:
                    type: array
                    items:
                        type: string
                        enum:
                            - installed
                            - running
                    description: 'Detection signals observed for this user: installed and/or running.'
                user_email:
                    type: string
                    description: Canonical email of the enrolled user the detections are attributed to. Linked alias emails are folded into it.
                versions:
                    type: array
                    items:
                        type: string
                    description: Unique non-empty detected versions for this user.
            description: 'One enrolled user a detection target was found for, with that user''s share of the organization''s scan reports: the evidence AIDetection carries for the whole organization, narrowed to one person.'
            required:
                - user_email
                - device_count
                - signals
                - versions
                - first_seen
                - last_seen
        AIIntegrationConfig:
            type: object
            properties:
                billing_mode:
                    type: string
                    description: 'How the provider org is billed: ''metered'' (pay-per-token; dashboard cost is real spend), ''flat_rate'' (subscription seats; cost is an estimate), or ''unknown''. Empty/omitted when not declared.'
                created_at:
                    type: string
                    description: ISO 8601 timestamp when the config was created. Omitted when no config is set.
                    format: date-time
                enabled:
                    type: boolean
                    description: Whether the provider integration is active.
                external_organization_id:
                    type: string
                    description: Provider scope identifier. Required for anthropic_compliance and codex_compliance (organization id) and chatgpt_compliance (ChatGPT workspace UUID); omitted for providers that do not need one.
                has_api_key:
                    type: boolean
                    description: Whether an API key is currently stored. The key itself is never returned.
                id:
                    type: string
                    description: Config ID. Omitted when no config is set for the provider.
                last_poll_error:
                    type: string
                    description: Stored error from the latest failed usage poll. Omitted unless the latest poll state failed.
                last_poll_failed_at:
                    type: string
                    description: ISO 8601 timestamp for the latest failed usage poll. Omitted unless a poll has failed.
                    format: date-time
                last_poll_status:
                    type: string
                    description: Derived status for the latest usage poll state. Omitted when no config is set for the provider.
                    enum:
                        - pending
                        - success
                        - failed
                last_polled_at:
                    type: string
                    description: ISO 8601 timestamp for the last successful usage poll. Omitted until a poll succeeds.
                    format: date-time
                next_poll_after:
                    type: string
                    description: ISO 8601 timestamp for the next scheduled usage poll. Omitted when no config is set.
                    format: date-time
                organization_id:
                    type: string
                    description: Organization the config belongs to.
                project_id:
                    type: string
                    description: Project used as the telemetry write target. Omitted when no config is set.
                provider:
                    type: string
                    description: AI provider identifier. Supported values include cursor, anthropic_compliance, codex_compliance, and chatgpt_compliance.
                updated_at:
                    type: string
                    description: ISO 8601 timestamp of the most recent change. Omitted when no config is set.
                    format: date-time
            description: Per-organization AI provider integration config. The provider API key is write-only; reads only expose whether a key is configured.
            required:
                - organization_id
                - provider
                - enabled
                - has_api_key
        AIIntegrationScheduleState:
            type: object
            properties:
                auto_paused_at:
                    type: string
                    description: ISO 8601 timestamp when the scheduler auto-paused the schedule after repeated provider rejections. Omitted unless auto-paused.
                    format: date-time
                consecutive_failures:
                    type: integer
                    description: Number of consecutive failed polls. Resets to zero on success or retry.
                    format: int64
                enabled:
                    type: boolean
                    description: Whether the user has this schedule enabled. Disabled schedules are skipped by the poller until re-enabled.
                last_poll_error:
                    type: string
                    description: Stored error from the schedule's latest failed poll. Omitted unless the latest poll failed.
                last_poll_failed_at:
                    type: string
                    description: ISO 8601 timestamp for the schedule's latest failed poll. Omitted unless a poll has failed.
                    format: date-time
                last_poll_success_at:
                    type: string
                    description: ISO 8601 timestamp for the schedule's last successful poll. Omitted until a poll succeeds.
                    format: date-time
                next_poll_after:
                    type: string
                    description: ISO 8601 timestamp for the schedule's next scheduled poll.
                    format: date-time
                schedule:
                    type: string
                    description: Schedule identifier (e.g. cursor, anthropic_compliance, anthropic_analytics_usage).
                status:
                    type: string
                    description: Derived status for the schedule's latest poll state.
                    enum:
                        - pending
                        - success
                        - failed
                        - auto_paused
                        - disabled
                stream:
                    type: string
                    description: Product-level identifier for the stream this schedule writes (e.g. cursor.usage, claude.chat.message). Omitted for legacy schedules with no registered stream.
                stream_kind:
                    type: string
                    description: Whether the stream carries discrete events or aggregated metrics. Omitted for legacy schedules with no registered stream.
                    enum:
                        - events
                        - metrics
            description: Scheduler state for one sync schedule (stream) of a provider integration.
            required:
                - schedule
                - enabled
                - status
                - consecutive_failures
        AIScanMatch:
            type: object
            properties:
                category:
                    type: string
                    description: 'Target category the agent scanned under: harness, assistant, or local_model. The server catalog''s category wins for targets it knows; this is what gets stored for the rest.'
                    enum:
                        - harness
                        - assistant
                        - local_model
                    maxLength: 32
                signal:
                    type: string
                    description: 'What the scan observed: installed or running.'
                    enum:
                        - installed
                        - running
                    maxLength: 16
                target_id:
                    type: string
                    description: 'Identifier of the matched target from the agent''s compiled-in list (e.g. claude-code, ollama). Stored as reported: an agent binary can ship a newer target list than the server catalog knows.'
                    minLength: 1
                    maxLength: 64
                version:
                    type: string
                    description: Installed version, when the scan could read one statically (e.g. from the app bundle's Info.plist).
                    maxLength: 64
            description: One AI detection target a device-agent scan matched.
            required:
                - target_id
                - category
                - signal
        AIToolAccessSummary:
            type: object
            properties:
                decision:
                    type: string
                    description: The effective organization decision behind state, which is not always the stored one. Absent rows read as unreviewed, so every tool has a value, and a tool that is not enforceable reads as unreviewed however it was decided — the stored decision is left untouched and takes effect again if the tool gains a verifiable gateway matcher.
                    enum:
                        - unreviewed
                        - approved
                        - blocked
                enforceable:
                    type: boolean
                    description: 'Whether a block on this tool would actually reach the gateway. False when the tool is linked only by a self-reported client name, or by nothing at all: the decision is recorded honestly and enforces nothing. Surfaced so an admin is never told a tool is blocked when it is not.'
                rationale:
                    type: string
                    description: Why the decision was made, when an admin gave a reason. Who recorded it and when are in the audit log rather than here, so there is one record of that and not two.
                state:
                    type: string
                    description: 'The effective decision as a table renders it: allowed and blocked mean an organization decision is recorded and in force, unreviewed means nothing is enforced — either because nobody has decided or because the tool is not enforceable, in which case a stored decision is projected as unreviewed. Read enforceable to tell the two apart.'
                    enum:
                        - allowed
                        - blocked
                        - unreviewed
            description: The enforcement verdict for one AI tool, computed server-side so a client renders wording without re-deriving it. state shares its vocabulary with the shadow MCP inventory's access summary, so one column describes both halves of the Shadow AI section.
            required:
                - state
                - decision
                - enforceable
        AccessMember:
            type: object
            properties:
                department:
                    type: string
                    description: Department name as reported by the identity provider.
                directory_groups:
                    type: array
                    items:
                        $ref: '#/components/schemas/AccessMemberDirectoryGroup'
                    description: The directory groups the member belongs to, by stable ID. Prefer this to groups when matching a member to a group, since two groups can share a name.
                directory_role_ids:
                    type: array
                    items:
                        type: string
                    description: Role IDs this member holds through directory role mappings. They follow the member's directory groups and attributes, so updating the member's roles does not change them.
                directory_role_sources:
                    type: array
                    items:
                        $ref: '#/components/schemas/AccessMemberDirectoryRoleSource'
                    description: 'Where each role in directory_role_ids comes from: one entry per directory role mapping that currently gives the member that role, so a role reached through two groups appears twice. Set by listMembers.'
                email:
                    type: string
                    description: Email address.
                groups:
                    type: array
                    items:
                        type: string
                    description: Names of the directory groups the member belongs to.
                id:
                    type: string
                    description: User ID.
                in_directory:
                    type: boolean
                    description: Whether the member has a live profile in the organization's synced directory. Set by listMembers.
                joined_at:
                    type: string
                    description: When the member joined the organization.
                    format: date-time
                name:
                    type: string
                    description: Display name.
                photo_url:
                    type: string
                    description: Avatar URL.
                principal_urn:
                    type: string
                    description: Canonical principal URN for this member.
                role_ids:
                    type: array
                    items:
                        type: string
                    description: Role IDs assigned directly to this member.
            required:
                - id
                - principal_urn
                - name
                - email
                - role_ids
                - directory_role_ids
                - joined_at
        AccessMemberDirectoryGroup:
            type: object
            properties:
                id:
                    type: string
                    description: Directory group identifier.
                    format: uuid
                name:
                    type: string
                    description: Directory group name.
            description: A live directory group a member belongs to.
            required:
                - id
                - name
        AccessMemberDirectoryRoleSource:
            type: object
            properties:
                directory_group_id:
                    type: string
                    description: The mapped directory group. Set when source_kind is group.
                    format: uuid
                mapping_id:
                    type: string
                    description: The directory role mapping.
                    format: uuid
                role_id:
                    type: string
                    description: The role the mapping grants.
                source_kind:
                    type: string
                    description: 'What the mapping matches: a directory group or an attribute value.'
                    enum:
                        - group
                        - attribute
            description: 'One directory role mapping that currently gives a member a role. Attribute keys and values are not included: they can carry personal directory data, so admins resolve them through listDirectoryRoleMappings by mapping_id.'
            required:
                - role_id
                - mapping_id
                - source_kind
        AccessibleMCPServer:
            type: object
            properties:
                id:
                    type: string
                    description: Unique server identifier.
                    format: uuid
                name:
                    type: string
                    description: Display name of the server.
                project_id:
                    type: string
                    description: Project the server belongs to.
                    format: uuid
                project_slug:
                    type: string
                    description: Slug of the project the server belongs to.
                slug:
                    type: string
                    description: URL-safe server slug.
            description: An MCP server an identity is authorized to reach.
            required:
                - id
                - name
                - slug
                - project_id
                - project_slug
        AccessibleSkill:
            type: object
            properties:
                display_name:
                    type: string
                    description: Human-readable display name, when set.
                id:
                    type: string
                    description: Unique skill identifier.
                    format: uuid
                name:
                    type: string
                    description: Internal name of the skill.
                project_id:
                    type: string
                    description: Project the skill belongs to.
                    format: uuid
                project_slug:
                    type: string
                    description: Slug of the project the skill belongs to.
            description: A skill an identity is authorized to reach.
            required:
                - id
                - name
                - project_id
                - project_slug
        AcknowledgeRiskPolicyChallengeRequestBody:
            type: object
            properties:
                ack_token:
                    type: string
                    description: Acknowledgement token generated when a warn policy challenged the action.
            required:
                - ack_token
        AcknowledgeRiskPolicyChallengeResponseBody:
            type: object
            properties:
                acknowledged:
                    type: boolean
                    description: Whether the challenge is now acknowledged.
                expires_at:
                    type: string
                    description: RFC3339 time until which the acknowledgement suppresses re-challenge.
                    format: date-time
                policy_name:
                    type: string
                    description: The policy that issued the warning.
            required:
                - acknowledged
        ActivatePrescriptionRequestBody:
            type: object
            properties:
                definition:
                    type: string
                expected_version:
                    type: integer
                    format: int64
                expires_at:
                    type: string
                    format: date-time
                external_note:
                    type: string
                    maxLength: 500
                internal_note:
                    type: string
                    maxLength: 4000
                operation_id:
                    type: string
                    format: uuid
                organization_id:
                    type: string
                prescription_id:
                    type: string
                    format: uuid
                principal_input:
                    type: string
                principal_kind:
                    type: string
                resource_kind:
                    type: string
                resource_scope:
                    type: string
                    enum:
                        - all
                        - selected
                selected_resource_inputs:
                    type: array
                    items:
                        type: string
                    maxItems: 1000
                start_mode:
                    type: string
                    enum:
                        - now
                        - at
                starts_at:
                    type: string
                    format: date-time
            required:
                - organization_id
                - operation_id
                - resource_scope
                - start_mode
                - internal_note
                - external_note
        ActorAttribute:
            type: object
            properties:
                description:
                    type: string
                    description: Human-readable description of the attribute.
                name:
                    type: string
                    description: Attribute name as used in target conditions, e.g. department_name.
                type:
                    type: string
                    description: 'Value kind: a scalar string or a list of strings.'
                    enum:
                        - string
                        - list
            required:
                - name
                - type
                - description
        AddDashboardWidgetRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The dashboard to place it on
                    format: uuid
                widget_id:
                    type: string
                    description: The widget to place
                    format: uuid
            required:
                - id
                - widget_id
        AddDeploymentPackageForm:
            type: object
            properties:
                name:
                    type: string
                    description: The name of the package.
                version:
                    type: string
                    description: The version of the package.
            required:
                - name
        AddExternalMCPForm:
            type: object
            properties:
                name:
                    type: string
                    description: The display name for the external MCP server.
                    example: My Slack Integration
                registry_id:
                    type: string
                    description: The ID of the external MCP registry the server is from.
                    format: uuid
                registry_server_specifier:
                    type: string
                    description: The canonical server name used to look up the server in the registry (e.g., 'slack', 'ai.exa/exa').
                    example: slack
                selected_remotes:
                    type: array
                    items:
                        type: string
                    description: URLs of the remotes to use for this MCP server. If not provided, the backend will auto-select based on transport type preference.
                    example:
                        - https://mcp.example.com/sse
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - name
                - slug
                - registry_server_specifier
        AddExternalOAuthServerForm:
            type: object
            properties:
                external_oauth_server:
                    $ref: '#/components/schemas/ExternalOAuthServerForm'
                project_slug_input:
                    type: string
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - slug
                - external_oauth_server
        AddExternalOAuthServerRequestBody:
            type: object
            properties:
                external_oauth_server:
                    $ref: '#/components/schemas/ExternalOAuthServerForm'
            required:
                - external_oauth_server
        AddFunctionsForm:
            type: object
            properties:
                asset_id:
                    type: string
                    description: The ID of the functions file from the assets service.
                memory_mib:
                    type: integer
                    description: The amount of memory in MiB to allocate for the function (1 MiB = 1024 * 1024 bytes).
                    format: int64
                    minimum: 0
                    maximum: 4096
                name:
                    type: string
                    description: The functions file display name.
                runtime:
                    type: string
                    description: 'The runtime to use when executing functions. Allowed values are: nodejs:22, nodejs:24, python:3.12.'
                scale:
                    type: integer
                    description: The number of instances to scale the function to.
                    format: int64
                    minimum: 0
                    maximum: 5
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - asset_id
                - name
                - slug
                - runtime
        AddMetaMcpMemberForm:
            type: object
            properties:
                mcp_server_id:
                    type: string
                    description: The ID of the MCP server to add as a member
                    format: uuid
                meta_mcp_server_id:
                    type: string
                    description: The ID of the meta MCP server
                    format: uuid
                sort_order:
                    type: integer
                    description: The position of the member in the ordered member set. Defaults to 0.
                    format: int64
            description: Form for adding an MCP server to a meta MCP server's member set.
            required:
                - meta_mcp_server_id
                - mcp_server_id
        AddOpenAPIv3DeploymentAssetForm:
            type: object
            properties:
                asset_id:
                    type: string
                    description: The ID of the uploaded asset.
                name:
                    type: string
                    description: The name to give the document as it will be displayed in UIs.
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - asset_id
                - name
                - slug
        AddOpenAPIv3SourceForm:
            type: object
            properties:
                asset_id:
                    type: string
                    description: The ID of the uploaded asset.
                name:
                    type: string
                    description: The name to give the document as it will be displayed in UIs.
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - asset_id
                - name
                - slug
        AddOpenAPIv3SourceResult:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/Deployment'
        AddPackageForm:
            type: object
            properties:
                name:
                    type: string
                    description: The name of the package to add.
                version:
                    type: string
                    description: The version of the package to add. If omitted, the latest version will be used.
            required:
                - name
        AddPluginServerForm:
            type: object
            properties:
                display_name:
                    type: string
                    description: Display name for the server. Defaults to the backing server name when omitted.
                mcp_server_id:
                    type: string
                    description: Speakeasy MCP server ID. Provide exactly one backend ID; a hosted MCP server's toolset_id and mcp_server_id may both be sent when equal.
                    format: uuid
                meta_mcp_server_id:
                    type: string
                    description: MCP gateway ID. Provide exactly one backend ID.
                    format: uuid
                plugin_id:
                    type: string
                    format: uuid
                policy:
                    type: string
                    default: required
                    enum:
                        - required
                        - optional
                sort_order:
                    type: integer
                    default: 0
                    format: int32
                toolset_id:
                    type: string
                    description: Speakeasy toolset ID. Provide exactly one of toolset_id, mcp_server_id, or meta_mcp_server_id; a hosted MCP server's toolset_id and mcp_server_id may both be sent when equal.
                    format: uuid
            required:
                - plugin_id
        AddSkillVersionRequestBody:
            type: object
            properties:
                content:
                    type: string
                    description: The complete uploaded SKILL.md content. Handlers enforce a maximum size of 65,536 UTF-8 bytes.
                derived_from_version_id:
                    type: string
                    description: The optional source version this new version was derived from.
                    format: uuid
                expected_latest_version_id:
                    type: string
                    description: The version the caller believes is current. When set, the write is rejected as a conflict if the skill has moved on.
                    format: uuid
                id:
                    type: string
                    description: The skill ID.
                    format: uuid
            required:
                - id
                - content
        AddToolMetadataBatchResult:
            type: object
            properties:
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolMetadata'
                    description: The tool metadata entries created by this call
            description: Result of a strictly additive tool metadata batch insert.
            required:
                - tools
        AdminBulkUpdateAccountTypeResult:
            type: object
            properties:
                missing_ids:
                    type: array
                    items:
                        type: string
                    description: IDs from the request that matched no organization, deduplicated and in request order. Nothing was written for these.
                updated_ids:
                    type: array
                    items:
                        type: string
                    description: 'IDs of the organizations whose account type was set. Order is unspecified: do not rely on it.'
            description: Outcome of a bulk account type change.
            required:
                - updated_ids
                - missing_ids
        AdminChatAnalysisSettings:
            type: object
            properties:
                business_memory_daily_cap:
                    type: integer
                    format: int64
                business_memory_enabled:
                    type: boolean
                is_default:
                    type: boolean
                organization_id:
                    type: string
                work_units_daily_cap:
                    type: integer
                    format: int64
                work_units_enabled:
                    type: boolean
            required:
                - organization_id
                - work_units_enabled
                - work_units_daily_cap
                - business_memory_enabled
                - business_memory_daily_cap
                - is_default
        AdminChatAnalysisTriggerResult:
            type: object
            properties:
                projects_signaled:
                    type: integer
                    format: int64
            required:
                - projects_signaled
        AdminCustomerUsage:
            type: object
            properties:
                account_type:
                    type: string
                    enum:
                        - enterprise
                        - pro
                        - payg
                current_cycle:
                    $ref: '#/components/schemas/MeterUsageWindow'
                error:
                    type: string
                    description: Why this organization's usage could not be read. products is empty when set.
                name:
                    type: string
                organization_id:
                    type: string
                previous_period:
                    $ref: '#/components/schemas/MeterUsageWindow'
                previous_period_costs:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminCustomerUsageProductCost'
                    description: Per-product costs over previous_period. Empty when previous_period is absent.
                products:
                    type: array
                    items:
                        $ref: '#/components/schemas/SpendProduct'
                    description: 'The three metered products in stable display order. quantity and cost_usd cover the current cycle to date. buckets are the chart buckets for the requested interval: billing cycles for monthly, days or Monday-start weeks of the current cycle otherwise.'
                slug:
                    type: string
                trial_state:
                    type: string
                    enum:
                        - none
                        - running
                        - ending_soon
                        - expired
                        - demoted
                        - converted
                window:
                    $ref: '#/components/schemas/MeterUsageWindow'
            description: One paying organization's estimated usage at current PAYG list prices.
            required:
                - organization_id
                - name
                - slug
                - account_type
                - trial_state
                - current_cycle
                - window
                - products
                - previous_period_costs
        AdminCustomerUsageProductCost:
            type: object
            properties:
                cost_usd:
                    type: string
                    description: Exact estimated cost at current PAYG list prices
                product_id:
                    type: string
                    enum:
                        - agent_session_storage
                        - risk_content_scans
                        - mcp_egress
            required:
                - product_id
                - cost_usd
        AdminCustomerUsageResponse:
            type: object
            properties:
                currency:
                    type: string
                    enum:
                        - USD
                customers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminCustomerUsage'
                    description: Every qualifying organization, ordered by name
                interval:
                    type: string
                    enum:
                        - daily
                        - weekly
                        - monthly
                pricing_basis:
                    type: string
                    enum:
                        - current_payg_list_price
                queried_at:
                    type: string
                    description: Retrieval timestamp used to distinguish current and future buckets
                    format: date-time
            required:
                - interval
                - currency
                - pricing_basis
                - queried_at
                - customers
        AdminDashboardRedirect:
            type: object
            properties:
                cache_control:
                    type: string
                location:
                    type: string
            required:
                - location
                - cache_control
        AdminDeviceAgentCell:
            type: object
            properties:
                day:
                    type: string
                    description: The UTC day, as YYYY-MM-DD.
                    format: date
                machines:
                    type: integer
                    description: Machines whose agent polled on this day, by the last version each reported that day.
                    format: int64
                organization_id:
                    type: string
                    description: The organization ID.
                version:
                    type: string
                    description: The speakeasyd version, or empty for the organization-day total.
            description: One (organization, day, version) cell of the device agent grid.
            required:
                - organization_id
                - day
                - version
                - machines
        AdminExternalMcpMigrationCandidate:
            type: object
            properties:
                action:
                    type: string
                    description: 'What running the candidate does: migrate switches its server in place to a remote MCP server; delete removes the toolset because nothing is left to migrate, along with any server, addresses and plugin entries it still owns. A server already migrated in place is kept and keeps working.'
                    enum:
                        - migrate
                        - delete
                blockers:
                    type: array
                    items:
                        type: string
                    description: Why the server cannot be migrated. Empty when it can.
                delete_reasons:
                    type: array
                    items:
                        type: string
                    description: Why the candidate is deleted rather than migrated. Empty when it migrates.
                mcp_slug:
                    type: string
                    description: The slug in the server's /mcp/<slug> address. Absent when the server has none.
                organization_id:
                    type: string
                    description: Organization ID.
                organization_name:
                    type: string
                    description: Organization name.
                organization_slug:
                    type: string
                    description: Organization slug.
                project_id:
                    type: string
                    description: Project ID.
                    format: uuid
                project_name:
                    type: string
                    description: Project name.
                project_slug:
                    type: string
                    description: Project slug.
                remote_url:
                    type: string
                    description: The attachment's upstream URL. Absent when the server proxies several.
                replacement_url:
                    type: string
                    description: 'The upstream URL the server will dial as a remote MCP server: the one resource its signed-in sessions recorded, otherwise the attachment''s URL without unfilled template query parameters.'
                server_name:
                    type: string
                    description: The server's display name.
                sign_in_provider:
                    type: string
                    description: The server's user session issuer and the upstream authorization servers behind it. Absent when the server has none.
                tool_calls:
                    type: integer
                    description: Tool calls over the last tool_call_window_days. Absent when telemetry is unavailable.
                    format: int64
                toolset_id:
                    type: string
                    description: The toolset behind the server.
                    format: uuid
                warnings:
                    type: array
                    items:
                        type: string
                    description: What migrating the server drops or cannot carry over. Warnings do not stop it.
            description: 'A toolset backed by an external MCP attachment, with what running it does: migrate its server in place, or delete it.'
            required:
                - toolset_id
                - organization_id
                - organization_name
                - organization_slug
                - project_id
                - project_name
                - project_slug
                - server_name
                - action
                - delete_reasons
                - blockers
                - warnings
        AdminExternalMcpMigrationOutcome:
            type: object
            properties:
                action:
                    type: string
                    description: What the run did, or would do, with the candidate. Absent when it was not attempted.
                    enum:
                        - migrate
                        - delete
                actions:
                    type: array
                    items:
                        type: string
                    description: Each change, in order.
                mcp_server_id:
                    type: string
                    description: The server, which keeps its ID.
                    format: uuid
                mcp_slug:
                    type: string
                    description: The server's /mcp/<slug> address. Migrating keeps it; deleting a server the toolset still owns removes it.
                migration_status:
                    type: string
                    description: migrated, deleted and previewed completed every step; deleted removed the toolset and any server it still owned, so mcp_server_id, remote_mcp_server_id and remote_url are absent; failed left the server unchanged; not_attempted follows an earlier failure.
                    enum:
                        - migrated
                        - deleted
                        - previewed
                        - failed
                        - not_attempted
                reason:
                    type: string
                    description: Why the server failed or was not attempted.
                remote_mcp_server_id:
                    type: string
                    description: The remote MCP source the server proxies once migrated. Absent when the server failed; a preview's source is rolled back.
                    format: uuid
                remote_url:
                    type: string
                    description: The upstream URL the server dials once migrated. Absent when the server failed.
                toolset_id:
                    type: string
                    description: The candidate's toolset.
                    format: uuid
                warnings:
                    type: array
                    items:
                        type: string
                    description: What the migration could not carry over.
            description: What happened, or in a preview what would happen, to one server.
            required:
                - toolset_id
                - migration_status
                - actions
                - warnings
        AdminExternalMcpMigrationRequest:
            type: object
            properties:
                toolset_id:
                    type: string
                    description: The candidate's toolset.
                    format: uuid
            required:
                - toolset_id
        AdminExternalMcpMigrationResult:
            type: object
            properties:
                outcomes:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminExternalMcpMigrationOutcome'
                    description: One outcome per requested server, in request order.
            required:
                - outcomes
        AdminHookClientOrganization:
            type: object
            properties:
                id:
                    type: string
                    description: The organization ID.
                name:
                    type: string
                    description: The organization name. Absent when the organization no longer exists.
                slug:
                    type: string
                    description: The organization slug. Absent when the organization no longer exists.
            description: An organization that appears in any of the fleet health grids.
            required:
                - id
        AdminHookClientSessionCell:
            type: object
            properties:
                client:
                    type: string
                    description: curl for the legacy curl hooks, a hooks binary version, binary for binary rows that record no version, or empty for the organization-day total.
                day:
                    type: string
                    description: The UTC day, as YYYY-MM-DD.
                    format: date
                machines:
                    type: integer
                    description: Machines that started a session on this day.
                    format: int64
                machines_all:
                    type: integer
                    description: Machines that sent any hook on this day, including sessions started earlier.
                    format: int64
                organization_id:
                    type: string
                    description: The organization ID.
                sessions:
                    type: integer
                    description: Sessions started on this day.
                    format: int64
            description: One (organization, day, client) cell of the hook client grid. Sessions count on the UTC day of their first hook.
            required:
                - organization_id
                - day
                - client
                - machines
                - sessions
                - machines_all
        AdminHookClientsResult:
            type: object
            properties:
                device_agents:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminDeviceAgentCell'
                    description: The device agent version grid. Empty for days before versions were recorded.
                from_cache:
                    type: boolean
                    description: True when the grids came from the cache rather than a fresh ClickHouse read. Cached grids last 24 hours and refresh in the background once an hour old.
                inference:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminInferenceHookCell'
                    description: The inference hook traffic grid.
                organizations:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminHookClientOrganization'
                    description: Every organization that appears in any grid.
                queried_at:
                    type: string
                    description: When the grids were read from ClickHouse.
                    format: date-time
                sessions:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminHookClientSessionCell'
                    description: The hook client grid, new sessions only.
                window_days:
                    type: integer
                    description: Length of the window in days.
                    format: int64
            description: 'Fleet-wide client health grids over a fixed window: hook clients, inference hook traffic and device agent versions.'
            required:
                - window_days
                - queried_at
                - from_cache
                - organizations
                - sessions
                - inference
                - device_agents
        AdminInferenceHookCell:
            type: object
            properties:
                day:
                    type: string
                    description: The UTC day, as YYYY-MM-DD.
                    format: date
                events:
                    type: integer
                    description: Stored transcript messages.
                    format: int64
                organization_id:
                    type: string
                    description: The organization ID.
                sessions:
                    type: integer
                    description: Distinct sessions.
                    format: int64
                surface:
                    type: string
                    description: The Claude app that sent the transcript, or empty for the organization-day total.
                users:
                    type: integer
                    description: Distinct users.
                    format: int64
            description: One (organization, day, surface) cell of the inference hook grid.
            required:
                - organization_id
                - day
                - surface
                - users
                - events
                - sessions
        AdminInferenceKey:
            type: object
            properties:
                cause_diagnostics:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminInferenceKeyCause'
                credits_used:
                    type: number
                    description: Credits spent this month in USD.
                    format: double
                disable_causes:
                    type: array
                    items:
                        type: string
                    description: Active internal disable causes. Omitted for legacy unclassified rows.
                disable_causes_classified:
                    type: boolean
                    description: Whether disable_causes is classified, including an explicitly empty cause set.
                disabled:
                    type: boolean
                key_type:
                    type: string
                monthly_credits:
                    type: integer
                    format: int64
            description: Current usage and configured state for one materialized platform-managed OpenRouter key, without key material or provider identifiers.
            required:
                - key_type
                - credits_used
                - monthly_credits
                - disabled
                - disable_causes_classified
        AdminInferenceKeyCause:
            type: object
            properties:
                blocked_reason:
                    type: string
                cause:
                    type: string
                description:
                    type: string
                removable:
                    type: boolean
            required:
                - cause
                - description
                - removable
        AdminInferenceKeyLimit:
            type: object
            properties:
                key_type:
                    type: string
                monthly_credits:
                    type: integer
                    format: int64
            description: The configured monthly limit for one materialized platform-managed OpenRouter key.
            required:
                - key_type
                - monthly_credits
        AdminInferenceKeyRepairResult:
            type: object
            properties:
                key:
                    $ref: '#/components/schemas/AdminInferenceKeyRepairState'
                reconciliation_pending:
                    type: boolean
            required:
                - key
                - reconciliation_pending
        AdminInferenceKeyRepairState:
            type: object
            properties:
                cause_diagnostics:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminInferenceKeyCause'
                disable_causes:
                    type: array
                    items:
                        type: string
                disable_causes_classified:
                    type: boolean
                disabled:
                    type: boolean
                key_type:
                    type: string
                monthly_credits:
                    type: integer
                    format: int64
            description: Committed local key policy, without provider usage or credentials.
            required:
                - key_type
                - monthly_credits
                - disabled
                - disable_causes
                - disable_causes_classified
                - cause_diagnostics
        AdminInferenceSpendMonth:
            type: object
            properties:
                period_end:
                    type: string
                    description: Exclusive end of the UTC calendar month.
                    format: date
                period_start:
                    type: string
                    format: date
                spend_usd:
                    type: string
            required:
                - period_start
                - period_end
                - spend_usd
        AdminListExternalMcpMigrationCandidatesResult:
            type: object
            properties:
                candidates:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminExternalMcpMigrationCandidate'
                    description: Every candidate across all organizations.
                tool_call_window_days:
                    type: integer
                    description: Days of tool calls each candidate's tool_calls covers.
                    format: int64
            required:
                - candidates
                - tool_call_window_days
        AdminListOrganizationActivityResult:
            type: object
            properties:
                logs:
                    type: array
                    items:
                        $ref: '#/components/schemas/AuditLog'
                    description: List of organization activity.
                next_cursor:
                    type: string
                    description: Cursor for the next page of results.
            required:
                - logs
        AdminListOrganizationMembersResult:
            type: object
            properties:
                members:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOrganizationMember'
                    description: The members of the organization.
            required:
                - members
        AdminListOrganizationProjectsResult:
            type: object
            properties:
                projects:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminProject'
                    description: The projects belonging to the organization.
            required:
                - projects
        AdminListOrganizationsResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted. Omitted in offset mode.
                organizations:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOrganization'
                    description: The page of organizations.
                total:
                    type: integer
                    description: Number of organizations matching the filters, before paging.
                    format: int64
            required:
                - organizations
                - total
        AdminListProjectMcpServersResult:
            type: object
            properties:
                mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminMcpServer'
                    description: The project's MCP servers, oldest first.
            required:
                - mcp_servers
        AdminListUserOrganizationsResult:
            type: object
            properties:
                limit:
                    type: integer
                    format: int64
                organizations:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminUserOrganization'
                page:
                    type: integer
                    format: int64
                total:
                    type: integer
                    format: int64
            required:
                - organizations
                - total
                - page
                - limit
        AdminListUsersResult:
            type: object
            properties:
                limit:
                    type: integer
                    format: int64
                page:
                    type: integer
                    format: int64
                total:
                    type: integer
                    format: int64
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminUser'
            required:
                - users
                - total
                - page
                - limit
        AdminMcpServer:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    description: The mcp_servers row ID, or the toolset ID for a toolset-only server.
                name:
                    type: string
                    description: Display name of the server.
                source:
                    type: string
                    description: What backs the server. toolset_only is a toolset with no mcp_servers row.
                    enum:
                        - toolset
                        - remote
                        - tunneled
                        - unproxied
                        - toolset_only
                url:
                    type: string
                    description: The URL clients connect to. Omitted when the server has no routable address.
                visibility:
                    type: string
                    description: The visibility of the server.
                    enum:
                        - disabled
                        - private
                        - public
            description: 'MCP server surfaced to admin operators. Covers both server models: mcp_servers rows and mcp_enabled toolsets that no mcp_servers row points at.'
            required:
                - id
                - name
                - visibility
                - source
                - created_at
        AdminMcpServerHealth:
            type: object
            properties:
                correlation:
                    $ref: '#/components/schemas/AdminMcpServerHealthCorrelation'
                legacy_auth:
                    type: string
                    description: Legacy authentication in force. Set only when the server has no user session issuer.
                    enum:
                        - external_oauth
                        - oauth_proxy
                        - gram_private
                server:
                    $ref: '#/components/schemas/AdminMcpServerHealthServer'
                user_session_issuer:
                    $ref: '#/components/schemas/AdminMcpServerHealthUserSessionIssuer'
            description: 'Health of one MCP server: its authentication configuration and session counts. Tool calls are read separately through getMcpServerToolCalls. Never carries secrets, error text, subjects, users or emails.'
            required:
                - server
                - correlation
        AdminMcpServerHealthCorrelation:
            type: object
            properties:
                mcp_server_id:
                    type: string
                    description: The mcp_servers row ID stamped on proxied calls. Absent for toolset-only servers.
                toolset_slug:
                    type: string
                    description: The toolset slug stamped on hosted calls. Absent when the server has no toolset or several live servers share it.
                url_slug:
                    type: string
                    description: The slug in the server's /mcp/<slug> URL, matched against hook-observed calls. Absent when the server has no slug.
            description: The identities telemetry is matched on for this server.
        AdminMcpServerHealthRemoteSessionClient:
            type: object
            properties:
                attachment_scope:
                    type: string
                    description: Where the row is attached. global is platform-wide.
                    enum:
                        - project
                        - organization
                        - global
                grant_types:
                    type: array
                    items:
                        type: string
                    description: Grant types recorded for the client.
                has_identity_provider_connection:
                    type: boolean
                    description: Whether the client is backed by an identity provider connection.
                id:
                    type: string
                    description: The remote session client ID.
                issuer:
                    $ref: '#/components/schemas/AdminMcpServerHealthRemoteSessionIssuer'
                registration:
                    type: string
                    description: How the client was registered upstream.
                    enum:
                        - cimd
                        - dcr
                        - static
                scope:
                    type: array
                    items:
                        type: string
                    description: Scopes recorded for the client.
                sessions:
                    $ref: '#/components/schemas/AdminMcpServerHealthRemoteSessions'
                token_endpoint_auth_method:
                    type: string
                    description: The client's token endpoint auth method. Absent when unset.
                    enum:
                        - client_secret_basic
                        - client_secret_post
                        - none
                        - private_key_jwt
                upstream_rejected_at:
                    type: string
                    description: When the upstream last rejected the client's credentials.
                    format: date-time
            description: A remote session client attached to the issuer, with its upstream issuer and session counts. Never carries secrets.
            required:
                - id
                - registration
                - scope
                - grant_types
                - has_identity_provider_connection
                - attachment_scope
                - issuer
                - sessions
        AdminMcpServerHealthRemoteSessionIssuer:
            type: object
            properties:
                attachment_scope:
                    type: string
                    description: Where the row is attached. global is platform-wide.
                    enum:
                        - project
                        - organization
                        - global
                cimd_supported:
                    type: boolean
                    description: Whether the issuer accepts a Client ID Metadata Document URL as client_id.
                id:
                    type: string
                    description: The remote session issuer ID.
                issuer:
                    type: string
                    description: The upstream issuer URL.
                jwks_last_error_at:
                    type: string
                    description: Last failed JWK Set fetch.
                    format: date-time
                metadata_fetched_at:
                    type: string
                    description: Last successful metadata discovery.
                    format: date-time
                metadata_last_error_at:
                    type: string
                    description: Last failed metadata discovery.
                    format: date-time
                name:
                    type: string
                    description: Display name of the issuer.
                networking:
                    type: string
                    description: Whether Speakeasy reaches the issuer over the public internet or a tunnel.
                    enum:
                        - public
                        - tunneled
                oidc:
                    type: boolean
                    description: Whether the issuer is treated as an OpenID Connect provider.
                omit_scope_fallback:
                    type: boolean
                    description: Whether a login with no other scope source sends no scope instead of the issuer's whole scopes_supported. Absent when unset, which behaves as false.
                passthrough:
                    type: boolean
                    description: Whether upstream tokens are passed through to the server.
                pkce:
                    type: string
                    description: PKCE support classified from the issuer's advertised code challenge methods.
                    enum:
                        - supported
                        - unsupported
                        - none
                        - uncaptured
                scope_override:
                    type: array
                    items:
                        type: string
                    description: Operator-pinned scopes sent in place of the discovered set. Absent when unset.
                slug:
                    type: string
                    description: The issuer slug.
            description: The upstream authorization server a remote session client is registered with. Error columns are exposed as timestamps only.
            required:
                - id
                - slug
                - issuer
                - attachment_scope
                - networking
                - oidc
                - passthrough
                - pkce
                - cimd_supported
        AdminMcpServerHealthRemoteSessions:
            type: object
            properties:
                first_linked_at:
                    type: string
                    description: When the first upstream session was linked.
                    format: date-time
                linked_subjects:
                    type: integer
                    description: Distinct users holding a live upstream session.
                    format: int64
                reauthorizations:
                    type: integer
                    description: Fresh authorizations beyond each session's first.
                    format: int64
                validation_status_counts:
                    type: object
                    description: 'Live sessions per last validation status: valid, rejected_by_member, inactive or unknown. Sessions never validated are left out.'
                    additionalProperties:
                        type: integer
                        format: int64
            description: Upstream sessions brokered through one remote session client, whichever issuer first linked them.
            required:
                - linked_subjects
                - reauthorizations
                - validation_status_counts
        AdminMcpServerHealthServer:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    description: The mcp_servers row ID, or the toolset ID for a toolset-only server.
                name:
                    type: string
                    description: Display name of the server.
                source:
                    type: string
                    description: What backs the server. toolset_only is a toolset with no mcp_servers row.
                    enum:
                        - toolset
                        - remote
                        - tunneled
                        - unproxied
                        - toolset_only
                visibility:
                    type: string
                    description: The visibility of the server.
                    enum:
                        - disabled
                        - private
                        - public
            description: The server the health report describes, as listProjectMcpServers lists it.
            required:
                - id
                - name
                - source
                - visibility
                - created_at
        AdminMcpServerHealthServerRef:
            type: object
            properties:
                id:
                    type: string
                    description: The mcp_servers row ID, or the toolset ID for a toolset-only server.
                name:
                    type: string
                    description: Display name of the server.
            description: Another server in the project that shares the issuer.
            required:
                - id
                - name
        AdminMcpServerHealthTrustedRemoteSession:
            type: object
            properties:
                client_id:
                    type: string
                    description: The remote session client ID Speakeasy uses with the trusted issuer.
                issuer_id:
                    type: string
                    description: The trusted remote session issuer ID.
            description: The external authorization server whose assertions the issuer trusts.
            required:
                - issuer_id
                - client_id
        AdminMcpServerHealthUserSessionIssuer:
            type: object
            properties:
                attachment_scope:
                    type: string
                    description: Where the row is attached. global is platform-wide.
                    enum:
                        - project
                        - organization
                        - global
                authn_challenge_mode:
                    type: string
                    description: How multi-remote authn challenges are presented.
                    enum:
                        - chain
                        - interactive
                authorization_server_mode:
                    type: string
                    description: 'Which OAuth authorization server the issuer''s MCP servers point clients to: one per MCP server (endpoint), or one for the issuer at /oauth/usi/{id} (shared).'
                    enum:
                        - endpoint
                        - shared
                classification:
                    type: string
                    description: custom, or project_default_idp for the auto-provisioned issuer of private servers.
                    enum:
                        - custom
                        - project_default_idp
                client_id_metadata_admission_mode:
                    type: string
                    description: The stored CIMD admission mode. Absent when unset, which admits as open.
                    enum:
                        - disabled
                        - presets
                        - reporting
                        - open
                created_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    description: The user session issuer ID.
                issuer_url_pinned:
                    type: boolean
                    description: Whether a shared authorization server's issuer URL is pinned, so it stays the same if the deployment's hosts change.
                other_servers_using_issuer:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminMcpServerHealthServerRef'
                    description: Other live servers in the project that share this issuer.
                remote_session_clients:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminMcpServerHealthRemoteSessionClient'
                    description: Remote session clients attached to the issuer.
                session_duration_hours:
                    type: integer
                    description: How long a user session lasts, in whole hours.
                    format: int64
                sessions:
                    $ref: '#/components/schemas/AdminMcpServerHealthUserSessions'
                slug:
                    type: string
                    description: The issuer slug.
                trusted_remote_session:
                    $ref: '#/components/schemas/AdminMcpServerHealthTrustedRemoteSession'
                use_authentication_host:
                    type: boolean
                    description: Whether the issuer announces the authentication host as its origin.
            description: The user session issuer that authenticates the server's users.
            required:
                - id
                - slug
                - classification
                - authn_challenge_mode
                - session_duration_hours
                - attachment_scope
                - use_authentication_host
                - authorization_server_mode
                - issuer_url_pinned
                - other_servers_using_issuer
                - created_at
                - sessions
                - remote_session_clients
        AdminMcpServerHealthUserSessions:
            type: object
            properties:
                distinct_subjects_ever:
                    type: integer
                    description: Distinct users that ever received a session from the issuer.
                    format: int64
                distinct_subjects_in_window:
                    type: integer
                    description: Distinct users that received a session inside the window.
                    format: int64
                first_issued_at:
                    type: string
                    description: When the first session was issued.
                    format: date-time
                last_issued_at:
                    type: string
                    description: When the latest session was issued or refreshed.
                    format: date-time
                live:
                    type: integer
                    description: Sessions whose refresh deadline has not passed.
                    format: int64
            description: User sessions the issuer has minted. A refresh replaces a session row, so last_issued_at includes refreshes. For an organization- or global-attached issuer the counts span every project using the issuer.
            required:
                - distinct_subjects_ever
                - distinct_subjects_in_window
                - live
        AdminMcpServerToolCallBucket:
            type: object
            properties:
                bucket_start:
                    type: string
                    format: date-time
                failed:
                    type: integer
                    description: Tool calls in the bucket that failed with status 400 or above. Tool errors returned inside HTTP 200 (isError) are not counted here.
                    format: int64
                total:
                    type: integer
                    description: Tool calls in the bucket.
                    format: int64
            description: Tool calls in one bucket of the series.
            required:
                - bucket_start
                - total
                - failed
        AdminMcpServerToolCallOutcomes:
            type: object
            properties:
                blocked:
                    type: integer
                    format: int64
                client_error:
                    type: integer
                    format: int64
                failed:
                    type: integer
                    format: int64
                server_error:
                    type: integer
                    format: int64
                success:
                    type: integer
                    format: int64
                unauthorized:
                    type: integer
                    format: int64
                unknown:
                    type: integer
                    format: int64
            description: Tool calls inside the window by outcome class. failed counts isError tool errors in 2xx/3xx responses and hook-reported tool errors; hosted rows recorded before 2026-10-15 and remote rows recorded before this change shipped still count as success.
            required:
                - success
                - unauthorized
                - client_error
                - server_error
                - blocked
                - failed
                - unknown
        AdminMcpServerToolCalls:
            type: object
            properties:
                bucket_seconds:
                    type: integer
                    description: Width of each series bucket.
                    format: int64
                daily:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminMcpServerToolCallBucket'
                    description: Tool calls per bucket, oldest first.
                outcomes:
                    $ref: '#/components/schemas/AdminMcpServerToolCallOutcomes'
                type:
                    type: string
                    enum:
                        - logging:disabled
                        - logging:enabled
                watermark:
                    type: string
                    description: Telemetry is complete up to this time.
                    format: date-time
                window_days:
                    type: integer
                    description: Length of the window in days.
                    format: int64
            description: 'One MCP server''s tool calls over a window, discriminated on type. logging:disabled carries nothing else: the organization''s logs are off, so calls were never recorded. logging:enabled carries every other field. Outcomes also count hook-observed calls; the daily series counts only calls that reached Speakeasy directly.'
            required:
                - type
        AdminMdmVendorOption:
            type: object
            properties:
                name:
                    type: string
                slug:
                    type: string
            required:
                - slug
                - name
        AdminMeterUsageBucket:
            type: object
            properties:
                from:
                    type: string
                    description: Inclusive UTC day boundary
                    format: date-time
                to:
                    type: string
                    description: Exclusive UTC day boundary
                    format: date-time
                total:
                    type: string
                    description: Exact integer ordinary usage quantity as a decimal string
            required:
                - from
                - to
                - total
        AdminMeterUsageResponse:
            type: object
            properties:
                billing_cycles:
                    type: array
                    items:
                        $ref: '#/components/schemas/MeterUsageWindow'
                    description: Trailing twelve billing-cycle date windows
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminMeterUsageBucket'
                    description: Dense UTC daily ordinary usage buckets
                family:
                    type: string
                    enum:
                        - agent_session_storage
                        - mcp_bandwidth
                        - risk_content_scans
                measurement_method:
                    type: string
                queried_at:
                    type: string
                    description: Retrieval timestamp, not an ingestion watermark
                    format: date-time
                total:
                    type: string
                    description: Exact integer ordinary usage period total as a decimal string
                unit:
                    type: string
                    enum:
                        - stokens
                        - bytes
                window:
                    $ref: '#/components/schemas/MeterUsageWindow'
            required:
                - family
                - window
                - billing_cycles
                - unit
                - total
                - buckets
                - queried_at
                - measurement_method
        AdminOnboardingPlan:
            type: object
            properties:
                name:
                    type: string
                slug:
                    type: string
            required:
                - slug
                - name
        AdminOnboardingPlatform:
            type: object
            properties:
                family:
                    type: string
                name:
                    type: string
                slug:
                    type: string
                surface:
                    type: string
            required:
                - slug
                - name
                - family
                - surface
        AdminOnboardingPlaybook:
            type: object
            properties:
                description:
                    type: string
                id:
                    type: string
                is_default:
                    type: boolean
                    description: The default playbook of its use case. Only a shared playbook can be one.
                name:
                    type: string
                organization_id:
                    type: string
                    description: 'Set for a custom playbook: the one organization it belongs to. A playbook has a use case or an organization, never both.'
                organization_name:
                    type: string
                    description: That organization's name.
                steps:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOnboardingPlaybookStep'
                    description: Top-level steps in walking order; a group brings its cards.
                use_case_id:
                    type: string
                    description: 'Set for a shared playbook: the use case it belongs to.'
                use_case_name:
                    type: string
                use_case_slug:
                    type: string
            required:
                - id
                - name
                - description
                - is_default
                - steps
        AdminOnboardingPlaybookList:
            type: object
            properties:
                playbooks:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOnboardingPlaybook'
            required:
                - playbooks
        AdminOnboardingPlaybookStep:
            type: object
            properties:
                slug:
                    type: string
                title:
                    type: string
            required:
                - slug
                - title
        AdminOnboardingStack:
            type: object
            properties:
                mdm_vendor:
                    type: string
                    description: jamf, intune, iru, other or none. Absent until staff record the stack.
                mdm_vendor_name:
                    type: string
                    description: The software's name when mdm_vendor is other.
                organization_id:
                    type: string
                vendors:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOnboardingStackVendor'
                    description: The vendors the organization uses. Empty until staff record the stack.
            required:
                - organization_id
                - vendors
        AdminOnboardingStackOptions:
            type: object
            properties:
                mdm_vendors:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminMdmVendorOption'
                    description: Device management software the form offers, ending with other.
                vendors:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOnboardingVendorOption'
                    description: From the support matrix catalog, in catalog order.
            required:
                - vendors
                - mdm_vendors
        AdminOnboardingStackVendor:
            type: object
            properties:
                plan_slug:
                    type: string
                    description: The plan the organization is on with this vendor. Absent for a vendor with no plans.
                vendor:
                    type: string
            required:
                - vendor
        AdminOnboardingStep:
            type: object
            properties:
                completion:
                    type: string
                    description: 'How the step completes: manual, fact, or children for a group.'
                description:
                    type: string
                hidden_by_default:
                    type: boolean
                    description: Whether an organization that never saved a selection sees the step.
                method_slugs:
                    type: array
                    items:
                        type: string
                    description: Support matrix integration methods the step configures. Empty means the step applies to every stack.
                parent_slug:
                    type: string
                    description: The group this card sits under. Absent for a top-level step.
                requires:
                    type: array
                    items:
                        type: string
                    description: Slugs of the steps that must be done before this one.
                slug:
                    type: string
                title:
                    type: string
            required:
                - slug
                - title
                - description
                - completion
                - hidden_by_default
                - method_slugs
                - requires
        AdminOnboardingStepApplicability:
            type: object
            properties:
                applies:
                    type: boolean
                    description: Whether the recorded stack supports the step.
                reason:
                    type: string
                    description: Why not, when it does not.
                slug:
                    type: string
                title:
                    type: string
            required:
                - slug
                - title
                - applies
                - reason
        AdminOnboardingStepList:
            type: object
            properties:
                steps:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOnboardingStep'
                    description: Every step in wizard order; a group precedes its cards.
            required:
                - steps
        AdminOnboardingUseCase:
            type: object
            properties:
                default_playbook_id:
                    type: string
                    description: The default playbook, once one is marked.
                description:
                    type: string
                id:
                    type: string
                name:
                    type: string
                slug:
                    type: string
                    description: Stable name the onboarding survey uses.
            required:
                - id
                - slug
                - name
                - description
        AdminOnboardingUseCaseList:
            type: object
            properties:
                use_cases:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOnboardingUseCase'
            required:
                - use_cases
        AdminOnboardingVendorOption:
            type: object
            properties:
                plans:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOnboardingPlan'
                    description: Plans the vendor sells. Empty for a vendor with no plans.
                platforms:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOnboardingPlatform'
                    description: The vendor's products, all implied when the vendor is selected.
                vendor:
                    type: string
                    description: Vendor name as the support matrix spells it.
            required:
                - vendor
                - plans
                - platforms
        AdminOpenRouterKey:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the key row was created.
                    format: date-time
                disable_causes:
                    type: array
                    items:
                        type: string
                    description: Administrative view of every reason currently disabling the key. Values are open-ended for forward compatibility.
                disabled:
                    type: boolean
                    description: Whether the key is locked down (refused locally and disabled upstream).
                gram_account_type:
                    type: string
                    description: The organization's Speakeasy account type (e.g. free, pro, enterprise).
                key_type:
                    type: string
                    description: 'Which upstream key this row provisions: ''chat'' pays for customer-facing completions, ''internal'' pays for platform-initiated LLM usage.'
                monthly_credits:
                    type: integer
                    description: Monthly credit ceiling last mirrored from OpenRouter.
                    format: int64
                organization_id:
                    type: string
                    description: Organization that owns the key.
                organization_name:
                    type: string
                    description: Display name of the owning organization.
                organization_slug:
                    type: string
                    description: Slug of the owning organization.
                updated_at:
                    type: string
                    description: When the key row was last updated.
                    format: date-time
            description: One organization's platform OpenRouter key of a given type, without its key material.
            required:
                - organization_id
                - organization_name
                - organization_slug
                - gram_account_type
                - key_type
                - monthly_credits
                - disabled
                - created_at
                - updated_at
        AdminOrganization:
            type: object
            properties:
                account_type:
                    type: string
                    description: Speakeasy account type (e.g. free, pro, payg, enterprise).
                created_at:
                    type: string
                    description: The creation date of the organization.
                    format: date-time
                creation_source:
                    type: string
                    description: The flow that created the organization (e.g. signup, assistants, platform_admin). Absent when nothing recorded one. Informational only.
                disabled_at:
                    type: string
                    description: The time at which the organization was disabled, if any.
                    format: date-time
                id:
                    type: string
                    description: The ID of the organization
                member_count:
                    type: integer
                    description: Number of active members in the organization.
                    format: int64
                name:
                    type: string
                    description: The name of the organization
                slug:
                    type: string
                    description: The slug of the organization
                stripe_customer_dashboard_url:
                    type: string
                    description: Link to the Stripe customer in the Stripe dashboard. Absent when the organization has no Stripe customer or the deployment has no Stripe API key configured.
                    format: uri
                stripe_customer_id:
                    type: string
                    description: Stripe customer ID, if billing metadata has a customer.
                stripe_subscription_dashboard_url:
                    type: string
                    description: Link to the Stripe subscription in the Stripe dashboard. Absent when the organization has no Stripe subscription or the deployment has no Stripe API key configured.
                    format: uri
                stripe_subscription_id:
                    type: string
                    description: Current Stripe subscription ID, if subscribed.
                trial_converted_at:
                    type: string
                    description: The time at which the trial converted to a paid plan, if any.
                    format: date-time
                trial_demoted_at:
                    type: string
                    description: The time at which the organization was demoted after its trial, if any.
                    format: date-time
                trial_ends_at:
                    type: string
                    description: The time at which the enterprise trial ends. Absent when the organization never trialled.
                    format: date-time
                trial_state:
                    type: string
                    description: Lifecycle state of the organization's enterprise trial.
                    enum:
                        - none
                        - running
                        - ending_soon
                        - expired
                        - demoted
                        - converted
                trial_tier:
                    type: string
                    description: The trial tier. Absent when the organization never trialled.
                updated_at:
                    type: string
                    description: The last update date of the organization.
                    format: date-time
                whitelisted:
                    type: boolean
                    description: Whether the organization is whitelisted for full access.
                workos_dashboard_url:
                    type: string
                    description: Link to the organization in the WorkOS dashboard. Absent when the organization is not linked to WorkOS or the deployment has no WorkOS environment configured.
                    format: uri
                workos_id:
                    type: string
                    description: WorkOS organization ID, if linked.
            description: Organization details surfaced to admin operators.
            required:
                - id
                - name
                - slug
                - account_type
                - whitelisted
                - member_count
                - created_at
                - updated_at
        AdminOrganizationMember:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                display_name:
                    type: string
                    description: User display name.
                email:
                    type: string
                    description: User email address.
                id:
                    type: string
                    description: User ID.
                last_login:
                    type: string
                    description: The time the user last logged in, if any.
                    format: date-time
                updated_at:
                    type: string
                    format: date-time
            description: Organization member surfaced to admin operators.
            required:
                - id
                - email
                - display_name
                - created_at
                - updated_at
        AdminOrganizationOnboardingPlaybook:
            type: object
            properties:
                applicability:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOnboardingStepApplicability'
                    description: Each step of the assigned playbook against the recorded stack.
                organization_id:
                    type: string
                playbook:
                    $ref: '#/components/schemas/AdminOnboardingPlaybook'
            required:
                - organization_id
                - applicability
        AdminOrganizationStats:
            type: object
            properties:
                created_last_7_days:
                    type: integer
                    description: Organizations created in the last 7 days, whatever their current status.
                    format: int64
                customers:
                    type: integer
                    description: Organizations on a paid account type (payg or enterprise), disabled ones included.
                    format: int64
                customers_created_last_7_days:
                    type: integer
                    description: Customers created in the last 7 days, whatever their current status.
                    format: int64
                disabled:
                    type: integer
                    description: Organizations with disabled_at set.
                    format: int64
                disabled_last_7_days:
                    type: integer
                    description: Organizations disabled in the last 7 days.
                    format: int64
                total:
                    type: integer
                    description: Every organization on the platform, disabled ones included.
                    format: int64
                trials_ending_soon:
                    type: integer
                    description: Organizations whose trial_state is ending_soon.
                    format: int64
            description: Platform-wide organization counts surfaced above the admin organizations list.
            required:
                - total
                - created_last_7_days
                - customers
                - customers_created_last_7_days
                - trials_ending_soon
                - disabled
                - disabled_last_7_days
        AdminPaygBillingSummary:
            type: object
            properties:
                estimated_total_usd:
                    type: string
                other_inference_spend_usd:
                    type: string
                period_end:
                    type: string
                    format: date-time
                period_start:
                    type: string
                    format: date-time
                recorded_through:
                    type: string
                    format: date
                tum_cost_usd:
                    type: string
                tum_tokens:
                    type: integer
                    format: int64
                tum_unit_price_usd:
                    type: string
            required:
                - period_start
                - period_end
                - tum_tokens
                - tum_unit_price_usd
                - tum_cost_usd
                - other_inference_spend_usd
                - estimated_total_usd
        AdminProject:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the project.
                    format: date-time
                id:
                    type: string
                    description: The ID of the project
                mcp_server_count:
                    type: integer
                    description: Number of MCP servers in the project, counting both toolset-backed servers and mcp_servers rows.
                    format: int64
                name:
                    type: string
                    description: The name of the project
                slug:
                    type: string
                    description: The slug of the project
                updated_at:
                    type: string
                    description: The last update date of the project.
                    format: date-time
            description: Project summary surfaced to admin operators.
            required:
                - id
                - name
                - slug
                - mcp_server_count
                - created_at
                - updated_at
        AdminProjectDetail:
            type: object
            properties:
                api_key_count:
                    type: integer
                    description: Number of active API keys in the project.
                    format: int64
                assistant_count:
                    type: integer
                    description: Number of active assistants in the project.
                    format: int64
                created_at:
                    type: string
                    format: date-time
                deployment_count:
                    type: integer
                    description: Total number of deployments in the project.
                    format: int64
                environment_count:
                    type: integer
                    description: Number of active environments in the project.
                    format: int64
                functions_runner_version:
                    type: string
                    description: Functions runner version pin, if set.
                http_tool_count:
                    type: integer
                    description: Number of active HTTP tool definitions in the project.
                    format: int64
                id:
                    type: string
                    description: Project ID.
                logo_asset_id:
                    type: string
                    description: Project logo asset ID, if set.
                name:
                    type: string
                    description: Project name.
                organization_id:
                    type: string
                    description: Owning organization ID.
                slug:
                    type: string
                    description: Project slug.
                toolset_count:
                    type: integer
                    description: Number of active toolsets in the project.
                    format: int64
                updated_at:
                    type: string
                    format: date-time
            description: Full project detail surfaced to admin operators, including aggregated counts of child resources.
            required:
                - id
                - name
                - slug
                - organization_id
                - toolset_count
                - deployment_count
                - http_tool_count
                - environment_count
                - api_key_count
                - assistant_count
                - created_at
                - updated_at
        AdminRegistryEntry:
            type: object
            properties:
                created_at:
                    type: string
                data_json:
                    type: string
                    description: Complete lossless registry record JSON
                id:
                    type: string
                issues:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminRegistryIssue'
                published:
                    type: boolean
                updated_at:
                    type: string
                    description: Opaque write precondition; echo unchanged
            required:
                - id
                - data_json
                - published
                - created_at
                - updated_at
                - issues
        AdminRegistryIssue:
            type: object
            properties:
                message:
                    type: string
                path:
                    type: string
            required:
                - path
                - message
        AdminRegistryOktaCandidate:
            type: object
            properties:
                integrator:
                    type: boolean
                    description: Whether the name comes from an integrator listing rather than Okta's public catalog; any integrator account can publish under a vendor-like key, so confirm with care.
                mapped_by:
                    type: string
                    description: Name of the entry that already claims this key, when one does.
                oin_name:
                    type: string
                    description: Okta application name, the OIN key.
                organizations:
                    type: integer
                    description: How many organizations have the application.
                    format: int64
                reason:
                    type: string
                    description: 'domain: the vendor token matches a remote or website host; title: it matches the entry title; label: a tenant''s label equals the entry title.'
                    enum:
                        - domain
                        - title
                        - label
                sign_on_modes:
                    type: array
                    items:
                        type: string
                    description: Sign-on modes seen for the application.
            description: An Okta application name observed across synced tenants that plausibly belongs to a catalog entry. A proposal for staff to confirm, never applied automatically.
            required:
                - oin_name
                - organizations
                - sign_on_modes
                - reason
                - integrator
        AdminRegistryOktaCandidates:
            type: object
            properties:
                candidates:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminRegistryOktaCandidate'
                    description: Strongest reason first, then by organizations.
            required:
                - candidates
        AdminRegistryOktaUnmapped:
            type: object
            properties:
                names:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminRegistryOktaUnmappedName'
                    description: By organizations, most first. Okta's own applications are left out.
            required:
                - names
        AdminRegistryOktaUnmappedName:
            type: object
            properties:
                integrator:
                    type: boolean
                    description: Whether the name comes from an integrator listing rather than Okta's public catalog.
                oin_name:
                    type: string
                organizations:
                    type: integer
                    format: int64
                reason:
                    type: string
                    enum:
                        - domain
                        - title
                        - label
                sign_on_modes:
                    type: array
                    items:
                        type: string
                suggested_entry_id:
                    type: string
                    description: The entry the heuristic would map it to, when one matches.
                suggested_entry_name:
                    type: string
            description: An observed Okta application name no catalog entry claims.
            required:
                - oin_name
                - organizations
                - sign_on_modes
                - integrator
        AdminRegistryPage:
            type: object
            properties:
                entries:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminRegistrySummary'
                next_cursor:
                    type: string
            required:
                - entries
        AdminRegistrySummary:
            type: object
            properties:
                id:
                    type: string
                issues:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminRegistryIssue'
                name:
                    type: string
                published:
                    type: boolean
                updated_at:
                    type: string
            required:
                - id
                - name
                - published
                - updated_at
                - issues
        AdminSession:
            type: object
            properties:
                email:
                    type: string
                name:
                    type: string
            required:
                - email
        AdminSignupOffer:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                enabled:
                    type: boolean
                id:
                    type: string
                    format: uuid
                name:
                    type: string
                signup_flow:
                    type: string
                    enum:
                        - tailscale_partner_gateway
                stripe_promotion_code_id:
                    type: string
                updated_at:
                    type: string
                    format: date-time
            required:
                - id
                - name
                - stripe_promotion_code_id
                - signup_flow
                - enabled
                - created_at
                - updated_at
        AdminSpendBreakdownResponse:
            type: object
            properties:
                billing_cycles:
                    type: array
                    items:
                        $ref: '#/components/schemas/MeterUsageWindow'
                    description: Trailing twelve billing-cycle date windows
                currency:
                    type: string
                    enum:
                        - USD
                pricing_basis:
                    type: string
                    enum:
                        - current_payg_list_price
                products:
                    type: array
                    items:
                        $ref: '#/components/schemas/SpendProduct'
                    description: The three metered products in stable display order
                queried_at:
                    type: string
                    description: Retrieval timestamp used to distinguish current and future buckets
                    format: date-time
                total_cost_usd:
                    type: string
                    description: Exact estimated total at current PAYG list prices
                window:
                    $ref: '#/components/schemas/MeterUsageWindow'
            required:
                - window
                - billing_cycles
                - currency
                - pricing_basis
                - queried_at
                - total_cost_usd
                - products
        AdminStripeCustomer:
            type: object
            properties:
                description:
                    type: string
                email:
                    type: string
                id:
                    type: string
                livemode:
                    type: boolean
                name:
                    type: string
            description: Stripe customer details shown to an admin before assignment.
            required:
                - id
                - livemode
        AdminStripeSubscription:
            type: object
            properties:
                cancel_at:
                    type: string
                    format: date-time
                cancel_at_period_end:
                    type: boolean
                canceled_at:
                    type: string
                    format: date-time
                current_period_end:
                    type: string
                    format: date-time
                current_period_start:
                    type: string
                    format: date-time
                payment_failed:
                    type: boolean
                status:
                    type: string
                    enum:
                        - incomplete
                        - incomplete_expired
                        - trialing
                        - active
                        - past_due
                        - canceled
                        - unpaid
                        - paused
                trial_end:
                    type: string
                    format: date-time
                trial_start:
                    type: string
                    format: date-time
            required:
                - status
                - current_period_start
                - current_period_end
                - cancel_at_period_end
                - payment_failed
        AdminStripeSubscriptionCandidate:
            type: object
            properties:
                customer_id:
                    type: string
                    description: Stripe customer that owns the subscription.
                id:
                    type: string
                    description: Stripe subscription ID returned by Stripe.
                status:
                    type: string
                    description: Stripe subscription status.
            description: Live Stripe subscription details shown before recording the subscription on a PAYG organization.
            required:
                - id
                - customer_id
                - status
        AdminUpstreamOAuthMigrationAuthClientKind:
            type: object
            properties:
                decided:
                    type: integer
                    description: Configuration and server links decided.
                    format: int64
                kind:
                    type: string
                    description: 'The kind: oauth, header or ema.'
                pending_clients:
                    type: integer
                    description: Auth clients not yet recorded.
                    format: int64
                pending_headers:
                    type: integer
                    description: Header copies and EMA scope sets not yet up to date.
                    format: int64
                pending_links:
                    type: integer
                    description: Server to auth client links not yet recorded.
                    format: int64
                pending_retirements:
                    type: integer
                    description: Backfilled auth clients and server links the configuration no longer yields, not yet retired.
                    format: int64
                unresolved:
                    type: integer
                    description: Configuration that cannot be recorded without a guess.
                    format: int64
            description: Where one kind of configured upstream identity stands.
            required:
                - kind
                - decided
                - pending_clients
                - pending_links
                - pending_headers
                - pending_retirements
                - unresolved
        AdminUpstreamOAuthMigrationAuthClients:
            type: object
            properties:
                associations:
                    type: integer
                    description: Configured identities and server links decided.
                    format: int64
                complete:
                    type: boolean
                    description: Whether every configured identity has its auth client, server links and header copies recorded, no backfilled record is left to retire, no server offering one is left undecided, and no phase failed.
                failed_phases:
                    type: array
                    items:
                        type: string
                    description: 'Phases whose check failed: oauth, headers, ema, reconcile or mark. The counts cover the other phases.'
                in_progress:
                    type: boolean
                    description: Whether a run is recording typed auth clients for the organization right now. The other counts are then empty; check again when it finishes.
                kinds:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminUpstreamOAuthMigrationAuthClientKind'
                    description: The same counts for each kind of configured identity.
                pending_clients:
                    type: integer
                    description: Auth clients not yet recorded.
                    format: int64
                pending_headers:
                    type: integer
                    description: Header copies and EMA scope sets not yet up to date.
                    format: int64
                pending_links:
                    type: integer
                    description: Server to auth client links not yet recorded.
                    format: int64
                pending_marked_servers:
                    type: integer
                    description: Servers offering a backfilled auth client whose need for upstream authentication is still undecided, not yet marked as needing it.
                    format: int64
                pending_retirements:
                    type: integer
                    description: Backfilled auth clients and server links the configuration no longer yields, not yet retired.
                    format: int64
                unresolved:
                    type: integer
                    description: Configured identities that cannot be recorded without a guess and need attention.
                    format: int64
                unresolved_associations:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminUpstreamOAuthMigrationUnresolvedAssociation'
                    description: The configuration counted in unresolved.
                warnings:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminUpstreamOAuthMigrationUnresolvedAssociation'
                    description: Configuration worth a look that needs no action and does not hold back complete, such as a server at an identity chaining upstream's origin that only live discovery could confirm.
            description: Where one organization stands in recording a typed auth client for every upstream identity its servers are configured with (upstream OAuth clients, source credential headers and identity chaining upstreams), and in retiring backfilled records the configuration no longer yields. Nothing reads these records yet.
            required:
                - complete
                - in_progress
                - associations
                - pending_clients
                - pending_links
                - pending_headers
                - pending_retirements
                - pending_marked_servers
                - unresolved
                - unresolved_associations
                - warnings
                - kinds
                - failed_phases
        AdminUpstreamOAuthMigrationOrganization:
            type: object
            properties:
                id:
                    type: string
                    description: The organization ID.
                name:
                    type: string
                    description: The organization name.
                servers:
                    type: integer
                    description: Live MCP servers in the organization signed in through a user session issuer.
                    format: int64
                slug:
                    type: string
                    description: The organization slug.
            description: 'An organization the upstream OAuth migration applies to: it has a live MCP server signed in through a user session issuer.'
            required:
                - id
                - name
                - slug
                - servers
        AdminUpstreamOAuthMigrationOrganizations:
            type: object
            properties:
                organizations:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminUpstreamOAuthMigrationOrganization'
                    description: Every organization the migration applies to, by name.
            required:
                - organizations
        AdminUpstreamOAuthMigrationRun:
            type: object
            properties:
                associations_skipped:
                    type: integer
                    description: Associations not recorded because their configuration changed during the run. Run again to pick them up.
                    format: int64
                associations_written:
                    type: integer
                    description: Server to client associations recorded.
                    format: int64
                auth_client_links_written:
                    type: integer
                    description: Server to auth client links recorded.
                    format: int64
                auth_clients_error:
                    type: string
                    description: Why recording typed auth clients failed, when it did. The upstream OAuth migration itself is unaffected.
                auth_clients_written:
                    type: integer
                    description: Typed auth clients recorded.
                    format: int64
                selections_written:
                    type: integer
                    description: Credential choices recorded.
                    format: int64
                servers_marked_requiring_upstream_auth:
                    type: integer
                    description: Servers marked as needing upstream authentication because they offer a backfilled auth client.
                    format: int64
                status:
                    $ref: '#/components/schemas/AdminUpstreamOAuthMigrationStatus'
            description: What one migration run wrote, and the organization's status after it.
            required:
                - associations_written
                - associations_skipped
                - selections_written
                - status
        AdminUpstreamOAuthMigrationServer:
            type: object
            properties:
                mcp_server_id:
                    type: string
                    description: The MCP server ID.
                    format: uuid
                project_id:
                    type: string
                    description: The server's project ID.
                    format: uuid
            description: An MCP server whose upstream OAuth client the existing configuration does not prove. An administrator must associate its client before the organization is migrated.
            required:
                - mcp_server_id
                - project_id
        AdminUpstreamOAuthMigrationStatus:
            type: object
            properties:
                auth_clients:
                    $ref: '#/components/schemas/AdminUpstreamOAuthMigrationAuthClients'
                credentials:
                    type: integer
                    description: Live user session credentials scanned.
                    format: int64
                migrated:
                    type: boolean
                    description: Whether the organization has nothing left to write and no server needing configuration.
                organization_id:
                    type: string
                    description: The organization ID.
                pending_associations:
                    type: integer
                    description: Server to client associations the configuration proves that are not yet recorded.
                    format: int64
                pending_selections:
                    type: integer
                    description: Credential choices the configuration decides that are not yet recorded.
                    format: int64
                reconnect_credentials:
                    type: integer
                    description: Credentials with at least one server they will be asked to reconnect to, because no single client is decided for them.
                    format: int64
                servers:
                    type: integer
                    description: MCP servers on a user session issuer that the association backfill decided.
                    format: int64
                unresolved_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminUpstreamOAuthMigrationServer'
                    description: Servers whose upstream OAuth client must be associated by an administrator.
            description: 'Where one organization stands in the upstream OAuth migration, read from a dry run of its backfills. The organization is migrated when nothing is left to write and no server needs configuring. Credentials that must reconnect do not block it: they are asked to sign in again once serving reads their choices. Typed auth clients are reported separately in auth_clients and never affect migrated.'
            required:
                - organization_id
                - migrated
                - servers
                - pending_associations
                - unresolved_servers
                - credentials
                - pending_selections
                - reconnect_credentials
        AdminUpstreamOAuthMigrationUnresolvedAssociation:
            type: object
            properties:
                association_id:
                    type: string
                    description: The server to upstream OAuth client association ID, for an oauth association.
                    format: uuid
                auth_client_id:
                    type: string
                    description: The auth client already recorded, if any.
                    format: uuid
                binding_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: Every identity chaining binding decided together, for ema.
                kind:
                    type: string
                    description: 'What was decided: oauth, header or ema.'
                mcp_server_id:
                    type: string
                    description: The MCP server ID, when one server is concerned.
                    format: uuid
                project_id:
                    type: string
                    description: The project the configuration belongs to.
                    format: uuid
                reason:
                    type: string
                    description: 'Why it cannot be recorded: unknown_owner, type_mismatch, project_mismatch, multiple_authorization_headers, duplicate_header_names, denied_source, mixed_credential_headers, oauth_client_shared_across_sources, ema_client_shared_across_sources, conflicting_scopes, resource_variants, resource_not_matched, issuer_not_allowed or registration_out_of_reach; for a warning, server_not_matched.'
                remote_session_client_id:
                    type: string
                    description: The upstream OAuth client ID, for oauth and ema.
                    format: uuid
                server_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: The servers concerned, for an upstream OAuth client shared across sources.
                source_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: The sources concerned, for an upstream OAuth client shared across sources.
                subject_id:
                    type: string
                    description: The association, source, upstream OAuth client or first binding decided.
                    format: uuid
            description: Configuration the typed auth client backfill cannot record without a guess, and why. ID fields that do not apply to its kind are the nil UUID.
            required:
                - kind
                - reason
                - subject_id
                - association_id
                - mcp_server_id
                - project_id
                - remote_session_client_id
                - binding_ids
                - source_ids
                - server_ids
        AdminUser:
            type: object
            properties:
                display_name:
                    type: string
                email:
                    type: string
                id:
                    type: string
                last_login:
                    type: string
                    format: date-time
                organization_count:
                    type: integer
                    format: int64
                organizations:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminUserOrganization'
            required:
                - id
                - display_name
                - email
                - organizations
                - organization_count
        AdminUserOrganization:
            type: object
            properties:
                disabled_at:
                    type: string
                    format: date-time
                id:
                    type: string
                name:
                    type: string
                slug:
                    type: string
            required:
                - id
                - name
                - slug
        AdmitWorkloadSubjectForm:
            type: object
            properties:
                agent_id:
                    type: string
                    description: The agent whose policy the admitted workload inherits.
                    format: uuid
                issuer:
                    type: string
                    description: The issuer identifier of an already-trusted issuer, resolved within the caller's organization. Naming one the caller cannot see is a not-found, not a permission error.
                    format: uri
                match_kind:
                    type: string
                    description: 'How the subject is compared: exact compares the whole value; wildcard requires a trailing * and matches anything beginning with the value before it. Wildcard additionally requires the issuer to permit it. Defaults to exact.'
                    default: exact
                    enum:
                        - exact
                        - wildcard
                name:
                    type: string
                    description: Optional label, for platforms whose subjects are not self-describing.
                    minLength: 1
                project_scoped:
                    type: boolean
                    description: Admit the subject for the selected project alone rather than the whole organization. Requires a caller that names a project; a dashboard session does not. Defaults to false.
                    default: false
                subject:
                    type: string
                    description: The sub claim the issuer must assert, stored and compared exactly as supplied.
                tags:
                    type: array
                    items:
                        type: string
                    description: Free-form labels for finding the admitted workload in a long list. Flat strings, not key/value pairs. Trimmed and de-duplicated on write, then limited to 40 tags of at most 64 characters each.
            description: Form for admitting a workload subject and assigning its agent.
            required:
                - issuer
                - subject
                - agent_id
        AgentDelegatedGrant:
            type: object
            properties:
                scope:
                    type: string
                selector:
                    $ref: '#/components/schemas/AgentPolicySelector'
            required:
                - scope
                - selector
        AgentDelegatedPolicy:
            type: object
            properties:
                effective:
                    type: array
                    items:
                        $ref: '#/components/schemas/AgentDelegatedGrant'
                requested:
                    type: array
                    items:
                        $ref: '#/components/schemas/AgentDelegatedGrant'
            required:
                - requested
                - effective
        AgentIDForm:
            type: object
            properties:
                agent_id:
                    type: string
                    description: First-class agent identifier
                    format: uuid
            required:
                - agent_id
        AgentMCPServer:
            type: object
            properties:
                audience:
                    type: string
                    description: The exact `aud` the identity assertion must carry for token_endpoint. Present exactly when token_endpoint is.
                name:
                    type: string
                    description: 'Stable key the agent writes the server under in each tool''s MCP configuration: `speakeasy-` followed by the server''s slug, using only lowercase letters, digits and `-`. Unique within the response; a second server with the same name gets a numeric suffix such as `speakeasy-linear-2`.'
                    pattern: ^speakeasy-[a-z0-9-]+$
                resource:
                    type: string
                    description: Resource indicator (RFC 8707) to send with the grant. Present only when token_endpoint mints sessions for this one server; absent when it mints one session for every server of its issuer.
                token_endpoint:
                    type: string
                    description: Token endpoint where a workload exchanges an identity assertion (RFC 7523 JWT bearer grant) for a session that reaches this server. Absent when the server's authorization server offers no workload grant, so the server cannot be reached without a person.
                tools:
                    type: array
                    items:
                        type: string
                    description: Stable IDs of the managed tools this server applies to. Absent or empty means every managed tool.
                url:
                    type: string
                    description: The server's streamable-HTTP URL.
            required:
                - name
                - url
        AgentMarketplace:
            type: object
            properties:
                name:
                    type: string
                    description: Stable identifier for the marketplace, used as its key when the agent registers it with a managed tool. Matches the name written into the published marketplace.json, derived from the organization name (for example, `<org-slug>-gram`), so plugin references resolve deterministically across polls.
                url:
                    type: string
                    description: Git URL for the marketplace, served by the marketplace proxy.
            required:
                - name
                - url
        AgentOwnerAssignmentForm:
            type: object
            properties:
                agent_id:
                    type: string
                    description: First-class agent identifier
                    format: uuid
                owner_user_id:
                    type: string
                    description: Eligible same-organization human replacement owner
            required:
                - agent_id
                - owner_user_id
        AgentOwnerProfile:
            type: object
            properties:
                display_name:
                    type: string
                photo_url:
                    type: string
            required:
                - display_name
        AgentPermissions:
            type: object
            properties:
                authorize:
                    type: boolean
                    description: Whether the current human may manage credentials for this agent
                read:
                    type: boolean
                    description: Whether the current human may read this agent
                transfer:
                    type: boolean
                    description: Whether the current human may transfer or reassign this agent
                write:
                    type: boolean
                    description: Whether the current human may configure or change this agent
            required:
                - read
                - write
                - authorize
                - transfer
        AgentPlugin:
            type: object
            properties:
                description:
                    type: string
                    description: Short description of the plugin, when one is set.
                install_mode:
                    type: string
                    description: 'How the agent installs the plugin. `required`: installed, and the user can''t turn it off. `default`: installed, and the user can turn it off. `available`: not installed until the user turns it on. Agents that predate this field install every listed plugin.'
                    enum:
                        - required
                        - default
                        - available
                marketplace_name:
                    type: string
                    description: Name of the marketplace this plugin lives in. Always equals the `name` of one of the marketplaces in the same response.
                name:
                    type: string
                    description: Display name of the plugin. Absent for the synthesized observability plugin.
                slug:
                    type: string
                    description: Plugin slug. Combined with marketplace_name, this identifies the plugin in the managed tool.
            required:
                - slug
                - marketplace_name
                - install_mode
        AgentPolicyGrant:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                effect:
                    type: string
                    enum:
                        - allow
                id:
                    type: string
                    format: uuid
                scope:
                    type: string
                selector:
                    $ref: '#/components/schemas/AgentPolicySelector'
                updated_at:
                    type: string
                    format: date-time
            required:
                - id
                - scope
                - effect
                - selector
                - created_at
                - updated_at
        AgentPolicyGrantForm:
            type: object
            properties:
                effect:
                    type: string
                    description: Grant effect; direct agent policy is allow-only
                    enum:
                        - allow
                scope:
                    type: string
                    description: Agent-runtime-safe scope to grant
                    minLength: 1
                selector:
                    $ref: '#/components/schemas/AgentPolicySelector'
            required:
                - scope
                - effect
                - selector
        AgentPolicyGrantIDForm:
            type: object
            properties:
                agent_id:
                    type: string
                    description: First-class agent identifier
                    format: uuid
                grant_id:
                    type: string
                    description: Direct policy grant identifier
                    format: uuid
            required:
                - grant_id
                - agent_id
        AgentPolicySelector:
            type: object
            properties:
                client_type:
                    type: string
                    description: Auth client type filter (mcp:auth scopes only).
                    enum:
                        - remote_session
                        - service_account
                        - static_credential
                        - pass_through
                        - ema
                        - '*'
                connection_owner:
                    type: string
                    description: 'Personal connection owner filter (mcp:auth scopes on remote_session clients only): a user ID, ''*'', or ''$represented_user''.'
                disposition:
                    type: string
                    description: Tool disposition filter (MCP scopes only).
                    enum:
                        - read_only
                        - destructive
                        - idempotent
                        - open_world
                project_id:
                    type: string
                    description: Project filter (MCP, environment, assistant, and mcp:auth scopes).
                resource_id:
                    type: string
                    description: The resource identifier, or '*' for all resources of this kind.
                resource_kind:
                    type: string
                    description: The kind of resource this selector targets.
                    enum:
                        - project
                        - mcp
                        - org
                        - environment
                        - skill
                        - assistant
                        - risk_policy
                        - chat
                        - agent
                        - mcp_auth_client
                        - '*'
                server_identity:
                    type: string
                    description: Server identity filter (risk policy scopes only).
                server_url:
                    type: string
                    description: Server URL filter (risk policy scopes only).
                    format: uri
                tool:
                    type: string
                    description: Specific tool name filter (MCP scopes only).
            description: A constraint that narrows which resources an agent grant applies to.
            required:
                - resource_kind
                - resource_id
        AgentPollingPrincipal:
            type: object
            properties:
                display_name:
                    type: string
                    description: Human-readable name of the agent identity.
                urn:
                    type: string
                    description: Principal URN of the agent identity, for example `agent:<uuid>`.
            required:
                - urn
                - display_name
        AgentSession:
            type: object
            properties:
                authorizer_user_id:
                    type: string
                client_name:
                    type: string
                created_at:
                    type: string
                    format: date-time
                expires_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    format: uuid
                issuer_id:
                    type: string
                    format: uuid
                issuer_slug:
                    type: string
                last_used_at:
                    type: string
                    format: date-time
                project_id:
                    type: string
                    format: uuid
                refresh_expires_at:
                    type: string
                    format: date-time
            required:
                - id
                - issuer_id
                - issuer_slug
                - created_at
                - expires_at
                - refresh_expires_at
        AgentSessionMeta:
            type: object
            properties:
                chat_id:
                    type: string
                    description: Speakeasy chat id for the captured session.
                    format: uuid
                session_id:
                    type: string
                    description: The native harness session identifier this entry resolves, echoed from the request.
                title:
                    type: string
                    description: Generated (or manually set) chat title. Absent when no title has been generated yet.
                updated_at:
                    type: string
                    description: Last activity recorded for the captured session.
                    format: date-time
            required:
                - session_id
                - chat_id
                - updated_at
        AgentUsage:
            type: object
            properties:
                claude:
                    $ref: '#/components/schemas/ClaudeAgentUsage'
                type:
                    type: string
                    description: The agent usage payload discriminator.
                    enum:
                        - claude
            required:
                - type
        AiScanTarget:
            type: object
            properties:
                access:
                    $ref: '#/components/schemas/AIToolAccessSummary'
                category:
                    type: string
                    description: 'Target category: harness (an AI coding tool), assistant (a general-purpose AI assistant or agent), or local_model (an open model run locally).'
                    enum:
                        - harness
                        - assistant
                        - local_model
                created_at:
                    type: string
                    description: When the organization's row was created; absent for an untouched default.
                    format: date-time
                customized:
                    type: boolean
                    description: For a built-in, whether the organization has recorded an access decision about it. Always false for organization targets.
                display_name:
                    type: string
                    description: Name shown in the dashboard.
                    maxLength: 128
                gateway_client:
                    $ref: '#/components/schemas/AiScanTargetGatewayClient'
                id:
                    type: string
                    description: Stable id agents report and detections key on.
                    pattern: ^[a-z0-9][a-z0-9-]{0,63}$
                origin:
                    type: string
                    description: 'Where the target comes from: default (a Speakeasy built-in, whose definition is read-only) or organization (added by the organization, fully editable). Every target listed here is probed for; a built-in leaves the list by being removed from Speakeasy''s catalog, an organization target by being deleted.'
                    enum:
                        - default
                        - organization
                signatures:
                    $ref: '#/components/schemas/AiScanTargetSignatures'
                updated_at:
                    type: string
                    description: When the organization's row last changed; absent for an untouched default.
                    format: date-time
                version_plist_key:
                    type: string
                    description: Info.plist key the installed version is read from on a bundle match; defaults to CFBundleShortVersionString when omitted.
                    pattern: ^[A-Za-z0-9]{1,64}$
            description: 'One Shadow AI scan target in an organization''s list: a Speakeasy built-in, or a target the organization added.'
            required:
                - id
                - display_name
                - category
                - signatures
                - gateway_client
                - origin
                - customized
        AiScanTargetGatewayClient:
            type: object
            properties:
                cimd_vendor_keys:
                    type: array
                    items:
                        type: string
                        pattern: ^[a-z0-9][a-z0-9-]{0,63}$
                    description: 'Vendor keys from Speakeasy''s CIMD client catalog. Vendor-grained: no two targets may claim the same key, or a block on either would silently cover the other.'
                    maxItems: 16
                client_info_names:
                    type: array
                    items:
                        type: string
                        maxLength: 128
                    description: 'Names an MCP client reports at initialize. Detection only, never authorization: the value is self-reported and any client can claim any name.'
                    maxItems: 16
                oauth_client_ids:
                    type: array
                    items:
                        type: string
                        maxLength: 512
                    description: Client ids matched literally against the caller's verified client_id, or CIMD catalog URLs — including the wildcard patterns — matched against the catalog entry that admitted it. Naming the catalog URL is how a vendor that mints one document per MCP server is still named exactly. No two targets may claim the same entry.
                    maxItems: 16
            description: 'How a target detected on a device is recognized again when the same tool calls Speakeasy''s MCP gateway. A device signature and a registered OAuth client share no natural join key, so the link is declared here. The three lists are not interchangeable: the first two name credentials Speakeasy verified and can be enforced on, the third names what a client said about itself and is used only to attribute traffic.'
            required:
                - cimd_vendor_keys
                - oauth_client_ids
                - client_info_names
        AiScanTargetMutationResult:
            type: object
            properties:
                list_version:
                    type: integer
                    description: Version of the served list after the change.
                    format: int64
                target:
                    $ref: '#/components/schemas/AiScanTarget'
            required:
                - list_version
                - target
        AiScanTargetSignatures:
            type: object
            properties:
                binaries:
                    type: array
                    items:
                        type: string
                        pattern: ^[A-Za-z0-9._-]{1,64}$
                    description: Bare command names resolved on the device PATH; never a path.
                    maxItems: 16
                bundle_ids:
                    type: array
                    items:
                        type: string
                        pattern: ^[A-Za-z0-9._-]{1,128}$
                    description: macOS CFBundleIdentifier values matched against app bundles under /Applications and ~/Applications.
                    maxItems: 16
                config_dirs:
                    type: array
                    items:
                        type: string
                    description: Directories whose existence marks the tool as installed, taken as home-relative unless they start with /. A `*` is a wildcard matching any run of characters within ONE path segment, never crossing a `/`, for tools installed under a version-stamped directory name such as an editor extension.
                    maxItems: 16
                process_names:
                    type: array
                    items:
                        type: string
                        pattern: ^[A-Za-z0-9 ._-]{1,64}$
                    description: Exact process names checked for the running signal.
                    maxItems: 16
            description: On-device signals the scan checks for one target.
            required:
                - bundle_ids
                - binaries
                - config_dirs
                - process_names
        AllowedOrigin:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the allowed origin.
                    format: date-time
                id:
                    type: string
                    description: The ID of the allowed origin
                origin:
                    type: string
                    description: The origin URL
                project_id:
                    type: string
                    description: The ID of the project
                status:
                    type: string
                    default: pending
                    enum:
                        - pending
                        - approved
                        - rejected
                updated_at:
                    type: string
                    description: The last update date of the allowed origin.
                    format: date-time
            required:
                - id
                - project_id
                - origin
                - status
                - created_at
                - updated_at
        AnalyticsDataset:
            type: object
            properties:
                description:
                    type: string
                fields:
                    type: array
                    items:
                        $ref: '#/components/schemas/AnalyticsField'
                grain:
                    type: string
                    description: What one row represents, as a noun
                    example: tool call
                kind:
                    type: string
                    enum:
                        - event
                        - metric
                name:
                    type: string
                    example: tool_calls
            description: A dataset and the fields it exposes. The builder is generated from this.
            required:
                - name
                - kind
                - grain
                - description
                - fields
        AnalyticsDescribeResult:
            type: object
            properties:
                datasets:
                    type: array
                    items:
                        $ref: '#/components/schemas/AnalyticsDataset'
            required:
                - datasets
        AnalyticsDimensionValue:
            type: object
            properties:
                count:
                    type: integer
                    description: Rows at the dataset's grain carrying this value inside the window
                    format: int64
                value:
                    type: string
                    description: A non-empty value of the dimension
            required:
                - value
                - count
        AnalyticsDimensionValuesResult:
            type: object
            properties:
                dataset:
                    type: string
                dimension:
                    type: string
                values:
                    type: array
                    items:
                        $ref: '#/components/schemas/AnalyticsDimensionValue'
            description: The values a dimension actually holds inside the window, most frequent first, after the dataset has collapsed its observations.
            required:
                - dataset
                - dimension
                - values
        AnalyticsField:
            type: object
            properties:
                aggregations:
                    type: array
                    items:
                        type: string
                    description: 'Ops a field admits: aggregations on a measure, count_distinct on a dimension'
                default:
                    type: boolean
                    description: 'Part of the query the dataset opens on: a default dimension is in the opening group-by'
                    example: true
                description:
                    type: string
                    description: What the field is and which producers fill it, when the catalog has something to say beyond the name
                lookup:
                    $ref: '#/components/schemas/AnalyticsLookup'
                name:
                    type: string
                    example: user
                operators:
                    type: array
                    items:
                        type: string
                    description: Filter operators a dimension admits
                role:
                    type: string
                    enum:
                        - dimension
                        - measure
                type:
                    type: string
                    enum:
                        - string
                        - int64
                        - float64
                unit:
                    type: string
                    description: Unit of a measure, when it has one
                    example: ms
            description: One queryable field on a dataset.
            required:
                - name
                - type
                - role
                - default
        AnalyticsFilter:
            type: object
            properties:
                field:
                    type: string
                    description: Dimension to filter on
                    example: surface
                operator:
                    type: string
                    description: Operator the dimension admits, per describe
                    enum:
                        - equals
                        - in
                values:
                    type: array
                    items:
                        type: string
                    description: equals takes exactly one value; in matches any of them.
                    minItems: 1
            description: A filter on a dimension. All filters are ANDed.
            required:
                - field
                - operator
                - values
        AnalyticsLookup:
            type: object
            properties:
                description:
                    type: string
                    description: What the map is and where it is set
                name:
                    type: string
                    example: mcp_server_display_names
            description: 'A per-project map a dimension reads through at query time: a reported value with an entry shows as its target, the rest show as reported.'
            required:
                - name
                - description
        AnalyticsMeasure:
            type: object
            properties:
                alias:
                    type: string
                    description: Result column name. Defaults to the op, or op_field.
                    example: total_ms
                field:
                    type: string
                    description: 'Field the op applies to: a dimension for count_distinct, a measure otherwise. Absent for count.'
                    example: duration_ms
                op:
                    type: string
                    description: Aggregation to apply. count takes no field; count_distinct takes a dimension that admits it; every other op needs a measure field that admits it, per describe.
                    example: sum
                    enum:
                        - count
                        - count_distinct
                        - sum
                        - avg
                        - min
                        - max
                        - p50
                        - p95
                        - p99
            description: 'A composed measure: an op over a field, or count alone.'
            required:
                - op
        AnalyticsOrderBy:
            type: object
            properties:
                direction:
                    type: string
                    default: desc
                    enum:
                        - asc
                        - desc
                measure:
                    type: string
                    description: Alias of a requested measure
                    example: total_ms
            description: Sort a grouped result by one of its measures.
            required:
                - measure
        AnalyticsQueryPayload:
            type: object
            properties:
                dataset:
                    type: string
                    description: Dataset to query, per describe
                    example: tool_calls
                dimensions:
                    type: array
                    items:
                        type: string
                    description: Group-by key when grouped; projected columns when ungrouped. At most 3.
                filters:
                    type: array
                    items:
                        $ref: '#/components/schemas/AnalyticsFilter'
                    description: Filters, ANDed. At most 100 values per filter.
                from:
                    type: string
                    description: Start of the half-open window [from, to), ISO 8601
                    example: "2026-09-01T00:00:00Z"
                    format: date-time
                grain:
                    type: string
                    description: Time bucket width for a grouped query. Absent means none.
                    enum:
                        - none
                        - hour
                        - day
                        - week
                        - month
                limit:
                    type: integer
                    description: Maximum rows. Defaults to 100; at most 1000 for a grouped result and 200 for ungrouped rows.
                    default: 100
                    format: int64
                    minimum: 1
                    maximum: 1000
                measures:
                    type: array
                    items:
                        $ref: '#/components/schemas/AnalyticsMeasure'
                    description: Composed measures. Required when grouped, forbidden when ungrouped.
                order_by:
                    type: array
                    items:
                        $ref: '#/components/schemas/AnalyticsOrderBy'
                    description: Sort for a grouped result, by measure alias. Ungrouped rows are always newest first.
                to:
                    type: string
                    description: End of the half-open window [from, to), ISO 8601
                    example: "2026-09-08T00:00:00Z"
                    format: date-time
                ungrouped:
                    type: boolean
                    description: Return rows at the dataset's grain instead of aggregating.
                    default: false
            description: A query against one dataset, in catalog vocabulary. Organization comes from the session and project from the project header; neither is a field.
            required:
                - dataset
                - from
                - to
        AnalyticsQueryResult:
            type: object
            properties:
                dataset:
                    type: string
                    description: The dataset queried
                plan:
                    type: string
                    description: A stable diagnostic identifier for how the query was answered. Deliberately not a table name.
                rows:
                    type: array
                    items:
                        type: object
                        additionalProperties: true
                    description: Result rows
            description: One shape for both modes. Row keys are the requested dimension names plus each measure's alias; time_bucket is present only when grain is set, and time on ungrouped rows.
            required:
                - dataset
                - plan
                - rows
        AnthropicInferenceConfig:
            type: object
            properties:
                enabled:
                    type: boolean
                has_signing_secret:
                    type: boolean
                id:
                    type: string
                    description: Integration identifier. Omitted before setup.
                    format: uuid
                webhook_path:
                    type: string
                    description: Webhook path on the API server. Omitted before setup.
            description: Organization-owned Anthropic inference hook. Signing secrets are write-only and encrypted at rest.
            required:
                - has_signing_secret
                - enabled
        ApplyDirectoryRoleSetupForm:
            type: object
            properties:
                grant_set:
                    type: array
                    items:
                        $ref: '#/components/schemas/RoleGrant'
                    description: Optional grants given to every role this request creates. Omit to create roles with no grants. Existing roles are never changed.
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/ApplyDirectoryRoleSetupItem'
                    description: The sources to set up. Each source may appear once.
                    minItems: 1
                    maxItems: 500
            required:
                - items
        ApplyDirectoryRoleSetupItem:
            type: object
            properties:
                roles:
                    type: array
                    items:
                        $ref: '#/components/schemas/ApplyDirectoryRoleSetupRole'
                    description: The complete role set for the source. Empty removes every mapping for the source.
                source:
                    $ref: '#/components/schemas/DirectoryRoleSetupSource'
                version:
                    type: string
                    description: The item version from previewDirectoryRoleSetup.
            required:
                - source
                - version
                - roles
        ApplyDirectoryRoleSetupResult:
            type: object
            properties:
                created_roles:
                    type: array
                    items:
                        $ref: '#/components/schemas/Role'
                    description: Roles this request created.
                mappings:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryRoleMapping'
                    description: The resulting mappings of every source in the request.
                side_effects:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryRoleSetupSideEffect'
                    description: Work requested after commit.
            required:
                - created_roles
                - mappings
                - side_effects
        ApplyDirectoryRoleSetupRole:
            type: object
            properties:
                create_name:
                    type: string
                    description: Name of a role to create. Items in the batch that name the same new role share it.
                    minLength: 1
                role_urn:
                    type: string
                    description: Principal URN of an existing role.
            description: 'One role in an item''s role set: an existing role by principal URN, or a new role by name. Set exactly one.'
        ApprovalDecision:
            type: object
            properties:
                decided_at:
                    type: string
                    description: When the decision was made.
                    format: date-time
                decided_by:
                    type: string
                    description: Who decided.
                decision:
                    type: string
                    description: Either approved or denied.
                evidence:
                    description: 'The evidence as it stood when this decision was made. Frozen at decision time: a later re-gather updates the request''s evidence but never this snapshot, so what the reviewer actually saw stays inspectable.'
                evidence_version:
                    type: integer
                    description: Shape version of the frozen evidence payload, copied from the request at decision time.
                    format: int64
                granted_principal_urns:
                    type: array
                    items:
                        type: string
                    description: Principals the approval covers. Empty for a denial.
                id:
                    type: string
                    description: The decision ID.
                rationale:
                    type: string
                    description: Why. Written to be cited when explaining the decision to the requester.
                research_report_id:
                    type: string
                    description: The research report this decision cited, when one informed it.
            description: A recorded approve or deny, with the evidence it rested on.
            required:
                - id
                - decision
                - decided_by
                - granted_principal_urns
                - evidence_version
                - decided_at
        ApprovalRequestDetail:
            type: object
            properties:
                decisions:
                    type: array
                    items:
                        $ref: '#/components/schemas/ApprovalDecision'
                    description: Every decision made on this server, newest first. A repeat request starts from the last rationale rather than from zero.
                evidence:
                    description: The deterministic signals gathered for this server, as they stood when last collected. Every item is a declaration by the server or its registry, never an observation of behaviour.
                evidence_collected_at:
                    type: string
                    description: When the evidence was last gathered.
                    format: date-time
                evidence_diff:
                    $ref: '#/components/schemas/EvidenceDiff'
                evidence_version:
                    type: integer
                    description: Shape version of the evidence payload, so an older snapshot stays interpretable.
                    format: int64
                request:
                    $ref: '#/components/schemas/ApprovalRequestSummary'
                requesters:
                    type: array
                    items:
                        $ref: '#/components/schemas/ApprovalRequester'
                    description: Everyone who asked.
                research_reports:
                    type: array
                    items:
                        $ref: '#/components/schemas/ResearchReport'
                    description: Every research-agent run for this request, newest first.
            description: An approval request with everything needed to decide it.
            required:
                - request
                - requesters
                - decisions
                - research_reports
        ApprovalRequestSummary:
            type: object
            properties:
                artifact_ref:
                    type: string
                    description: The resolved artifact identity. Absent when the server could not be identified, which must surface as unknown rather than as an absence of findings.
                created_at:
                    type: string
                    description: When the request was first raised.
                    format: date-time
                evidence_changed_at:
                    type: string
                    description: When the daily recheck first found the permission-relevant evidence differing from what the latest approval rested on. Absent when nothing has drifted. Cleared only by recording a new decision.
                    format: date-time
                id:
                    type: string
                    description: The approval request ID.
                requester_count:
                    type: integer
                    description: How many people have asked for this server.
                    format: int64
                server_slug:
                    type: string
                    description: The Shadow MCP inventory page slug for a server_url target — the same identifier the inventory derives from the canonical URL, so a request links to the server page it describes. Absent for stdio targets.
                status:
                    type: string
                    description: 'The request''s current status: unreviewed, requested, approved, denied, or superseded (the latest decision was explicitly displaced by a policy URL-list edit; history preserved, no enforcement derives from it until re-decided).'
                target_kind:
                    type: string
                    description: The namespace of the requested reference, such as server_url or stdio_command.
                target_raw:
                    type: string
                    description: The stored display form of the requested reference, with credential-shaped material (URL query strings and userinfo, secret-named flag and environment values in commands) redacted at intake.
                updated_at:
                    type: string
                    description: When the request last changed.
                    format: date-time
                version_pinned:
                    type: boolean
                    description: Whether the reference names an exact version.
            description: One MCP server awaiting a decision.
            required:
                - id
                - target_kind
                - target_raw
                - version_pinned
                - status
                - requester_count
                - created_at
                - updated_at
        ApprovalRequester:
            type: object
            properties:
                note:
                    type: string
                    description: The requester's justification. The one input no automated evidence supplies.
                requested_at:
                    type: string
                    description: When they asked.
                    format: date-time
                user_email:
                    type: string
                    description: The requester's email, when known.
                user_id:
                    type: string
                    description: The requester.
            description: Someone who asked for a server, and why.
            required:
                - user_id
                - requested_at
        ApproveAllSkillSuggestionsRequestBody:
            type: object
            properties:
                suggestion_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: Optional suggestion IDs to approve. Omitted or empty approves every currently open suggestion.
        ApproveAllSkillSuggestionsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillSuggestionApprovalItem'
                    description: The outcomes in snapshot order.
            description: Per-item outcomes for the snapshotted open suggestions.
            required:
                - items
        ApproveSkillSuggestionRequestBody:
            type: object
            properties:
                change_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: Optional IDs of the proposed changes to take together as one new version. The suggestion stays open carrying whatever is left. Cannot be combined with edited content.
                content:
                    type: string
                    description: Optional edited complete SKILL.md content. Handlers enforce a maximum size of 65,536 UTF-8 bytes.
                id:
                    type: string
                    description: The suggestion ID.
                    format: uuid
            required:
                - id
        ApproveSkillSuggestionResult:
            type: object
            properties:
                outcome:
                    type: string
                    description: Whether the suggestion created a version, created one and stayed open carrying its remaining changes, or was stale.
                    enum:
                        - applied
                        - partially_applied
                        - superseded
                suggestion:
                    $ref: '#/components/schemas/SkillEditSuggestion'
                version:
                    $ref: '#/components/schemas/SkillVersion'
            description: The result of approving one suggestion.
            required:
                - suggestion
                - outcome
        ArchiveSkillRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The skill ID.
                    format: uuid
            required:
                - id
        Asset:
            type: object
            properties:
                content_length:
                    type: integer
                    description: The content length of the asset
                    format: int64
                content_type:
                    type: string
                    description: The content type of the asset
                created_at:
                    type: string
                    description: The creation date of the asset.
                    format: date-time
                id:
                    type: string
                    description: The ID of the asset
                kind:
                    type: string
                    enum:
                        - openapiv3
                        - image
                        - functions
                        - chat_attachment
                        - unknown
                sha256:
                    type: string
                    description: The SHA256 hash of the asset
                updated_at:
                    type: string
                    description: The last update date of the asset.
                    format: date-time
            required:
                - id
                - kind
                - sha256
                - content_type
                - content_length
                - created_at
                - updated_at
        AssignOrganizationOnboardingPlaybookRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
                playbook_id:
                    type: string
                    description: Omit to clear the assignment.
            required:
                - organization_id
        Assistant:
            type: object
            properties:
                agent_id:
                    type: string
                    description: The assistant's dedicated agent ID, when it has one.
                    format: uuid
                created_at:
                    type: string
                    description: Creation timestamp.
                    format: date-time
                created_by_user_id:
                    type: string
                    description: The ID of the user who created the assistant, if known.
                id:
                    type: string
                    description: The assistant ID.
                    format: uuid
                identity_state:
                    type: string
                    description: NEVER_CONFIGURED when the assistant has no dedicated agent, ACTIVE when its dedicated agent is usable, and UNAVAILABLE when that agent is suspended, revoked, or deleted. This is configuration state, not permission to execute.
                    enum:
                        - NEVER_CONFIGURED
                        - ACTIVE
                        - UNAVAILABLE
                instructions:
                    type: string
                    description: The system instructions for the assistant.
                max_concurrency:
                    type: integer
                    description: Maximum active warm runtimes for the assistant.
                    format: int64
                mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AssistantMCPServerRef'
                    description: MCP servers attached to the assistant that are not hosted (toolset-backed); hosted servers are listed under toolsets.
                model:
                    type: string
                    description: The model identifier used by the assistant.
                name:
                    type: string
                    description: The assistant name.
                project_id:
                    type: string
                    description: The project ID owning the assistant.
                    format: uuid
                runtime_version:
                    type: integer
                    description: 'Desired runtime protocol version: 2 is the default runtime, 3 is Kit. Runtime changes require a settled assistant and available destination.'
                    enum:
                        - 2
                        - 3
                    format: int64
                skills:
                    type: array
                    items:
                        $ref: '#/components/schemas/AssistantSkillRef'
                    description: Skills attached to the assistant.
                status:
                    type: string
                    description: The assistant status.
                    enum:
                        - active
                        - paused
                toolsets:
                    type: array
                    items:
                        $ref: '#/components/schemas/AssistantToolsetRef'
                    description: Hosted (toolset-backed) MCP servers attached to the assistant, by toolset slug.
                updated_at:
                    type: string
                    description: Last update timestamp.
                    format: date-time
                warm_ttl_seconds:
                    type: integer
                    description: Warm runtime TTL in seconds.
                    format: int64
            required:
                - id
                - project_id
                - name
                - model
                - instructions
                - toolsets
                - mcp_servers
                - skills
                - warm_ttl_seconds
                - max_concurrency
                - runtime_version
                - status
                - created_at
                - updated_at
        AssistantMCPServerRef:
            type: object
            properties:
                endpoint_slug:
                    type: string
                    description: The slug of the server's Speakeasy-hosted MCP endpoint (/mcp/{endpoint_slug}). Populated on reads; ignored on writes. Absent when the server has no Speakeasy-hosted endpoint.
                environment_slug:
                    type: string
                    description: Optional environment slug used when connecting to the MCP server.
                mcp_server_slug:
                    type: string
                    description: The MCP server slug exposed to the assistant. Covers every backend, including hosted (toolset-backed) servers.
            required:
                - mcp_server_slug
        AssistantMemory:
            type: object
            properties:
                assistant_id:
                    type: string
                    description: The assistant ID owning the memory.
                    format: uuid
                content:
                    type: string
                    description: The memory content.
                created_at:
                    type: string
                    description: Creation timestamp.
                    format: date-time
                deleted_at:
                    type: string
                    description: Timestamp at which the memory was soft-deleted.
                    format: date-time
                id:
                    type: string
                    description: The assistant memory ID.
                    format: uuid
                last_access:
                    type: string
                    description: Timestamp of the most recent access.
                    format: date-time
                superseded_at:
                    type: string
                    description: Timestamp at which the memory was superseded by another memory.
                    format: date-time
                supersedes_id:
                    type: string
                    description: The ID of the memory this one supersedes, if any.
                    format: uuid
                tags:
                    type: array
                    items:
                        type: string
                    description: Tags associated with the memory.
                updated_at:
                    type: string
                    description: Last update timestamp.
                    format: date-time
                valid_at:
                    type: string
                    description: Timestamp at which the memory becomes valid.
                    format: date-time
            required:
                - id
                - assistant_id
                - content
                - tags
                - created_at
                - updated_at
                - last_access
                - valid_at
        AssistantSessionSummary:
            type: object
            properties:
                messages:
                    type: integer
                    description: Number of messages created in the range
                    format: int64
                sessions:
                    type: integer
                    description: Number of sessions with activity in the range
                    format: int64
                total_cost:
                    type: number
                    description: Cost in USD incurred in the range
                    format: double
                total_tokens:
                    type: integer
                    description: Tokens consumed in the range
                    format: int64
            required:
                - sessions
                - messages
                - total_tokens
                - total_cost
        AssistantSkillRef:
            type: object
            properties:
                pinned_version_id:
                    type: string
                    description: The pinned version, absent when tracking latest valid.
                    format: uuid
                resolved_version_id:
                    type: string
                    description: The currently resolved valid version.
                    format: uuid
                skill_id:
                    type: string
                    description: The attached skill ID.
                    format: uuid
            required:
                - skill_id
                - resolved_version_id
        AssistantToolsetRef:
            type: object
            properties:
                environment_slug:
                    type: string
                    description: Optional environment slug used when invoking the toolset.
                toolset_slug:
                    type: string
                    description: The toolset slug exposed to the assistant.
            required:
                - toolset_slug
        AttachBindingRequestBody:
            type: object
            properties:
                principal_id:
                    type: string
                    format: uuid
                remote_session_id:
                    type: string
                    format: uuid
                user_session_issuer_id:
                    type: string
                    format: uuid
            required:
                - principal_id
                - user_session_issuer_id
                - remote_session_id
        AttachKeySetForm:
            type: object
            properties:
                id:
                    type: string
                    description: The remote_session_client id.
                    format: uuid
                json_web_key_set_id:
                    type: string
                    description: The organization JSON Web Key Set to sign this client's private_key_jwt assertions with. Must belong to the client's organization.
                    format: uuid
            description: Form for attaching an organization JSON Web Key Set to a remote_session_client.
            required:
                - id
                - json_web_key_set_id
        AttachUserSessionIssuerForm:
            type: object
            properties:
                id:
                    type: string
                    description: The remote_session_client id.
                    format: uuid
                user_session_issuer_id:
                    type: string
                    description: The user_session_issuer to attach.
                    format: uuid
            description: Form for attaching a user_session_issuer to a remote_session_client via the join table.
            required:
                - id
                - user_session_issuer_id
        AudienceOption:
            type: object
            properties:
                description:
                    type: string
                    description: 'Secondary line: email, member count, or attribute key.'
                display_name:
                    type: string
                    description: Human-readable name for the principal.
                kind:
                    type: string
                    description: What the principal identifies.
                    enum:
                        - everyone
                        - role
                        - user
                        - agent
                member_count:
                    type: integer
                    description: How many people the principal reaches, when known.
                    format: int64
                principal_urn:
                    type: string
                    description: Canonical principal URN to grant access to.
            required:
                - principal_urn
                - kind
                - display_name
        AuditLog:
            type: object
            properties:
                acting_client_id:
                    type: string
                    description: The registered OAuth client the call authenticated as, when it had one. Absent for calls that carried no OAuth client.
                acting_surface:
                    type: string
                    description: 'How the change was made: ''dashboard'', ''api_key'', ''platform_mcp'', ''project_assistant'', or ''unknown'' when no surface was identifiable. Always present.'
                action:
                    type: string
                actor_display_name:
                    type: string
                actor_id:
                    type: string
                actor_slug:
                    type: string
                actor_type:
                    type: string
                after_snapshot: {}
                before_snapshot: {}
                created_at:
                    type: string
                    description: The creation date of the audit log.
                    format: date-time
                id:
                    type: string
                metadata:
                    type: object
                    additionalProperties: true
                project_id:
                    type: string
                project_slug:
                    type: string
                subject_display_name:
                    type: string
                subject_id:
                    type: string
                subject_slug:
                    type: string
                subject_type:
                    type: string
            required:
                - id
                - actor_id
                - actor_type
                - action
                - subject_id
                - subject_type
                - acting_surface
                - created_at
        AuditLogFacetOption:
            type: object
            properties:
                count:
                    type: integer
                    description: The number of audit logs for this facet value
                    format: int64
                display_name:
                    type: string
                    description: The display label shown for the facet value
                value:
                    type: string
                    description: The facet value used for filtering
            required:
                - value
                - display_name
                - count
        AuthorizeRequestBody:
            type: object
            properties:
                code_challenge:
                    type: string
                    description: 'PKCE code challenge: base64url(sha256(code_verifier)).'
                    minLength: 43
                    maxLength: 128
                code_challenge_method:
                    type: string
                    description: PKCE challenge method. Only S256 is supported.
                    enum:
                        - S256
                project_slug:
                    type: string
                    description: Optional project slug to scope the minted key to. Defaults to the org's default (first) project when omitted.
            required:
                - code_challenge
                - code_challenge_method
        AuthorizeResponseBody:
            type: object
            properties:
                code:
                    type: string
                    description: The opaque one-time code. Hand this to the device agent, which redeems it with its code_verifier.
                expires_in:
                    type: integer
                    description: Lifetime of the code in seconds.
                    format: int64
            required:
                - code
                - expires_in
        AuthzChallenge:
            type: object
            properties:
                evaluated_grant_count:
                    type: integer
                    description: Total grants evaluated.
                    format: int64
                id:
                    type: string
                    description: Unique challenge identifier.
                matched_grant_count:
                    type: integer
                    description: Number of grants that matched.
                    format: int64
                operation:
                    type: string
                    enum:
                        - require
                        - require_any
                        - filter
                organization_id:
                    type: string
                    description: Organization the principal was acting in.
                outcome:
                    type: string
                    enum:
                        - allow
                        - deny
                        - error
                photo_url:
                    type: string
                    description: User avatar URL when available.
                principal_type:
                    type: string
                    description: Kind of principal.
                    enum:
                        - user
                        - api_key
                        - assistant
                        - agent
                        - workload
                principal_urn:
                    type: string
                    description: Principal URN e.g. user:<uuid> or api_key:<id>.
                project_id:
                    type: string
                    description: Project scope (empty for org-level checks).
                reason:
                    type: string
                    enum:
                        - grant_matched
                        - no_grants
                        - scope_unsatisfied
                        - deny_grant
                        - invalid_check
                        - rbac_skipped_apikey
                        - dev_override
                resolution_role_slug:
                    type: string
                    description: Role slug assigned (when resolution_type=role_assigned).
                resolution_type:
                    type: string
                    description: How the challenge was resolved.
                    enum:
                        - role_assigned
                        - dismissed
                resolved_at:
                    type: string
                    description: When the challenge was resolved by an admin.
                    format: date-time
                resolved_by:
                    type: string
                    description: URN of the admin who resolved.
                resource_id:
                    type: string
                    description: Resource ID of the check.
                resource_kind:
                    type: string
                    description: Resource kind of the check.
                role_slugs:
                    type: array
                    items:
                        type: string
                    description: Roles the principal had loaded.
                scope:
                    type: string
                    description: Scope that was checked.
                selector:
                    type: object
                    description: Complete selector captured for the check. Omitted for legacy or malformed challenge data.
                    additionalProperties:
                        type: string
                timestamp:
                    type: string
                    description: When the authz decision was made.
                    format: date-time
                user_email:
                    type: string
                    description: Email when available.
            required:
                - id
                - timestamp
                - organization_id
                - principal_urn
                - principal_type
                - operation
                - outcome
                - reason
                - scope
                - role_slugs
                - evaluated_grant_count
                - matched_grant_count
        AwsIamCredential:
            type: object
            properties:
                assume_role_arn:
                    type: string
                    description: The customer IAM role ARN Speakeasy assumes.
                created_at:
                    type: string
                    description: When the credential was created.
                    format: date-time
                external_id:
                    type: string
                    description: The Speakeasy-generated ExternalId the customer must require in their role trust policy. Present when Speakeasy assumes the role with an ExternalId.
                id:
                    type: string
                    description: The ID of the external credential.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the credential.
                oidc_audience:
                    type: string
                    description: The OIDC audience. Present when Speakeasy assumes the role with a web identity.
                oidc_subject:
                    type: string
                    description: Optional OIDC subject pin (web-identity approach).
                organization_id:
                    type: string
                    description: The organization that owns the credential.
                provider:
                    type: string
                    description: The cloud provider of the credential.
                    enum:
                        - aws_iam
                        - gcp_iam
                sts_region:
                    type: string
                    description: Optional STS region override.
                updated_at:
                    type: string
                    description: When the credential was last updated.
                    format: date-time
            description: An AWS IAM external credential.
            required:
                - id
                - organization_id
                - provider
                - name
                - created_at
                - updated_at
        AwsKmsKey:
            type: object
            properties:
                algorithm:
                    type: string
                    description: The signing algorithm of the key.
                    enum:
                        - RS256
                        - ES256
                created_at:
                    type: string
                    description: When the key was created.
                    format: date-time
                customer_grant_reference:
                    type: string
                    description: The Speakeasy identity (GCP service-account email or AWS principal ARN) the customer granted on the key for the key-policy / IAM-grant model. Not a secret.
                external_credential_id:
                    type: string
                    description: The external credential Speakeasy uses to authenticate to the key.
                    format: uuid
                id:
                    type: string
                    description: The ID of the external key.
                    format: uuid
                key_arn:
                    type: string
                    description: The ARN of the AWS KMS key.
                name:
                    type: string
                    description: A human-readable name for the key.
                organization_id:
                    type: string
                    description: The organization that owns the key.
                provider:
                    type: string
                    description: The cloud KMS provider of the key.
                    enum:
                        - aws_kms
                        - gcp_kms
                updated_at:
                    type: string
                    description: When the key was last updated.
                    format: date-time
            description: An AWS KMS external key.
            required:
                - key_arn
                - id
                - organization_id
                - external_credential_id
                - provider
                - algorithm
                - name
                - created_at
                - updated_at
        BaseResourceAttributes:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the resource.
                    format: date-time
                description:
                    type: string
                    description: Description of the resource
                id:
                    type: string
                    description: The ID of the resource
                mime_type:
                    type: string
                    description: Optional MIME type of the resource
                name:
                    type: string
                    description: The name of the resource
                project_id:
                    type: string
                    description: The ID of the project
                resource_urn:
                    type: string
                    description: The URN of this resource
                title:
                    type: string
                    description: Optional title for the resource
                updated_at:
                    type: string
                    description: The last update date of the resource.
                    format: date-time
                uri:
                    type: string
                    description: The URI of the resource
            description: Common attributes shared by all resource types
            required:
                - id
                - project_id
                - name
                - description
                - uri
                - resource_urn
                - created_at
                - updated_at
        BaseToolAttributes:
            type: object
            properties:
                annotations:
                    $ref: '#/components/schemas/ToolAnnotations'
                canonical:
                    $ref: '#/components/schemas/CanonicalToolAttributes'
                canonical_name:
                    type: string
                    description: The canonical name of the tool. Will be the same as the name if there is no variation.
                confirm:
                    type: string
                    description: Confirmation mode for the tool
                confirm_prompt:
                    type: string
                    description: Prompt for the confirmation
                created_at:
                    type: string
                    description: The creation date of the tool.
                    format: date-time
                description:
                    type: string
                    description: Description of the tool
                id:
                    type: string
                    description: The ID of the tool
                name:
                    type: string
                    description: The name of the tool
                project_id:
                    type: string
                    description: The ID of the project
                schema:
                    type: string
                    description: JSON schema for the request
                schema_version:
                    type: string
                    description: Version of the schema
                summarizer:
                    type: string
                    description: Summarizer for the tool
                tool_urn:
                    type: string
                    description: The URN of this tool
                updated_at:
                    type: string
                    description: The last update date of the tool.
                    format: date-time
                variation:
                    $ref: '#/components/schemas/ToolVariation'
            description: Common attributes shared by all tool types
            required:
                - id
                - project_id
                - name
                - canonical_name
                - description
                - schema
                - tool_urn
                - created_at
                - updated_at
        BeginResponseBody:
            type: object
            properties:
                authorization_url:
                    type: string
                    description: Slack authorization URL bound to the current session.
            required:
                - authorization_url
        BeginSlackDirectoryConnectionRequestBody:
            type: object
            properties:
                connection_id:
                    type: string
                    description: Reconnect this workspace.
                    format: uuid
        BillingEmail:
            type: object
            properties:
                email:
                    type: string
                    description: The configured billing notification email. Omitted when organization administrators receive billing notifications.
                    format: email
        BuiltInCard:
            type: object
            properties:
                dataset:
                    type: string
                    description: The catalog dataset the card asks
                    example: tool_calls
                description:
                    type: string
                    description: What the card shows, when there is more to say
                h:
                    type: integer
                    description: Height in rows
                    format: int64
                name:
                    type: string
                    description: What the card is called
                query:
                    type: object
                    description: 'The question: window, grain, dimensions, measures, filters, order and limit, in the shape a saved widget stores.'
                    additionalProperties: true
                visualization:
                    type: object
                    description: 'How the question is drawn: a chart type and its options.'
                    additionalProperties: true
                w:
                    type: integer
                    description: Width in columns
                    format: int64
                x:
                    type: integer
                    description: Column the card starts at, from 0
                    format: int64
                "y":
                    type: integer
                    description: Row the card starts at, from 0
                    format: int64
            description: 'One card of a Speakeasy-built dashboard: a widget''s question and drawing, as a saved widget stores them, with where it sits on the 12-column grid. It is not a saved widget; duplicating the dashboard makes one of it.'
            required:
                - name
                - dataset
                - query
                - visualization
                - x
                - "y"
                - w
                - h
        BuiltInDashboard:
            type: object
            properties:
                cards:
                    type: array
                    items:
                        $ref: '#/components/schemas/BuiltInCard'
                    description: Its cards, in no particular order; the grid places them by position
                description:
                    type: string
                    description: What the dashboard is for
                name:
                    type: string
                    description: Display name
                slug:
                    type: string
                    description: Names the dashboard in links and when duplicating it
                    example: mcp-tools
            description: 'A dashboard Speakeasy ships with the product: its cards are laid out in code and are the same in every project. It is read only; duplicating it makes a project dashboard, with a saved widget per card, that can be changed.'
            required:
                - slug
                - name
                - description
                - cards
        BuiltinExclusionCategory:
            type: object
            properties:
                entries:
                    type: array
                    items:
                        $ref: '#/components/schemas/BuiltinExclusionEntry'
                    description: The rules in this category.
                label:
                    type: string
                    description: Human category label, e.g. "Test credit cards".
            description: A named group of built-in exclusion rules.
            required:
                - label
                - entries
        BuiltinExclusionEntry:
            type: object
            properties:
                description:
                    type: string
                    description: Human rationale for why these values are known-safe.
                id:
                    type: string
                    description: Stable rule id.
                reason:
                    type: string
                    description: Label surfaced when this rule suppresses a finding.
                samples:
                    type: array
                    items:
                        type: string
                    description: Example values — published test/documentation data, never real secrets.
            description: One rule in the built-in exclusion library. Deliberately omits internal detection-engine identifiers (sources, rule ids) so they are not exposed to end users.
            required:
                - id
                - reason
                - description
        BulkUpdateAccountTypeRequestBody:
            type: object
            properties:
                account_type:
                    type: string
                    description: New gram_account_type for every listed organization.
                    enum:
                        - free
                        - pro
                        - payg
                        - enterprise
                ids:
                    type: array
                    items:
                        type: string
                        minLength: 1
                    description: Organization IDs to update.
                    minItems: 1
                    maxItems: 1000
            required:
                - ids
                - account_type
        BusinessMemory:
            type: object
            properties:
                body:
                    type: string
                    description: Normalized knowledge body.
                content_scope:
                    type: array
                    items:
                        type: string
                    description: Canonical entity and topic labels.
                embedding_model:
                    type: string
                    description: Model used to create the semantic-search vector.
                extracted_at:
                    type: string
                    description: Extraction timestamp.
                    format: date-time
                extraction_model:
                    type: string
                    description: Model used to extract the memory.
                id:
                    type: string
                    description: Memory ID.
                    format: uuid
                lifecycle_state:
                    type: string
                    description: Current lifecycle state.
                memory_type:
                    type: string
                    description: Knowledge type.
                    enum:
                        - glossary
                        - procedure
                        - result
                similarity:
                    type: number
                    description: Cosine similarity for semantic-search results.
                    format: double
                source_author_id:
                    type: string
                    description: Author associated with the source session.
                source_chat_id:
                    type: string
                    description: Chat the memory was extracted from, or unavailable if the source chat was deleted.
                source_turn:
                    type: integer
                    description: One-based transcript turn cited by the extractor.
                    format: int64
                structural_scope:
                    type: string
                    description: Materialized structural scope path.
            description: Knowledge extracted from a completed business session.
            required:
                - id
                - body
                - memory_type
                - structural_scope
                - content_scope
                - embedding_model
                - extraction_model
                - source_chat_id
                - extracted_at
                - lifecycle_state
        BusinessMemoryContentScopeNode:
            type: object
            properties:
                memory_count:
                    type: integer
                    description: Number of distinct memories assigned to this scope.
                    format: int64
                parent_scope:
                    type: string
                    description: Parent namespace. Omitted for namespace nodes.
                scope:
                    type: string
                    description: Namespace or exact content-scope tag.
            description: A content-scope namespace or exact tag and its distinct-memory count.
            required:
                - scope
                - memory_count
        CancelStripeSubscriptionRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
            required:
                - organization_id
        CanonicalToolAttributes:
            type: object
            properties:
                confirm:
                    type: string
                    description: Confirmation mode for the tool
                confirm_prompt:
                    type: string
                    description: Prompt for the confirmation
                description:
                    type: string
                    description: Description of the tool
                name:
                    type: string
                    description: The name of the tool
                summarizer:
                    type: string
                    description: Summarizer for the tool
                variation_id:
                    type: string
                    description: The ID of the variation that was applied to the tool
            description: The original details of a tool
            required:
                - variation_id
                - name
                - description
        CaptureEventPayload:
            type: object
            properties:
                distinct_id:
                    type: string
                    description: Distinct ID for the user or entity (defaults to organization ID if not provided)
                event:
                    type: string
                    description: Event name
                    example: button_clicked
                    minLength: 1
                    maxLength: 255
                properties:
                    type: object
                    description: Event properties as key-value pairs
                    example:
                        button_name: submit
                        page: checkout
                        value: 100
                    additionalProperties: true
            description: Payload for capturing a telemetry event
            required:
                - event
        CaptureEventResult:
            type: object
            properties:
                success:
                    type: boolean
                    description: Whether the event was successfully captured
            description: Result of capturing a telemetry event
            required:
                - success
        ChallengeBucket:
            type: object
            properties:
                challenge_count:
                    type: integer
                    description: Number of individual challenges in this bucket.
                    format: int64
                challenge_ids:
                    type: array
                    items:
                        type: string
                    description: IDs of all challenges in this bucket.
                evaluated_grant_count:
                    type: integer
                    description: Total grants evaluated.
                    format: int64
                first_seen:
                    type: string
                    description: Timestamp of the earliest challenge in the bucket.
                    format: date-time
                id:
                    type: string
                    description: ID of the most recent challenge in the bucket.
                last_seen:
                    type: string
                    description: Timestamp of the most recent challenge in the bucket.
                    format: date-time
                matched_grant_count:
                    type: integer
                    description: Number of grants that matched.
                    format: int64
                operation:
                    type: string
                    enum:
                        - require
                        - require_any
                        - filter
                organization_id:
                    type: string
                    description: Organization the principal was acting in.
                outcome:
                    type: string
                    enum:
                        - allow
                        - deny
                        - error
                photo_url:
                    type: string
                    description: User avatar URL when available.
                principal_type:
                    type: string
                    description: Kind of principal.
                    enum:
                        - user
                        - api_key
                        - assistant
                        - agent
                        - workload
                principal_urn:
                    type: string
                    description: Principal URN e.g. user:<uuid> or api_key:<id>.
                project_id:
                    type: string
                    description: Project scope (empty for org-level checks).
                reason:
                    type: string
                    enum:
                        - grant_matched
                        - no_grants
                        - scope_unsatisfied
                        - deny_grant
                        - invalid_check
                        - rbac_skipped_apikey
                        - dev_override
                resolution_role_slug:
                    type: string
                    description: Role slug assigned (when resolution_type=role_assigned).
                resolution_type:
                    type: string
                    description: How the bucket was resolved.
                    enum:
                        - role_assigned
                        - dismissed
                resolved_at:
                    type: string
                    description: When the bucket was resolved by an admin.
                    format: date-time
                resolved_by:
                    type: string
                    description: URN of the admin who resolved.
                resource_id:
                    type: string
                    description: Resource ID of the check.
                resource_kind:
                    type: string
                    description: Resource kind of the check.
                role_slugs:
                    type: array
                    items:
                        type: string
                    description: Roles the principal had loaded.
                scope:
                    type: string
                    description: Scope that was checked.
                user_email:
                    type: string
                    description: Email when available.
            description: A group of consecutive challenges with the same dimensions that occurred within a 10-minute window.
            required:
                - id
                - last_seen
                - first_seen
                - organization_id
                - principal_urn
                - principal_type
                - operation
                - outcome
                - reason
                - scope
                - role_slugs
                - evaluated_grant_count
                - matched_grant_count
                - challenge_count
                - challenge_ids
        ChallengeResolution:
            type: object
            properties:
                challenge_id:
                    type: string
                    description: ClickHouse challenge ID.
                created_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    description: Resolution record ID.
                organization_id:
                    type: string
                    description: Organization ID.
                principal_urn:
                    type: string
                    description: Denied principal.
                resolution_type:
                    type: string
                    enum:
                        - role_assigned
                        - dismissed
                resolved_by:
                    type: string
                    description: Admin who resolved.
                resource_id:
                    type: string
                    description: Resource ID.
                resource_kind:
                    type: string
                    description: Resource kind.
                role_slug:
                    type: string
                    description: Assigned role slug.
                scope:
                    type: string
                    description: Denied scope.
            required:
                - id
                - organization_id
                - challenge_id
                - principal_urn
                - scope
                - resolution_type
                - resolved_by
                - created_at
        ChangePrescriptionRequestBody:
            type: object
            properties:
                expected_version:
                    type: integer
                    format: int64
                expires_at:
                    type: string
                    format: date-time
                external_note:
                    type: string
                    maxLength: 500
                internal_note:
                    type: string
                    maxLength: 4000
                operation_id:
                    type: string
                    format: uuid
                organization_id:
                    type: string
                prescription_id:
                    type: string
                    format: uuid
                resource_scope:
                    type: string
                    enum:
                        - all
                        - selected
                selected_resource_inputs:
                    type: array
                    items:
                        type: string
                    maxItems: 1000
                start_mode:
                    type: string
                    enum:
                        - now
                        - at
                starts_at:
                    type: string
                    format: date-time
            required:
                - organization_id
                - operation_id
                - resource_scope
                - start_mode
                - internal_note
                - external_note
                - prescription_id
                - expected_version
        ChangeTrialEndDateRequestBody:
            type: object
            properties:
                ends_at:
                    type: string
                    description: New trial end date in UTC.
                    format: date-time
                id:
                    type: string
                    description: Organization ID.
                    minLength: 1
            required:
                - id
                - ends_at
        Chat:
            type: object
            properties:
                account_email:
                    type: string
                    description: Email of the AI account that produced the chat, resolved from the linked AI account. May differ from the employee's work email (e.g. a personal account).
                account_type:
                    type: string
                    description: Account type that produced the chat ('team', 'personal', or empty), resolved from the linked AI account.
                agent_id:
                    type: string
                    description: The ID of the agent that produced this session, recorded from the authenticated actor at capture. Set for sessions an agent drove directly, such as a channel session, which has no assistant record.
                agent_name:
                    type: string
                    description: The current name of the agent that produced this session. Absent when the agent has since been deleted, in which case agent_id is still reported.
                agent_usage:
                    $ref: '#/components/schemas/AgentUsage'
                assistant_agent_id:
                    type: string
                    description: The ID of the agent the assistant acts as, when the assistant has a dedicated agent identity
                assistant_id:
                    type: string
                    description: The ID of the assistant that produced this chat, if any
                assistant_name:
                    type: string
                    description: The name of the assistant that produced this chat, if any
                content_parts:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChatContentPart'
                    description: Non-turn content attached to this chat, such as prompt attachments.
                created_at:
                    type: string
                    description: When the chat was created.
                    format: date-time
                external_user_id:
                    type: string
                    description: The ID of the external user who created the chat
                generation:
                    type: integer
                    description: The generation that this response's messages belong to. A generation is an immutable snapshot of the transcript; a new one is opened on compaction or message edits, while normal turns append to the current one.
                    format: int64
                has_more_after:
                    type: boolean
                    description: Whether newer messages exist after the last message in this page (within the returned generation). Load them with an `after_seq` cursor.
                has_more_before:
                    type: boolean
                    description: Whether older messages exist before the first message in this page (within the returned generation). Load them with a `before_seq` cursor.
                id:
                    type: string
                    description: The ID of the chat
                last_message_timestamp:
                    type: string
                    description: When the last message in the chat was created.
                    format: date-time
                litellm_proxied:
                    type: boolean
                    description: True when the session's traffic was observed by the LiteLLM proxy, including sessions whose transcript is owned by the agent's own hook stream
                match_segments:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskSegment'
                    description: 'Present only when `query` was requested: contiguous runs of returned messages, each spanning one or more query matches and their surrounding context. Use each segment''s cursors to expand it.'
                max_generation:
                    type: integer
                    description: The highest generation number present for this chat. To load the full history, walk from `max_generation` down to 0, requesting each generation in turn.
                    format: int64
                messages:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChatMessage'
                    description: The list of messages in the chat for the returned generation, ordered oldest to newest by `seq`.
                num_messages:
                    type: integer
                    description: The number of messages in the chat
                    format: int64
                originating_client:
                    type: string
                    description: The supported client that originated a chat routed through the source, when known
                participants:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChatParticipant'
                    description: Distinct observed conversation participants across the session.
                pinned:
                    type: boolean
                    description: True when the chat is pinned
                risk_findings_count:
                    type: integer
                    description: Number of risk findings recorded against messages in this chat (project-scoped, found=true). Only populated by endpoints that join risk data; absent elsewhere.
                    format: int64
                risk_segments:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskSegment'
                    description: 'Present only when `risk_only` was requested: contiguous runs of returned messages, each spanning a risk finding and its surrounding context. Use each segment''s cursors to expand it.'
                slack_channel_id:
                    type: string
                    description: Observed Slack channel associated with this session.
                slack_channel_name:
                    type: string
                    description: Observed Slack channel name as reported by the captured envelope.
                slack_team_id:
                    type: string
                    description: Observed Slack workspace associated with this session.
                source:
                    type: string
                    description: 'The source of the chat: Elements, Playground, ClaudeCode (inferred from messages)'
                summary:
                    type: string
                    description: Persisted LLM summary of the session transcript, if one has been generated
                summary_generated_at:
                    type: string
                    description: When the session summary was last generated.
                    format: date-time
                title:
                    type: string
                    description: The title of the chat
                total_cost:
                    type: number
                    description: Total cost in USD for this chat
                    format: double
                total_input_tokens:
                    type: integer
                    description: Total input tokens used in this chat
                    format: int64
                total_output_tokens:
                    type: integer
                    description: Total output tokens used in this chat
                    format: int64
                total_tokens:
                    type: integer
                    description: Total tokens (input + output) used in this chat
                    format: int64
                totals:
                    $ref: '#/components/schemas/ChatTotals'
                updated_at:
                    type: string
                    description: When the chat was last updated.
                    format: date-time
                user_id:
                    type: string
                    description: The ID of the user who created the chat
                work_units:
                    type: number
                    description: Work units of value delivered in this chat as judged by the work-units analysis. Absent unless the organization has work-units analysis enabled and this chat has been scored.
                    format: double
                work_units_report:
                    type: string
                    description: Full work-units analysis verdict as JSON (per-task breakdown, rationales, and flags). Present only when `work_units` is present.
            required:
                - messages
                - content_parts
                - generation
                - max_generation
                - has_more_before
                - has_more_after
                - id
                - title
                - num_messages
                - created_at
                - updated_at
                - last_message_timestamp
        ChatAnalysisSettings:
            type: object
            properties:
                business_memory_daily_cap:
                    type: integer
                    description: Maximum business-memory extraction evaluations reserved across the organization each UTC day. 0 disables extraction.
                    format: int64
                    minimum: 0
                    maximum: 10000
                business_memory_enabled:
                    type: boolean
                    description: Whether completed sessions are mined for business memories.
                is_default:
                    type: boolean
                    description: Whether these values are platform defaults rather than stored organization settings.
                organization_id:
                    type: string
                    description: Organization these settings apply to.
                work_units_daily_cap:
                    type: integer
                    description: Maximum work-units evaluations reserved across the organization each UTC day. 0 disables scoring as surely as the switch.
                    format: int64
                    minimum: 0
                    maximum: 10000
                work_units_enabled:
                    type: boolean
                    description: Whether work-units chat analysis is enabled.
            description: Per-organization switches and budgets for chat session analysis judges.
            required:
                - organization_id
                - work_units_enabled
                - work_units_daily_cap
                - business_memory_enabled
                - business_memory_daily_cap
                - is_default
        ChatContentPart:
            type: object
            properties:
                content:
                    type: string
                    description: The text content.
                created_at:
                    type: string
                    description: When the content part was created.
                    format: date-time
                id:
                    type: string
                    description: The ID of the content part.
                is_risk:
                    type: boolean
                    description: Whether this content part has an active risk finding.
                kind:
                    type: string
                    description: The content kind, such as prompt_attachment.
                metadata:
                    description: Sparse metadata for the content kind.
                parent_chat_message_id:
                    type: string
                    description: The chat message this content hangs off, when resolved.
            required:
                - id
                - kind
                - content
                - is_risk
                - created_at
        ChatMessage:
            type: object
            properties:
                content:
                    description: The content of the message — string for plain text, array for multimodal/tool-call content parts, null for assistant messages that only carry tool_calls
                created_at:
                    type: string
                    description: When the message was created.
                    format: date-time
                external_user_id:
                    type: string
                    description: The ID of the external user who created the message
                finish_reason:
                    type: string
                    description: The finish reason of the message
                generation:
                    type: integer
                    description: Conversation generation — bumps on compaction or edit divergence
                    format: int64
                id:
                    type: string
                    description: The ID of the message
                is_risk:
                    type: boolean
                    description: 'Present only in `risk_only` mode: true when this message has an active risk finding, false for the surrounding-context messages padded around it.'
                model:
                    type: string
                    description: The model that generated the message
                participants:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChatParticipant'
                    description: Observed per-message conversation participants, independent of message ownership.
                prompt_id:
                    type: string
                    description: The agent prompt/turn ID associated with this message, when available.
                role:
                    type: string
                    description: The role of the message
                seq:
                    type: integer
                    description: Monotonic sequence number of the message. Strictly increasing within a chat; use it as the keyset cursor for `before_seq`/`after_seq` pagination. Not contiguous (the sequence is shared across chats), so do not infer gaps from arithmetic differences.
                    format: int64
                tool_call_id:
                    type: string
                    description: The tool call ID of the message
                tool_calls:
                    type: string
                    description: The tool calls in the message as a JSON blob
                user_id:
                    type: string
                    description: The ID of the user who created the message
            required:
                - id
                - seq
                - role
                - model
                - created_at
                - generation
        ChatOverview:
            type: object
            properties:
                account_email:
                    type: string
                    description: Email of the AI account that produced the chat, resolved from the linked AI account. May differ from the employee's work email (e.g. a personal account).
                account_type:
                    type: string
                    description: Account type that produced the chat ('team', 'personal', or empty), resolved from the linked AI account.
                agent_id:
                    type: string
                    description: The ID of the agent that produced this session, recorded from the authenticated actor at capture. Set for sessions an agent drove directly, such as a channel session, which has no assistant record.
                agent_name:
                    type: string
                    description: The current name of the agent that produced this session. Absent when the agent has since been deleted, in which case agent_id is still reported.
                assistant_agent_id:
                    type: string
                    description: The ID of the agent the assistant acts as, when the assistant has a dedicated agent identity
                assistant_id:
                    type: string
                    description: The ID of the assistant that produced this chat, if any
                assistant_name:
                    type: string
                    description: The name of the assistant that produced this chat, if any
                created_at:
                    type: string
                    description: When the chat was created.
                    format: date-time
                external_user_id:
                    type: string
                    description: The ID of the external user who created the chat
                id:
                    type: string
                    description: The ID of the chat
                last_message_timestamp:
                    type: string
                    description: When the last message in the chat was created.
                    format: date-time
                litellm_proxied:
                    type: boolean
                    description: True when the session's traffic was observed by the LiteLLM proxy, including sessions whose transcript is owned by the agent's own hook stream
                num_messages:
                    type: integer
                    description: The number of messages in the chat
                    format: int64
                originating_client:
                    type: string
                    description: The supported client that originated a chat routed through the source, when known
                participants:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChatParticipant'
                    description: Distinct observed conversation participants across the session.
                pinned:
                    type: boolean
                    description: True when the chat is pinned
                risk_findings_count:
                    type: integer
                    description: Number of risk findings recorded against messages in this chat (project-scoped, found=true). Only populated by endpoints that join risk data; absent elsewhere.
                    format: int64
                slack_channel_id:
                    type: string
                    description: Observed Slack channel associated with this session.
                slack_channel_name:
                    type: string
                    description: Observed Slack channel name as reported by the captured envelope.
                slack_team_id:
                    type: string
                    description: Observed Slack workspace associated with this session.
                source:
                    type: string
                    description: 'The source of the chat: Elements, Playground, ClaudeCode (inferred from messages)'
                summary:
                    type: string
                    description: Persisted LLM summary of the session transcript, if one has been generated
                summary_generated_at:
                    type: string
                    description: When the session summary was last generated.
                    format: date-time
                title:
                    type: string
                    description: The title of the chat
                total_cost:
                    type: number
                    description: Total cost in USD for this chat
                    format: double
                total_input_tokens:
                    type: integer
                    description: Total input tokens used in this chat
                    format: int64
                total_output_tokens:
                    type: integer
                    description: Total output tokens used in this chat
                    format: int64
                total_tokens:
                    type: integer
                    description: Total tokens (input + output) used in this chat
                    format: int64
                updated_at:
                    type: string
                    description: When the chat was last updated.
                    format: date-time
                user_id:
                    type: string
                    description: The ID of the user who created the chat
                work_units:
                    type: number
                    description: Work units of value delivered in this chat as judged by the work-units analysis. Absent unless the organization has work-units analysis enabled and this chat has been scored.
                    format: double
            required:
                - id
                - title
                - num_messages
                - created_at
                - updated_at
                - last_message_timestamp
        ChatParticipant:
            type: object
            properties:
                display_name:
                    type: string
                    description: Directory display name at capture time.
                provider:
                    type: string
                    description: Directory provider that identifies this conversation participant.
                provider_team_id:
                    type: string
                    description: Workspace resolved from the organization directory, when unambiguous.
                provider_user_id:
                    type: string
                    description: Provider identity observed in the message envelope.
                user_id:
                    type: string
                    description: Explicitly mapped Speakeasy person at capture time; this attribution grants no permissions.
            required:
                - provider
                - provider_user_id
        ChatSessionLink:
            type: object
            properties:
                actor_email:
                    type: string
                    description: Email of the person who initiated the move, when known.
                child_captured:
                    type: boolean
                    description: Whether the continuation exists as a captured chat the caller can read, i.e. whether the child side is navigable.
                child_chat_id:
                    type: string
                    description: Chat id of the child session in this relationship. Absent when its session id was unknowable when the relationship was recorded (e.g. Cursor mints ids server-side) — or when the caller's visibility scope cannot read the child, which is deliberately indistinguishable.
                    format: uuid
                child_title:
                    type: string
                    description: Title of the child chat, when it has been captured and titled and the caller's visibility scope can read it.
                created_at:
                    type: string
                    description: When the move was recorded.
                    format: date-time
                device_hostname:
                    type: string
                    description: Hostname of the machine the move happened on, when known.
                kind:
                    type: string
                    description: 'Link kind: move for continuations, recall for recalled context, or subagent for a helper session.'
                parent_captured:
                    type: boolean
                    description: Whether the parent exists as a captured chat the caller can read, i.e. whether the parent side is navigable.
                parent_chat_id:
                    type: string
                    description: Chat id of the parent session in this relationship. Absent when the caller's visibility scope cannot read the parent — a masked end exposes no identity, matching parent_captured.
                    format: uuid
                parent_title:
                    type: string
                    description: Title of the parent chat, when it has been captured and titled and the caller's visibility scope can read it.
                source_surface:
                    type: string
                    description: Harness the session originated in, when known.
                target_harness:
                    type: string
                    description: Harness the session was moved to (e.g. cursor, codex, claude-code).
            required:
                - parent_captured
                - child_captured
                - kind
                - target_harness
                - created_at
        ChatSummary:
            type: object
            properties:
                duration_seconds:
                    type: number
                    description: Chat session duration in seconds
                    format: double
                end_time_unix_nano:
                    type: string
                    description: Latest log timestamp in Unix nanoseconds (string for JS int64 precision)
                gram_chat_id:
                    type: string
                    description: Chat session ID
                log_count:
                    type: integer
                    description: Total number of logs in this chat session
                    format: int64
                message_count:
                    type: integer
                    description: Number of LLM completion messages in this chat session
                    format: int64
                model:
                    type: string
                    description: LLM model used in this chat session
                start_time_unix_nano:
                    type: string
                    description: Earliest log timestamp in Unix nanoseconds (string for JS int64 precision)
                status:
                    type: string
                    description: Chat session status
                    enum:
                        - success
                        - error
                tool_call_count:
                    type: integer
                    description: Number of tool calls in this chat session
                    format: int64
                total_input_tokens:
                    type: integer
                    description: Total input tokens used
                    format: int64
                total_output_tokens:
                    type: integer
                    description: Total output tokens used
                    format: int64
                total_tokens:
                    type: integer
                    description: Total tokens used (input + output)
                    format: int64
                user_id:
                    type: string
                    description: User ID associated with this chat session
            description: Summary information for a chat session
            required:
                - gram_chat_id
                - start_time_unix_nano
                - end_time_unix_nano
                - log_count
                - tool_call_count
                - message_count
                - duration_seconds
                - status
                - total_input_tokens
                - total_output_tokens
                - total_tokens
        ChatTotals:
            type: object
            properties:
                assistant_messages:
                    type: integer
                    description: Number of assistant messages (without tool calls) in the generation.
                    format: int64
                risk_only:
                    type: integer
                    description: Number of messages with an active (found, non-suppressed) risk finding in the generation.
                    format: int64
                tool_calls:
                    type: integer
                    description: Number of messages carrying tool calls in the generation.
                    format: int64
                tool_results:
                    type: integer
                    description: Number of tool-result messages in the generation.
                    format: int64
                total:
                    type: integer
                    description: Total trace entries in the generation (sum of the four entry-type counts; the `of N entries` denominator).
                    format: int64
                user_messages:
                    type: integer
                    description: Number of user messages in the generation.
                    format: int64
            description: 'Trace-entry counts across the entire returned generation, independent of pagination. Each message maps to exactly one entry: a message carrying tool calls counts as a tool call regardless of role, otherwise the role decides.'
            required:
                - total
                - user_messages
                - assistant_messages
                - tool_calls
                - tool_results
                - risk_only
        CimdClientPreset:
            type: object
            properties:
                client_id_metadata_uri:
                    type: string
                    description: The https URL this client presents as its client_id. Usually exact; when is_pattern is true this is a wildcard pattern rather than a literal URL.
                display_name:
                    type: string
                    description: Human-readable client name.
                enabled:
                    type: boolean
                    description: Whether presets-mode issuers currently admit this entry. Disabled entries are listed so operators can see that Speakeasy knows about the vendor.
                is_pattern:
                    type: boolean
                    description: True when client_id_metadata_uri contains a `*` wildcard, matching a whole namespace of client_ids rather than one URL. Used for vendors that mint a separate metadata document per connector or install, so their client_ids cannot be enumerated. A `*` stands for exactly one path segment and never widens the host.
                vendor_key:
                    type: string
                    description: Stable identifier for the publishing vendor. Not unique — a vendor may publish several client documents.
            description: An entry in Speakeasy's curated CIMD preset catalog.
            required:
                - vendor_key
                - display_name
                - client_id_metadata_uri
                - is_pattern
                - enabled
        ClaudeAgentUsage:
            type: object
            properties:
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ClaudeToolUsage'
                    description: Per-tool Claude usage keyed by tool_use_id.
                turns:
                    type: array
                    items:
                        $ref: '#/components/schemas/ClaudeTurnUsage'
                    description: Per-prompt Claude usage turns ordered by start time.
            required:
                - turns
                - tools
        ClaudeHookPayload:
            type: object
            properties:
                additional_data:
                    type: object
                    description: Additional hook-specific data
                    additionalProperties: true
                cwd:
                    type: string
                    description: The working directory when the event fired
                error:
                    description: The error from the tool (PostToolUseFailure only)
                hook_event_name:
                    type: string
                    description: The type of hook event
                    enum:
                        - SessionStart
                        - ConfigChange
                        - PreToolUse
                        - PostToolUse
                        - PostToolUseFailure
                        - UserPromptSubmit
                        - Stop
                        - SessionEnd
                        - Notification
                is_interrupt:
                    type: boolean
                    description: Whether the failure was caused by user interruption (PostToolUseFailure only)
                last_assistant_message:
                    type: string
                    description: Claude's final response text (Stop only)
                message:
                    type: string
                    description: Notification message text (Notification only)
                model:
                    type: string
                    description: The model identifier (SessionStart, Stop)
                notification_type:
                    type: string
                    description: 'Type of notification: permission_prompt, idle_prompt, auth_success, elicitation_dialog (Notification only)'
                prompt:
                    type: string
                    description: The user's prompt text (UserPromptSubmit only)
                reason:
                    type: string
                    description: Why the session ended (SessionEnd only)
                session_id:
                    type: string
                    description: The Claude Code session ID
                source:
                    type: string
                    description: 'How the session started: startup, resume, clear, compact (SessionStart only)'
                stop_hook_active:
                    type: boolean
                    description: Whether a stop hook continuation is active (Stop only)
                title:
                    type: string
                    description: Notification title (Notification only)
                tool_input:
                    description: The input to the tool
                tool_name:
                    type: string
                    description: The name of the tool (for tool-related events)
                tool_response:
                    description: The response from the tool (PostToolUse only)
                tool_use_id:
                    type: string
                    description: The unique ID for this tool use
                transcript_path:
                    type: string
                    description: Path to the conversation transcript file
                user_email:
                    type: string
                    description: Email of the authenticated user from the Speakeasy device agent, if available
            description: Unified payload for all Claude Code hook events
            required:
                - hook_event_name
        ClaudeHookResult:
            type: object
            properties:
                continue:
                    type: boolean
                    description: Whether to continue (SessionStart only)
                decision:
                    type: string
                    description: Top-level block decision for UserPromptSubmit / PostToolUse / Stop / SubagentStop. Use 'block' to halt processing.
                hookSpecificOutput:
                    description: Hook-specific output as JSON object
                reason:
                    type: string
                    description: Reason accompanying decision; shown to the user (UserPromptSubmit) or Claude (PostToolUse/Stop).
                stopReason:
                    type: string
                    description: Reason if blocked (SessionStart only)
                suppressOutput:
                    type: boolean
                    description: Whether to suppress the hook's output
                systemMessage:
                    type: string
                    description: Warning message shown to the user in the terminal
            description: Unified result for all Claude Code hook events with proper response structure
        ClaudeToolUsage:
            type: object
            properties:
                input_size_bytes:
                    type: integer
                    description: Serialized tool input size in bytes.
                    format: int64
                prompt_id:
                    type: string
                    description: Claude prompt.id for the turn that used this tool.
                result_size_bytes:
                    type: integer
                    description: Serialized tool result size in bytes.
                    format: int64
                tool_name:
                    type: string
                    description: Tool name reported by Claude Code.
                tool_use_id:
                    type: string
                    description: Claude tool_use_id that correlates the tool call and result.
            required:
                - tool_use_id
                - prompt_id
                - tool_name
                - input_size_bytes
                - result_size_bytes
        ClaudeTurnUsage:
            type: object
            properties:
                cache_creation_tokens:
                    type: integer
                    description: Cache creation tokens used by this turn.
                    format: int64
                cache_read_tokens:
                    type: integer
                    description: Cache read tokens used by this turn.
                    format: int64
                cost_micros:
                    type: integer
                    description: Total cost for this turn in micros of a USD.
                    format: int64
                cost_usd:
                    type: number
                    description: Total USD cost for this turn.
                    format: double
                end_time_unix_nano:
                    type: string
                    description: Latest OTEL log timestamp in this turn, as Unix nanoseconds.
                input_tokens:
                    type: integer
                    description: Input tokens used by this turn.
                    format: int64
                models:
                    type: array
                    items:
                        type: string
                    description: Distinct model names used by this turn.
                output_tokens:
                    type: integer
                    description: Output tokens used by this turn.
                    format: int64
                prompt_id:
                    type: string
                    description: Claude prompt.id that correlates events for one user turn.
                query_sources:
                    type: array
                    items:
                        type: string
                    description: Distinct Claude query sources used by this turn.
                request_count:
                    type: integer
                    description: Number of Claude API request events in this turn.
                    format: int64
                start_time_unix_nano:
                    type: string
                    description: Earliest OTEL log timestamp in this turn, as Unix nanoseconds.
                total_tokens:
                    type: integer
                    description: Total tokens used by this turn.
                    format: int64
            required:
                - prompt_id
                - start_time_unix_nano
                - end_time_unix_nano
                - request_count
                - input_tokens
                - output_tokens
                - cache_read_tokens
                - cache_creation_tokens
                - total_tokens
                - cost_usd
                - cost_micros
                - models
                - query_sources
        CloneEnvironmentForm:
            type: object
            properties:
                copy_values:
                    type: boolean
                    description: If true, copy the encrypted secret values from the source. If false (default), copy only variable names with empty placeholder values.
                new_name:
                    type: string
                    description: The name for the new cloned environment
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            description: Form for cloning an existing environment into a new one
            required:
                - slug
                - new_name
        CloneEnvironmentRequestBody:
            type: object
            properties:
                copy_values:
                    type: boolean
                    description: If true, copy the encrypted secret values from the source. If false (default), copy only variable names with empty placeholder values.
                new_name:
                    type: string
                    description: The name for the new cloned environment
            required:
                - new_name
        CloneOnboardingPlaybookRequestBody:
            type: object
            properties:
                name:
                    type: string
                    description: Defaults to the source name.
                organization_id:
                    type: string
                playbook_id:
                    type: string
            required:
                - organization_id
                - playbook_id
        CodexHookPayload:
            type: object
            properties:
                additional_data:
                    type: object
                    description: Additional hook-specific data
                    additionalProperties: true
                cwd:
                    type: string
                    description: The working directory when the event fired
                hook_event_name:
                    type: string
                    description: The type of hook event
                    enum:
                        - SessionStart
                        - PreToolUse
                        - PermissionRequest
                        - PostToolUse
                        - UserPromptSubmit
                        - Stop
                last_assistant_message:
                    type: string
                    description: The final assistant message text for the turn (Stop only)
                model:
                    type: string
                    description: The model identifier
                permission_type:
                    type: string
                    description: The type of permission being requested (PermissionRequest only)
                prompt:
                    type: string
                    description: The user's prompt text (UserPromptSubmit only)
                session_id:
                    type: string
                    description: The Codex session ID
                tool_input:
                    description: The input to the tool (PreToolUse only)
                tool_name:
                    type: string
                    description: The name of the tool
                tool_output:
                    description: The output from the tool (PostToolUse only)
                transcript_path:
                    type: string
                    description: Path to the conversation transcript file
                user_email:
                    type: string
                    description: Email of the authenticated Codex user, if available
            description: Payload for Codex hook events
            required:
                - hook_event_name
        CodexHookResult:
            type: object
            properties:
                decision:
                    type: string
                    description: 'Permission decision for blocking events: allow or deny'
                reason:
                    type: string
                    description: Reason for the decision, shown to the user
            description: Result for Codex hook events
        CommitServerIdentityConfigurationForm:
            type: object
            properties:
                client_configuration:
                    $ref: '#/components/schemas/ServerIdentityClientConfiguration'
                client_mode:
                    type: string
                    description: How to provide the OAuth client.
                    enum:
                        - auto
                        - existing
                        - manual
                create_provider:
                    $ref: '#/components/schemas/CreateRemoteSessionIssuerForm'
                existing_client_id:
                    type: string
                    description: An existing visible remote-session client to link. Required only for existing mode.
                    format: uuid
                mcp_server_id:
                    type: string
                    description: The target MCP server. It must be backed directly by a Remote MCP source.
                    format: uuid
                provider_id:
                    type: string
                    description: An existing Remote Identity Provider visible to the target project.
                    format: uuid
                registration_method:
                    type: string
                    description: Auto mode only. cimd (the default) prefers a Client ID Metadata Document when the provider supports one and falls back to dynamic client registration; dcr always uses dynamic client registration.
                    enum:
                        - cimd
                        - dcr
            description: 'A complete plan for configuring identity on one Remote MCP-backed MCP server. Exactly one of provider_id or create_provider is required. client_mode controls which client fields are accepted: existing requires existing_client_id and no client_configuration; auto and manual require client_configuration and no existing_client_id.'
            required:
                - mcp_server_id
                - client_mode
        CommitServerIdentityConfigurationResult:
            type: object
            properties:
                client:
                    $ref: '#/components/schemas/RemoteSessionClient'
                client_path:
                    type: string
                    description: Organization-relative dashboard path to the client detail surface.
                client_tier:
                    type: string
                    description: The client ownership tier.
                    enum:
                        - project-specific
                        - organization-level
                failure:
                    $ref: '#/components/schemas/ServerIdentityRegistrationFailure'
                manual_setup_required:
                    type: boolean
                    description: True only when auto mode found neither usable CIMD nor DCR support. This is not a registration failure and no local state was changed.
                provider:
                    $ref: '#/components/schemas/RemoteSessionIssuer'
                provider_path:
                    type: string
                    description: Organization-relative dashboard path to the Remote Identity Provider detail surface.
                provider_tier:
                    type: string
                    description: The provider ownership tier.
                    enum:
                        - project-specific
                        - organization-level
                        - platform-level
                registration_method:
                    type: string
                    description: How the client was obtained. Present on success and registration failure.
                    enum:
                        - cimd
                        - dcr
                        - manual
                        - existing
                status:
                    type: string
                    description: Successful commit status. Present only after local commit.
                    enum:
                        - registered
                        - linked
            description: The outcome of committing a Remote MCP server user-identity plan. registered and linked are successful local commits. A registration failure is returned in failure. manual_setup_required is a preparation signal, not a registration outcome, and means auto mode found neither usable CIMD nor DCR support; no local state changed.
            required:
                - manual_setup_required
        ConfirmOktaResourceConnectionsRequestBody:
            type: object
            properties:
                connections:
                    type: array
                    items:
                        $ref: '#/components/schemas/OktaResourceConnectionConfirmation'
                    description: Servers to confirm with their configured values.
                    minItems: 1
                    maxItems: 200
            required:
                - connections
        ConfirmOktaResourceConnectionsResult:
            type: object
            properties:
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/OktaResourceConnectionServer'
                    description: The confirmed servers with their new state.
            required:
                - servers
        CountRemoteSessionsResult:
            type: object
            properties:
                subjects:
                    type: integer
                    description: Distinct user subjects with a live remote_session through the client.
                    format: int64
            description: Result type for counting the people signed in through a remote_session_client.
            required:
                - subjects
        CreateAgentForm:
            type: object
            properties:
                name:
                    type: string
                    minLength: 1
                    maxLength: 120
                owner_user_id:
                    type: string
                    description: Eligible same-organization human owner; defaults to the caller
                policy_grants:
                    type: array
                    items:
                        $ref: '#/components/schemas/AgentPolicyGrantForm'
                    description: Optional initial allow-only agent policy ceilings, created atomically with the agent. Effective credential permissions remain limited by the live owner and authorizer.
                project_id:
                    type: string
                    description: Optional project binding. Omit or send an empty string for an organization-wide agent; independent of policy grants and the Gram-Project header.
            required:
                - name
        CreateAgentPolicyGrantForm:
            type: object
            properties:
                agent_id:
                    type: string
                    description: First-class agent identifier
                    format: uuid
                effect:
                    type: string
                    description: Grant effect; direct agent policy is allow-only
                    enum:
                        - allow
                scope:
                    type: string
                    description: Agent-runtime-safe scope to grant
                    minLength: 1
                selector:
                    $ref: '#/components/schemas/AgentPolicySelector'
            required:
                - agent_id
                - scope
                - effect
                - selector
        CreateAssistantForm:
            type: object
            properties:
                instructions:
                    type: string
                    description: The system instructions for the assistant.
                max_concurrency:
                    type: integer
                    description: Optional maximum active warm runtimes.
                    format: int64
                mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AssistantMCPServerRef'
                    description: MCP servers to attach. When sent, replaces the assistant's servers that are not hosted (toolset-backed). A hosted server listed here is attached if it is not already; attached hosted servers are left unchanged, and toolsets governs them when both are sent.
                model:
                    type: string
                    description: The model identifier used by the assistant.
                name:
                    type: string
                    description: The assistant name.
                status:
                    type: string
                    description: Optional initial status.
                    enum:
                        - active
                        - paused
                toolsets:
                    type: array
                    items:
                        $ref: '#/components/schemas/AssistantToolsetRef'
                    description: Hosted (toolset-backed) MCP servers to attach, by toolset slug. When sent, replaces the assistant's hosted servers.
                warm_ttl_seconds:
                    type: integer
                    description: Optional warm runtime TTL in seconds.
                    format: int64
            required:
                - name
                - model
                - instructions
                - toolsets
        CreateAwsIamCredentialForm:
            type: object
            properties:
                assume_role_arn:
                    type: string
                    description: The customer IAM role ARN Speakeasy assumes. Omit for a KMS key-policy grant.
                name:
                    type: string
                    description: A human-readable name for the credential.
                oidc_audience:
                    type: string
                    description: The OIDC audience. Provide (with assume_role_arn) to assume the role with a web identity.
                oidc_subject:
                    type: string
                    description: Optional OIDC subject pin; only valid alongside oidc_audience.
                sts_region:
                    type: string
                    description: Optional STS region override.
            required:
                - name
        CreateAwsKmsKeyForm:
            type: object
            properties:
                algorithm:
                    type: string
                    description: The signing algorithm of the key.
                    enum:
                        - RS256
                        - ES256
                customer_grant_reference:
                    type: string
                    description: Optional. The Speakeasy identity (GCP service-account email or AWS principal ARN) the customer granted on the key for the key-policy / IAM-grant model. Not a secret.
                external_credential_id:
                    type: string
                    description: The external credential Speakeasy uses to authenticate to the key. Must belong to the same organization and matching cloud family (an aws_kms key requires an aws_iam credential; a gcp_kms key requires a gcp_iam credential).
                    format: uuid
                key_arn:
                    type: string
                    description: The ARN of the AWS KMS key.
                name:
                    type: string
                    description: A human-readable name for the key.
            required:
                - key_arn
                - external_credential_id
                - algorithm
                - name
        CreateCimdForm:
            type: object
            properties:
                audience:
                    type: string
                    description: Optional upstream OAuth audience to send on the authorize redirect and token exchange.
                    pattern: ^[!-~]+$
                    maxLength: 512
                remote_session_issuer_id:
                    type: string
                    description: The owning remote_session_issuer id. Must advertise client_id_metadata_document_supported.
                    format: uuid
                scope:
                    type: array
                    items:
                        type: string
                        pattern: ^[!#-[\]-~]+$
                        maxLength: 128
                    description: Explicit upstream OAuth scopes the dance should request for this client. Omit to fall back to the issuer's scopes_supported.
                user_session_issuer_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: The user_session_issuers to attach this client to via the join table. Omit or pass an empty array to create a standalone client with no attachments.
            description: Form for creating a remote_session_client in Client ID Metadata Document (CIMD) mode. Speakeasy generates the client_id (the URL of a hosted client metadata document) and serves the document publicly; the row carries no secret and authenticates with token_endpoint_auth_method=none. The caller supplies no client_id or credentials.
            required:
                - remote_session_issuer_id
        CreateCimdOrganizationRemoteSessionClientForm:
            type: object
            properties:
                audience:
                    type: string
                    description: Optional upstream OAuth audience to send on the authorize redirect and token exchange.
                    pattern: ^[!-~]+$
                    maxLength: 512
                project_id:
                    type: string
                    description: Owning project id for the new client; the project must belong to the caller's organization. Omit to inherit a project-specific issuer's project, or to create an organization-level client (no project, attachable by every project) under an organization-level issuer.
                    format: uuid
                remote_session_issuer_id:
                    type: string
                    description: The owning remote_session_issuer id; must belong to the caller's organization and advertise client_id_metadata_document_supported.
                    format: uuid
                scope:
                    type: array
                    items:
                        type: string
                        pattern: ^[!#-[\]-~]+$
                        maxLength: 128
                    description: Explicit upstream OAuth scopes the dance should request for this client. Omit to fall back to the issuer's scopes_supported.
            description: Form for an org admin to register a standalone remote_session_client in Client ID Metadata Document (CIMD) mode under an existing issuer, with no user_session_issuer attachments. Speakeasy generates the client_id and hosts the metadata document; the issuer must advertise client_id_metadata_document_supported.
            required:
                - remote_session_issuer_id
        CreateCustomDetectionRuleRequestBody:
            type: object
            properties:
                description:
                    type: string
                    description: Description of what the rule detects.
                detection_expr:
                    type: string
                    description: 'CEL detection predicate: a boolean expression over message fields whose true verdict produces a finding.'
                regex:
                    type: string
                    description: Deprecated legacy RE2 regex pattern; superseded by detection_expr. Accepted for backward compatibility.
                rule_id:
                    type: string
                    description: Stable rule identifier, prefixed with `custom.`.
                severity:
                    type: string
                    description: Severity level for findings produced by this rule.
                    default: medium
                    enum:
                        - info
                        - low
                        - medium
                        - high
                        - critical
                title:
                    type: string
                    description: Human-readable title for the rule.
            required:
                - rule_id
                - title
        CreateDashboardRequestBody:
            type: object
            properties:
                description:
                    type: string
                    description: What the dashboard is for, at most 2000 characters
                    maxLength: 2000
                name:
                    type: string
                    description: Display name, at most 200 characters
                    minLength: 1
                    maxLength: 200
            required:
                - name
        CreateDataExportRouteForm:
            type: object
            properties:
                data_source:
                    type: string
                    description: Class of data exported by this route.
                    enum:
                        - product_telemetry
                        - risk_findings
                        - tool_call_logs
                enabled:
                    type: boolean
                    description: Whether the route is enabled.
                    default: true
                otel_destination_id:
                    type: string
                    description: OTEL destination configured on this route. Required when enabled.
                    format: uuid
            description: Form for creating the selected data source's export route.
            required:
                - data_source
        CreateDeploymentForm:
            type: object
            properties:
                external_id:
                    type: string
                    description: The external ID to refer to the deployment. This can be a git commit hash for example.
                    example: bc5f4a555e933e6861d12edba4c2d87ef6caf8e6
                external_mcps:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddExternalMCPForm'
                external_url:
                    type: string
                    description: The upstream URL a deployment can refer to. This can be a github url to a commit hash or pull request.
                functions:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddFunctionsForm'
                github_pr:
                    type: string
                    description: The github pull request that resulted in the deployment.
                    example: "1234"
                github_repo:
                    type: string
                    description: The github repository in the form of "owner/repo".
                    example: speakeasyapi/gram
                github_sha:
                    type: string
                    description: The commit hash that triggered the deployment.
                    example: f33e693e9e12552043bc0ec5c37f1b8a9e076161
                idempotency_key:
                    type: string
                    description: A unique identifier that will mitigate against duplicate deployments.
                    example: 01jqq0ajmb4qh9eppz48dejr2m
                non_blocking:
                    type: boolean
                    description: If true, the deployment will be created in non-blocking mode where the request will return immediately and the deployment will proceed asynchronously.
                    example: false
                openapiv3_assets:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddOpenAPIv3DeploymentAssetForm'
                packages:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddDeploymentPackageForm'
            required:
                - idempotency_key
        CreateDeploymentRequestBody:
            type: object
            properties:
                external_id:
                    type: string
                    description: The external ID to refer to the deployment. This can be a git commit hash for example.
                    example: bc5f4a555e933e6861d12edba4c2d87ef6caf8e6
                external_mcps:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddExternalMCPForm'
                external_url:
                    type: string
                    description: The upstream URL a deployment can refer to. This can be a github url to a commit hash or pull request.
                functions:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddFunctionsForm'
                github_pr:
                    type: string
                    description: The github pull request that resulted in the deployment.
                    example: "1234"
                github_repo:
                    type: string
                    description: The github repository in the form of "owner/repo".
                    example: speakeasyapi/gram
                github_sha:
                    type: string
                    description: The commit hash that triggered the deployment.
                    example: f33e693e9e12552043bc0ec5c37f1b8a9e076161
                non_blocking:
                    type: boolean
                    description: If true, the deployment will be created in non-blocking mode where the request will return immediately and the deployment will proceed asynchronously.
                    example: false
                openapiv3_assets:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddOpenAPIv3DeploymentAssetForm'
                packages:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddDeploymentPackageForm'
        CreateDeploymentResult:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/Deployment'
        CreateDestinationForm:
            type: object
            properties:
                destination_type:
                    type: string
                    description: Destination transport type.
                    enum:
                        - otel
                name:
                    type: string
                    description: Human-readable destination name.
                otel:
                    $ref: '#/components/schemas/CreateOtelDestinationInput'
                sensitive_data:
                    type: string
                    description: Sensitive-data policy.
                    default: exclude
                    enum:
                        - exclude
                        - include
            description: Form for creating a data export destination. Supply the transport configuration selected by destination_type.
            required:
                - name
                - destination_type
        CreateDeviceJoinTokenRequestBody:
            type: object
            properties:
                agent_id:
                    type: string
                    description: The agent the enrolled device inherits its policy from.
                    format: uuid
                expires_in_seconds:
                    type: integer
                    description: How long the token stays redeemable. Defaults to one hour.
                    default: 3600
                    format: int64
                    minimum: 60
                    maximum: 86400
            required:
                - agent_id
        CreateDomainRequestBody:
            type: object
            properties:
                domain:
                    type: string
                    description: The custom domain
                ip_allowlist:
                    type: array
                    items:
                        type: string
                    description: IP addresses or CIDR ranges to allow. Leave empty for unrestricted access.
            required:
                - domain
        CreateEnvironmentForm:
            type: object
            properties:
                description:
                    type: string
                    description: Optional description of the environment
                entries:
                    type: array
                    items:
                        $ref: '#/components/schemas/EnvironmentEntryInput'
                    description: List of environment variable entries
                name:
                    type: string
                    description: The name of the environment
                organization_id:
                    type: string
                    description: The organization ID this environment belongs to
            description: Form for creating a new environment
            required:
                - organization_id
                - name
                - entries
        CreateExternalKeyFields:
            type: object
            properties:
                algorithm:
                    type: string
                    description: The signing algorithm of the key.
                    enum:
                        - RS256
                        - ES256
                customer_grant_reference:
                    type: string
                    description: Optional. The Speakeasy identity (GCP service-account email or AWS principal ARN) the customer granted on the key for the key-policy / IAM-grant model. Not a secret.
                external_credential_id:
                    type: string
                    description: The external credential Speakeasy uses to authenticate to the key. Must belong to the same organization and matching cloud family (an aws_kms key requires an aws_iam credential; a gcp_kms key requires a gcp_iam credential).
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key.
            required:
                - external_credential_id
                - algorithm
                - name
        CreateGcpIamCredentialForm:
            type: object
            properties:
                impersonate_service_account:
                    type: string
                    description: The service account in your project that Speakeasy impersonates. Grant Speakeasy's own service account roles/iam.serviceAccountTokenCreator on it — see externalCredentials.getGcpSetupInfo.
                name:
                    type: string
                    description: A human-readable name for the credential.
            required:
                - name
                - impersonate_service_account
        CreateGcpKmsKeyForm:
            type: object
            properties:
                algorithm:
                    type: string
                    description: The signing algorithm of the key.
                    enum:
                        - RS256
                        - ES256
                customer_grant_reference:
                    type: string
                    description: Optional. The Speakeasy identity (GCP service-account email or AWS principal ARN) the customer granted on the key for the key-policy / IAM-grant model. Not a secret.
                external_credential_id:
                    type: string
                    description: The external credential Speakeasy uses to authenticate to the key. Must belong to the same organization and matching cloud family (an aws_kms key requires an aws_iam credential; a gcp_kms key requires a gcp_iam credential).
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key.
                resource_name:
                    type: string
                    description: The resource name of the GCP KMS key (projects/.../cryptoKeyVersions/...).
            required:
                - resource_name
                - external_credential_id
                - algorithm
                - name
        CreateGlobalRemoteSessionClientForm:
            type: object
            properties:
                audience:
                    type: string
                    description: Optional upstream OAuth audience to send on the authorize redirect and token exchange.
                    pattern: ^[!-~]+$
                    maxLength: 512
                client_id:
                    type: string
                    description: client_id supplied by the caller.
                client_secret:
                    type: string
                    description: client_secret supplied by the caller. Speakeasy encrypts before persisting.
                remote_session_issuer_id:
                    type: string
                    description: The owning global remote_session_issuer id.
                    format: uuid
                scope:
                    type: array
                    items:
                        type: string
                        pattern: ^[!#-[\]-~]+$
                        maxLength: 128
                    description: Explicit upstream OAuth scopes the dance should request for this client. Omit to fall back to the issuer's scopes_supported.
                token_endpoint_auth_method:
                    type: string
                    description: How the client authenticates at the issuer's token endpoint. Omit to default to client_secret_basic.
                    enum:
                        - client_secret_basic
                        - client_secret_post
                        - none
            description: Form for creating a global remote_session_client. Caller supplies client_id (and optional client_secret) obtained out-of-band from the upstream issuer.
            required:
                - remote_session_issuer_id
                - client_id
        CreateIdentityProviderConnectionRequestBody:
            type: object
            properties:
                listing_mode:
                    type: string
                    description: Checklist template. Defaults to custom_app.
                    enum:
                        - custom_app
                        - oin
                org_url:
                    type: string
                    description: Okta org URL, for example https://example.okta.com. Must be https on an Okta-owned domain with no path, except an Admin Console URL with an /admin path, which resolves to its org.
            required:
                - org_url
        CreateIngressRequestBody:
            type: object
            properties:
                hostname:
                    type: string
                    description: Lowercase DNS label
                identity_required:
                    type: boolean
                oauth_client_id:
                    type: string
                oauth_client_secret:
                    type: string
                provider:
                    type: string
                    enum:
                        - tailscale
            required:
                - provider
                - hostname
                - oauth_client_id
                - oauth_client_secret
        CreateInstanceRequestBody:
            type: object
            properties:
                failure_posture:
                    type: string
                    enum:
                        - fail_closed
                        - fail_open
                name:
                    type: string
                    maxLength: 255
            required:
                - name
        CreateIssuerRequestBody:
            type: object
            properties:
                authorization_endpoint:
                    type: string
                    description: Upstream authorization endpoint.
                authorization_grant_profiles_supported:
                    type: array
                    items:
                        type: string
                    description: Advertised grant profiles; metadata evidence is not client authorization or user access.
                authorization_response_iss_parameter_supported:
                    type: boolean
                    description: Whether the issuer includes the RFC 9207 iss parameter in authorization responses. Omitting the field stores null ("not captured").
                backchannel_logout_supported:
                    type: boolean
                    description: Whether the issuer supports OpenID Connect Back-Channel Logout. Omitting the field stores null ("not captured").
                claims_supported:
                    type: array
                    items:
                        type: string
                    description: Claims the issuer can return in ID tokens and from userinfo. Omitting the field stores null ("not captured"), distinct from an empty array ("the issuer advertises none").
                client_id_metadata_document_supported:
                    type: boolean
                    description: When true, the issuer accepts a Client ID Metadata Document URL as client_id (OAuth CIMD draft). Discovered from the issuer metadata document and used to pre-flight outbound CIMD. Default false.
                client_setup_documentation_url:
                    type: string
                    description: URL of OAuth client setup documentation shown when creating clients. Manually set, not RFC 8414; rejected unless an absolute http(s) URL.
                code_challenge_methods_supported:
                    type: array
                    items:
                        type: string
                    description: PKCE code challenge methods advertised by the issuer (RFC 8414 code_challenge_methods_supported). Omitting the field stores null ("not captured"), distinct from an empty array ("the issuer advertises no methods").
                grant_types_supported:
                    type: array
                    items:
                        type: string
                    description: Grant types advertised by the issuer.
                id_token_signing_alg_values_supported:
                    type: array
                    items:
                        type: string
                    description: JWS algorithms the issuer signs ID tokens with. Omitting the field stores null ("not captured"), distinct from an empty array ("the issuer advertises none").
                introspection_endpoint:
                    type: string
                    description: RFC 7662 token introspection endpoint. Discovered from the issuer metadata document; rejected unless an absolute https URL, or http on loopback.
                introspection_endpoint_auth_methods_supported:
                    type: array
                    items:
                        type: string
                    description: Client authentication methods the introspection endpoint accepts. Omitting the field stores null ("not captured"), distinct from an empty array ("the issuer advertises none").
                issuer:
                    type: string
                    description: Issuer URL; matches the iss claim.
                jwks_uri:
                    type: string
                    description: Upstream JWKS URI.
                logo_asset_id:
                    type: string
                    description: Optional logo asset id.
                    format: uuid
                name:
                    type: string
                    description: Optional display name. Stored NULL when empty; clients fall back to the issuer URL/slug.
                oidc:
                    type: boolean
                    description: When true, may unlock OIDC-aware behaviour. Default false.
                omit_scope_fallback:
                    type: boolean
                    description: 'When true, a login that would otherwise request the authorization server''s whole scopes_supported omits the scope parameter so the server applies its default. Omit to leave it unset: such a login requests the provider''s whole scopes_supported.'
                op_policy_uri:
                    type: string
                    description: RFC 8414 op_policy_uri; the issuer's client data-usage policy. Discovered from the issuer metadata document; rejected unless an absolute http(s) URL.
                op_tos_uri:
                    type: string
                    description: RFC 8414 op_tos_uri; the issuer's terms of service. Discovered from the issuer metadata document; rejected unless an absolute http(s) URL.
                passthrough:
                    type: boolean
                    description: When true, the MCP client registers and transacts directly with this issuer. Default false.
                project_id:
                    type: string
                    description: Owning project id; the project must belong to the caller's organization. Omit to create an organization-level issuer.
                    format: uuid
                registration_endpoint:
                    type: string
                    description: Upstream RFC 7591 registration endpoint; absent for issuers without DCR.
                resource_indicator_supported:
                    type: boolean
                    description: 'Whether the issuer accepts the RFC 8707 resource parameter. Omit to leave it unset: the parameter is then sent, and a login or refresh the issuer answers with invalid_target is retried once without it. Set false to never send it.'
                response_types_supported:
                    type: array
                    items:
                        type: string
                    description: Response types advertised by the issuer.
                revocation_endpoint:
                    type: string
                    description: Upstream RFC 7009 revocation endpoint; absent for issuers that advertise none.
                scope_override:
                    type: array
                    items:
                        type: string
                    description: Operator-pinned scope request. When set, it is sent verbatim on the upstream authorize redirect in place of the resolved scope set. Omit or send an empty array to leave it unset.
                scopes_supported:
                    type: array
                    items:
                        type: string
                    description: Scopes advertised by the issuer.
                service_documentation:
                    type: string
                    description: RFC 8414 service_documentation; developer documentation for the issuer. Discovered from the issuer metadata document; rejected unless an absolute http(s) URL.
                slug:
                    type: string
                    description: Project-unique slug.
                token_endpoint:
                    type: string
                    description: Upstream token endpoint.
                token_endpoint_auth_methods_supported:
                    type: array
                    items:
                        type: string
                    description: Token endpoint auth methods advertised by the issuer.
                tunneled_mcp_server_id:
                    type: string
                    description: Route this issuer's OAuth endpoint calls through an MCP tunnel in the same project. Platform admins only.
                    format: uuid
                userinfo_endpoint:
                    type: string
                    description: OpenID Connect userinfo endpoint. Discovered from the issuer metadata document; rejected unless an absolute https URL, or http on loopback.
            required:
                - slug
                - issuer
        CreateJSONWebKeySetForm:
            type: object
            properties:
                external_key_id:
                    type: string
                    description: The external key to back the set with. Must be a live, organization-owned GCP KMS key; AWS KMS keys are not supported yet.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key set. Names may repeat within an organization.
            required:
                - name
                - external_key_id
        CreateKeyForm:
            type: object
            properties:
                agent_id:
                    type: string
                    description: First-class agent subject. Omit for an ordinary API key.
                    format: uuid
                delegated_grants_version:
                    type: integer
                    description: Delegated policy format version. Required for agent keys.
                    format: int64
                    minimum: 1
                expires_at:
                    type: string
                    description: Agent credential expiry; defaults to 90 days and cannot exceed one year
                    format: date-time
                name:
                    type: string
                    description: The name of the key
                    maxLength: 255
                project_id:
                    type: string
                    description: Optional project binding. Omit for an organization-wide key; independent of permission scopes and the Gram-Project header.
                    format: uuid
                requested_grants:
                    type: array
                    items:
                        $ref: '#/components/schemas/AgentPolicyGrantForm'
                    description: Exact allow grants approved for an agent credential
                scopes:
                    type: array
                    items:
                        type: string
                    description: Legacy transport scopes. Omitted or empty defaults to consumer for ordinary keys; agent keys require no scopes.
            required:
                - name
        CreateMcpEndpointForm:
            type: object
            properties:
                custom_domain_id:
                    type: string
                    description: The ID of the custom domain to register the endpoint slug under. Omit for a platform-domain endpoint.
                    format: uuid
                mcp_server_id:
                    type: string
                    description: The ID of the MCP server this endpoint addresses. Mutually exclusive with meta_mcp_server_id.
                    format: uuid
                meta_mcp_server_id:
                    type: string
                    description: The ID of the meta MCP server this endpoint addresses. Mutually exclusive with mcp_server_id.
                    format: uuid
                slug:
                    type: string
                    description: A url-friendly label (up to 128 characters) that addresses an MCP server through a slug-based URL. Platform-domain slugs (no custom domain) must be prefixed with the organization slug.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 128
            description: Form for creating a new MCP endpoint. Provide exactly one of mcp_server_id or meta_mcp_server_id. Platform-domain endpoint slugs (no custom_domain_id) must be prefixed with the organization slug.
            required:
                - slug
        CreateMcpServerForm:
            type: object
            properties:
                environment_id:
                    type: string
                    description: The ID of the environment to associate with the server
                    format: uuid
                name:
                    type: string
                    description: A human-readable display name for the server
                network_access_mode:
                    type: string
                    description: The network surfaces through which a Speakeasy-hosted MCP server may be reached.
                    enum:
                        - public_only
                        - dual
                        - private_only
                remote_mcp_server_id:
                    type: string
                    description: The ID of the remote MCP server to use as the backend
                    format: uuid
                tool_variations_group_id:
                    type: string
                    description: The ID of the tool variations group enabling MCP tool filtering for this server. Omit to leave filtering disabled.
                    format: uuid
                toolset_id:
                    type: string
                    description: The ID of the toolset to use as the backend
                    format: uuid
                tunneled_mcp_server_id:
                    type: string
                    description: The ID of the tunneled MCP server to use as the backend
                    format: uuid
                unproxied_mcp_server_id:
                    type: string
                    description: The ID of the unproxied MCP server to use as the backend
                    format: uuid
                user_session_issuer_id:
                    type: string
                    description: The ID of an existing project- or organization-owned user session issuer to attach. Omit to preserve the legacy create behavior, which mints an issuer for remote and tunneled backends.
                    format: uuid
                visibility:
                    type: string
                    description: The visibility of an MCP server
                    enum:
                        - disabled
                        - private
                        - public
            description: Form for creating a new MCP server. Exactly one of remote_mcp_server_id, tunneled_mcp_server_id, toolset_id, or unproxied_mcp_server_id must be provided.
            required:
                - name
                - visibility
        CreateMetaMcpServerForm:
            type: object
            properties:
                name:
                    type: string
                    description: The display name of the meta MCP server
                    minLength: 1
                    maxLength: 100
                network_access_mode:
                    type: string
                    description: The network surfaces through which a Speakeasy-hosted MCP server may be reached.
                    enum:
                        - public_only
                        - dual
                        - private_only
                user_session_issuer_id:
                    type: string
                    description: The ID of the user session issuer used to authenticate callers. Omit for no issuer.
                    format: uuid
                visibility:
                    type: string
                    description: The visibility of a meta MCP server. Disabled refuses traffic; private requires a user session.
                    enum:
                        - disabled
                        - private
            description: Form for creating a new meta MCP server. URL addressability is managed separately through MCP endpoints.
            required:
                - name
        CreateOnboardingPlaybookRequestBody:
            type: object
            properties:
                description:
                    type: string
                is_default:
                    type: boolean
                name:
                    type: string
                organization_id:
                    type: string
                    description: The one organization a custom playbook belongs to.
                step_slugs:
                    type: array
                    items:
                        type: string
                    description: Top-level step slugs in walking order.
                use_case_id:
                    type: string
                    description: The use case a shared playbook belongs to.
            required:
                - name
                - step_slugs
        CreateOnboardingUseCaseRequestBody:
            type: object
            properties:
                description:
                    type: string
                name:
                    type: string
                slug:
                    type: string
                    description: Lowercase letters, digits and dashes.
            required:
                - slug
                - name
        CreateOrganizationRemoteSessionClientForm:
            type: object
            properties:
                audience:
                    type: string
                    description: Optional upstream OAuth audience to send on the authorize redirect and token exchange.
                    pattern: ^[!-~]+$
                    maxLength: 512
                client_id:
                    type: string
                    description: client_id supplied by the caller, e.g. from Dynamic Client Registration.
                client_id_issued_at:
                    type: string
                    description: When the issuer reported issuing the client_id (RFC 7591 client_id_issued_at). Omit to record the time of this call.
                    format: date-time
                client_secret:
                    type: string
                    description: Optional client_secret supplied by the caller. Speakeasy encrypts before persisting; the plaintext is never returned.
                client_secret_expires_at:
                    type: string
                    description: When the issuer reported the client secret expires (RFC 7591 client_secret_expires_at). Omit when the issuer reported no expiry.
                    format: date-time
                credential_owner:
                    type: string
                    description: Who the upstream access credential belongs to, fixed at creation. subject (the default) means each caller connects their own upstream account through the client. self means the client obtains a credential for itself with the client_credentials grant and every caller shares it; it requires token_endpoint_auth_method client_secret_basic, client_secret_post (both with client_secret) or private_key_jwt (with json_web_key_set_id), and an issuer with a token_endpoint.
                    default: subject
                    enum:
                        - subject
                        - self
                json_web_key_set_id:
                    type: string
                    description: Organization JSON Web Key Set to sign private_key_jwt assertions with. Required when token_endpoint_auth_method is private_key_jwt and optional otherwise, as with attachKeySet. Must belong to the caller's organization, which needs the customer-managed encryption keys entitlement.
                    format: uuid
                project_id:
                    type: string
                    description: Owning project id for the new client; the project must belong to the caller's organization. Omit to inherit a project-specific issuer's project, or to create an organization-level client (no project, attachable by every project) under an organization-level issuer.
                    format: uuid
                remote_session_issuer_id:
                    type: string
                    description: The owning remote_session_issuer id; must belong to the caller's organization.
                    format: uuid
                scope:
                    type: array
                    items:
                        type: string
                        pattern: ^[!#-[\]-~]+$
                        maxLength: 128
                    description: Explicit upstream OAuth scopes the dance should request for this client. Omit to fall back to the issuer's scopes_supported.
                token_endpoint_auth_audience_format:
                    type: string
                    description: Identifier used as the aud claim in private_key_jwt assertions. Omit to use the issuer identifier; token_endpoint is available for providers that require the token endpoint URL.
                    enum:
                        - issuer
                        - token_endpoint
                token_endpoint_auth_method:
                    type: string
                    description: How the client authenticates at the issuer's token endpoint. Omit to default to client_secret_basic.
                    enum:
                        - client_secret_basic
                        - client_secret_post
                        - none
                        - private_key_jwt
            description: Form for an org admin to register a standalone remote_session_client under an existing issuer, with no user_session_issuer attachments.
            required:
                - remote_session_issuer_id
                - client_id
        CreateOrganizationRequestBody:
            type: object
            properties:
                ownership_confirmed:
                    type: boolean
                    description: The operator confirms that domain ownership was established outside this form.
                url:
                    type: string
                    description: Company HTTP(S) URL or bare hostname. The exact normalized hostname becomes the name and verified email domain.
                    minLength: 1
            required:
                - url
                - ownership_confirmed
        CreateOrganizationUserSessionIssuerForm:
            type: object
            properties:
                authn_challenge_mode:
                    type: string
                    description: 'How multi-remote authn challenges are presented: chain | interactive.'
                    enum:
                        - chain
                        - interactive
                session_duration_hours:
                    type: integer
                    description: Maximum issued user session lifetime, in hours.
                    format: int64
                    minimum: 1
                    maximum: 2.562047e+06
                slug:
                    type: string
                    description: Issuer slug. Unique for project-owned issuers; organization-owned issuer slugs may repeat.
                trusted_remote_session_client_id:
                    type: string
                    description: Organization-level remote_session_client Speakeasy uses with the trusted issuer. Must be supplied together with trusted_remote_session_issuer_id.
                    format: uuid
                trusted_remote_session_issuer_id:
                    type: string
                    description: Organization-level or global remote_session_issuer whose assertions this issuer trusts. Omit to leave enterprise-managed authorization disabled.
                    format: uuid
            description: Form for creating an organization-owned user_session_issuer.
            required:
                - slug
                - authn_challenge_mode
                - session_duration_hours
        CreateOtelDestinationHeaderInput:
            type: object
            properties:
                name:
                    type: string
                    description: Header name.
                value:
                    type: string
                    description: Write-only header value.
            description: An HTTP header supplied when creating an OTEL destination.
            required:
                - name
                - value
        CreateOtelDestinationInput:
            type: object
            properties:
                endpoint_url:
                    type: string
                    description: OTEL collector endpoint URL.
                    format: uri
                headers:
                    type: array
                    items:
                        $ref: '#/components/schemas/CreateOtelDestinationHeaderInput'
                    description: Write-only HTTP headers.
            description: OTEL-specific configuration supplied when creating a destination.
            required:
                - endpoint_url
                - headers
        CreatePackageForm:
            type: object
            properties:
                description:
                    type: string
                    description: The description of the package. Limited markdown syntax is supported.
                    maxLength: 10000
                image_asset_id:
                    type: string
                    description: The asset ID of the image to show for this package
                    maxLength: 50
                keywords:
                    type: array
                    items:
                        type: string
                    description: The keywords of the package
                    maxItems: 5
                name:
                    type: string
                    description: The name of the package
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 100
                summary:
                    type: string
                    description: The summary of the package
                    maxLength: 80
                title:
                    type: string
                    description: The title of the package
                    maxLength: 100
                url:
                    type: string
                    description: External URL for the package owner
                    maxLength: 100
            required:
                - name
                - title
                - summary
        CreatePackageResult:
            type: object
            properties:
                package:
                    $ref: '#/components/schemas/Package'
            required:
                - package
        CreatePlatformGcpIamCredentialForm:
            type: object
            properties:
                impersonate_service_account:
                    type: string
                    description: The service account Speakeasy impersonates. Set alone for direct impersonation, or as the hop alongside the wif_* fields.
                name:
                    type: string
                    description: A human-readable name for the credential.
                wif_pool_id:
                    type: string
                    description: Workload Identity Federation pool ID. Set together with the other wif_* fields.
                wif_project_number:
                    type: string
                    description: GCP project number backing the WIF pool. Set together with the other wif_* fields.
                wif_provider_id:
                    type: string
                    description: Workload Identity Federation provider ID. Set together with the other wif_* fields.
            required:
                - name
        CreatePluginForm:
            type: object
            properties:
                description:
                    type: string
                    description: Optional description.
                name:
                    type: string
                    description: Display name for the plugin.
                slug:
                    type: string
                    description: Optional URL-safe identifier. Auto-generated from name if omitted.
            required:
                - name
        CreatePortalSessionResult:
            type: object
            properties:
                token:
                    type: string
                    description: Front-end token for the webhook portal session.
                url:
                    type: string
                    description: URL for the webhook portal session.
            required:
                - url
                - token
        CreateProjectForm:
            type: object
            properties:
                apikey_token:
                    type: string
                name:
                    type: string
                    description: The name of the project
                    maxLength: 40
                organization_id:
                    type: string
                    description: The ID of the organization to create the project in
                session_token:
                    type: string
            required:
                - organization_id
                - name
        CreateProjectRequestBody:
            type: object
            properties:
                name:
                    type: string
                    description: The name of the project
                    maxLength: 40
                organization_id:
                    type: string
                    description: The ID of the organization to create the project in
            required:
                - organization_id
                - name
        CreateProjectResult:
            type: object
            properties:
                project:
                    $ref: '#/components/schemas/Project'
            required:
                - project
        CreatePromptTemplateForm:
            type: object
            properties:
                arguments:
                    type: string
                    description: The JSON Schema defining the placeholders found in the prompt template
                    format: json
                description:
                    type: string
                    description: The description of the prompt template
                engine:
                    type: string
                    description: The template engine
                    enum:
                        - mustache
                kind:
                    type: string
                    description: The kind of prompt the template is used for
                    enum:
                        - prompt
                name:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                prompt:
                    type: string
                    description: The template content
                tool_urns_hint:
                    type: array
                    items:
                        type: string
                    description: The suggested tool URNS associated with the prompt template
                    maxItems: 20
                tools_hint:
                    type: array
                    items:
                        type: string
                    description: The suggested tool names associated with the prompt template
                    maxItems: 20
            required:
                - name
                - prompt
                - engine
                - kind
        CreatePromptTemplateResult:
            type: object
            properties:
                template:
                    $ref: '#/components/schemas/PromptTemplate'
            required:
                - template
        CreateRegistryEntryRequestBody:
            type: object
            properties:
                data_json:
                    type: string
                    description: Complete registry record JSON; at most 8388608 UTF-8 bytes (8 MiB), enforced by the server on incoming writes. Stored records remain readable for repair.
            required:
                - data_json
        CreateRemoteSessionClientForm:
            type: object
            properties:
                audience:
                    type: string
                    description: Optional upstream OAuth audience to send on the authorize redirect and token exchange.
                    pattern: ^[!-~]+$
                    maxLength: 512
                client_id:
                    type: string
                    description: client_id supplied by the caller.
                client_id_issued_at:
                    type: string
                    description: When the issuer reported issuing the client_id (RFC 7591 client_id_issued_at). Omit to record the time of this call.
                    format: date-time
                client_secret:
                    type: string
                    description: client_secret supplied by the caller. Speakeasy encrypts before persisting.
                client_secret_expires_at:
                    type: string
                    description: When the issuer reported the client secret expires (RFC 7591 client_secret_expires_at). Omit when the issuer reported no expiry.
                    format: date-time
                credential_owner:
                    type: string
                    description: Who the upstream access credential belongs to, fixed at creation. subject (the default) means each caller connects their own upstream account through the client. self means the client obtains a credential for itself with the client_credentials grant and every caller shares it; it requires token_endpoint_auth_method client_secret_basic, client_secret_post (both with client_secret) or private_key_jwt (with json_web_key_set_id), and an issuer with a token_endpoint.
                    default: subject
                    enum:
                        - subject
                        - self
                json_web_key_set_id:
                    type: string
                    description: Organization JSON Web Key Set to sign private_key_jwt assertions with. Required when token_endpoint_auth_method is private_key_jwt and optional otherwise, as with attachKeySet. Must belong to the caller's organization, which needs the customer-managed encryption keys entitlement.
                    format: uuid
                remote_session_issuer_id:
                    type: string
                    description: The owning remote_session_issuer id.
                    format: uuid
                scope:
                    type: array
                    items:
                        type: string
                        pattern: ^[!#-[\]-~]+$
                        maxLength: 128
                    description: Explicit upstream OAuth scopes the dance should request for this client. Omit to fall back to the issuer's scopes_supported.
                token_endpoint_auth_audience_format:
                    type: string
                    description: Identifier used as the aud claim in private_key_jwt assertions. Omit to use the issuer identifier; token_endpoint is available for providers that require the token endpoint URL.
                    enum:
                        - issuer
                        - token_endpoint
                token_endpoint_auth_method:
                    type: string
                    description: How the client authenticates at the issuer's token endpoint. Omit to default to client_secret_basic.
                    enum:
                        - client_secret_basic
                        - client_secret_post
                        - none
                        - private_key_jwt
                user_session_issuer_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: The user_session_issuers to attach this client to via the join table. Omit or pass an empty array to create a standalone client with no attachments.
            description: Form for creating a remote_session_client. Caller supplies client_id (and optional client_secret) obtained out-of-band from the upstream issuer.
            required:
                - remote_session_issuer_id
                - client_id
        CreateRemoteSessionIssuerForm:
            type: object
            properties:
                authorization_endpoint:
                    type: string
                    description: Upstream authorization endpoint.
                authorization_grant_profiles_supported:
                    type: array
                    items:
                        type: string
                    description: Advertised grant profiles; metadata evidence is not client authorization or user access.
                authorization_response_iss_parameter_supported:
                    type: boolean
                    description: Whether the issuer includes the RFC 9207 iss parameter in authorization responses. Omitting the field stores null ("not captured").
                backchannel_logout_supported:
                    type: boolean
                    description: Whether the issuer supports OpenID Connect Back-Channel Logout. Omitting the field stores null ("not captured").
                claims_supported:
                    type: array
                    items:
                        type: string
                    description: Claims the issuer can return in ID tokens and from userinfo. Omitting the field stores null ("not captured"), distinct from an empty array ("the issuer advertises none").
                client_id_metadata_document_supported:
                    type: boolean
                    description: When true, the issuer accepts a Client ID Metadata Document URL as client_id (OAuth CIMD draft). Discovered from the issuer metadata document and used to pre-flight outbound CIMD. Default false.
                client_setup_documentation_url:
                    type: string
                    description: URL of OAuth client setup documentation shown when creating clients. Manually set, not RFC 8414; rejected unless an absolute http(s) URL.
                code_challenge_methods_supported:
                    type: array
                    items:
                        type: string
                    description: PKCE code challenge methods advertised by the issuer (RFC 8414 code_challenge_methods_supported). Omitting the field stores null ("not captured"), distinct from an empty array ("the issuer advertises no methods").
                grant_types_supported:
                    type: array
                    items:
                        type: string
                    description: Grant types advertised by the issuer.
                id_token_signing_alg_values_supported:
                    type: array
                    items:
                        type: string
                    description: JWS algorithms the issuer signs ID tokens with. Omitting the field stores null ("not captured"), distinct from an empty array ("the issuer advertises none").
                introspection_endpoint:
                    type: string
                    description: RFC 7662 token introspection endpoint. Discovered from the issuer metadata document; rejected unless an absolute https URL, or http on loopback.
                introspection_endpoint_auth_methods_supported:
                    type: array
                    items:
                        type: string
                    description: Client authentication methods the introspection endpoint accepts. Omitting the field stores null ("not captured"), distinct from an empty array ("the issuer advertises none").
                issuer:
                    type: string
                    description: Issuer URL; matches the iss claim.
                jwks_uri:
                    type: string
                    description: Upstream JWKS URI.
                logo_asset_id:
                    type: string
                    description: Optional logo asset id.
                    format: uuid
                name:
                    type: string
                    description: Optional display name. Stored NULL when empty; clients fall back to the issuer URL/slug.
                oidc:
                    type: boolean
                    description: When true, may unlock OIDC-aware behaviour. Default false.
                omit_scope_fallback:
                    type: boolean
                    description: 'When true, a login that would otherwise request the authorization server''s whole scopes_supported omits the scope parameter so the server applies its default. Omit to leave it unset: such a login requests the provider''s whole scopes_supported.'
                op_policy_uri:
                    type: string
                    description: RFC 8414 op_policy_uri; the issuer's client data-usage policy. Discovered from the issuer metadata document; rejected unless an absolute http(s) URL.
                op_tos_uri:
                    type: string
                    description: RFC 8414 op_tos_uri; the issuer's terms of service. Discovered from the issuer metadata document; rejected unless an absolute http(s) URL.
                passthrough:
                    type: boolean
                    description: When true, the MCP client registers and transacts directly with this issuer. Default false.
                registration_endpoint:
                    type: string
                    description: Upstream RFC 7591 registration endpoint; absent for issuers without DCR.
                resource_indicator_supported:
                    type: boolean
                    description: 'Whether the issuer accepts the RFC 8707 resource parameter. Omit to leave it unset: the parameter is then sent, and a login or refresh the issuer answers with invalid_target is retried once without it. Set false to never send it.'
                response_types_supported:
                    type: array
                    items:
                        type: string
                    description: Response types advertised by the issuer.
                revocation_endpoint:
                    type: string
                    description: Upstream RFC 7009 revocation endpoint; absent for issuers that advertise none.
                scope_override:
                    type: array
                    items:
                        type: string
                    description: Operator-pinned scope request. When set, it is sent verbatim on the upstream authorize redirect in place of the resolved scope set. Omit or send an empty array to leave it unset.
                scopes_supported:
                    type: array
                    items:
                        type: string
                    description: Scopes advertised by the issuer.
                service_documentation:
                    type: string
                    description: RFC 8414 service_documentation; developer documentation for the issuer. Discovered from the issuer metadata document; rejected unless an absolute http(s) URL.
                slug:
                    type: string
                    description: Project-unique slug.
                token_endpoint:
                    type: string
                    description: Upstream token endpoint.
                token_endpoint_auth_methods_supported:
                    type: array
                    items:
                        type: string
                    description: Token endpoint auth methods advertised by the issuer.
                tunneled_mcp_server_id:
                    type: string
                    description: Route this issuer's OAuth endpoint calls through an MCP tunnel in the same project. Platform admins only.
                    format: uuid
                userinfo_endpoint:
                    type: string
                    description: OpenID Connect userinfo endpoint. Discovered from the issuer metadata document; rejected unless an absolute https URL, or http on loopback.
            description: Form for creating a remote_session_issuer.
            required:
                - slug
                - issuer
        CreateRequestBody:
            type: object
            properties:
                embed_origin:
                    type: string
                    description: The origin from which the token will be used
                expires_after:
                    type: integer
                    description: Token expiration in seconds (max / default 3600)
                    default: 3600
                    format: int64
                    minimum: 1
                    maximum: 3600
                user_identifier:
                    type: string
                    description: Optional free-form user identifier
            required:
                - embed_origin
        CreateRequestRequestBody:
            type: object
            properties:
                note:
                    type: string
                    description: The requester's justification for wanting access to this server. Must not be blank.
                    maxLength: 4000
                target:
                    type: string
                    description: 'The server reference: a URL, or the stdio command that launches it.'
                    maxLength: 2048
                target_kind:
                    type: string
                    description: The namespace of the reference.
                    enum:
                        - server_url
                        - stdio_command
            required:
                - target_kind
                - target
                - note
        CreateResponseBody:
            type: object
            properties:
                client_token:
                    type: string
                    description: JWT token for chat session
                embed_origin:
                    type: string
                    description: The origin from which the token will be used
                expires_after:
                    type: integer
                    description: Token expiration in seconds
                    format: int64
                status:
                    type: string
                    description: Session status
                user_identifier:
                    type: string
                    description: User identifier if provided
            required:
                - embed_origin
                - client_token
                - expires_after
                - status
        CreateRiskExclusionRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                    description: Whether the exclusion is active.
                    default: true
                match_type:
                    type: string
                    description: How match_value is interpreted.
                    enum:
                        - exact
                        - regex
                        - rule_id
                        - source
                        - entity_type
                match_value:
                    type: string
                    description: The value matched against findings, interpreted per match_type.
                risk_policy_id:
                    type: string
                    description: Bind the exclusion to a single policy. Omit for a global (project-wide) exclusion.
                    format: uuid
                rule_id_filter:
                    type: string
                    description: 'Optional: only apply within this rule_id. Empty means any.'
                    default: ""
                source_filter:
                    type: string
                    description: 'Optional: only apply within this source. Empty means any.'
                    default: ""
            required:
                - match_type
                - match_value
        CreateRiskPolicyBypassRequestRequestBody:
            type: object
            properties:
                note:
                    type: string
                    description: 'The requester''s own justification for needing this, shown to whoever decides. Optional: an older client that sends none falls back to the policy''s block reason.'
                    maxLength: 4000
                request_token:
                    type: string
                    description: Signed request token generated when a risk policy blocks an action.
            required:
                - request_token
        CreateRiskPolicyRequestBody:
            type: object
            properties:
                action:
                    type: string
                    description: 'Policy action: flag, warn (challenge), block, or quarantine (deny and freeze the hook session). MCP-scoped policies support flag and block only.'
                    default: flag
                    enum:
                        - flag
                        - warn
                        - block
                        - quarantine
                approved_email_domains:
                    type: array
                    items:
                        type: string
                    description: 'For the account_identity source: corporate email domains considered approved. Sessions whose AI-account email domain is not listed are flagged. Empty/omitted leaves the domain rule inert.'
                audience_principal_urns:
                    type: array
                    items:
                        type: string
                    description: Principal URNs this policy applies to. For audience_type=everyone, the server stores user:all.
                audience_type:
                    type: string
                    description: 'Policy audience type: everyone or targeted.'
                    default: everyone
                    enum:
                        - everyone
                        - targeted
                auto_name:
                    type: boolean
                    description: Whether the policy name should be auto-generated.
                custom_rule_ids:
                    type: array
                    items:
                        type: string
                    description: 'Custom detection rule ids to attach as detectors: a match produces a finding.'
                detection_scopes:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskDetectionScope'
                    description: Per-category detection scopes. Each specified category replaces its centrally recommended scope; a scope with both predicates empty scans every message surface. Empty/omitted = all recommendations apply unchanged.
                disabled_rules:
                    type: array
                    items:
                        type: string
                    description: Canonical rule_ids the user has unchecked within otherwise-enabled categories. Matching findings are dropped at scan time.
                enabled:
                    type: boolean
                    description: Whether the policy is active.
                mcp_scope:
                    $ref: '#/components/schemas/RiskMCPScope'
                model_config:
                    $ref: '#/components/schemas/RiskPolicyModelConfig'
                name:
                    type: string
                    description: The policy name. If omitted, a name will be auto-generated.
                policy_type:
                    type: string
                    description: 'Policy type: standard (regex/presidio/custom detection) or prompt_based (LLM-judge). Defaults to standard.'
                    default: standard
                    enum:
                        - standard
                        - prompt_based
                presidio_entities:
                    type: array
                    items:
                        type: string
                    description: Presidio entity types to detect.
                presidio_score_threshold:
                    type: number
                    description: Minimum Presidio confidence (0.0-1.0) a PII match must clear to surface. Omit/null applies the default (0.5).
                    example: 0.75
                    format: double
                    minimum: 0
                    maximum: 1
                prompt:
                    type: string
                    description: 'For prompt_based policies: the guardrail prompt the LLM judge evaluates each in-scope message against. Required when policy_type is prompt_based.'
                prompt_injection_rules:
                    type: array
                    items:
                        type: string
                    description: Prompt-injection detection rule ids to enable in addition to the heuristic baseline.
                score:
                    type: number
                    description: CVSS-style severity (0.1-10) assigned to findings this policy produces. Omit to apply the default (5).
                    default: 5
                    example: 5
                    format: double
                    minimum: 0.1
                    maximum: 10
                shadow_mcp_allowed_urls:
                    type: array
                    items:
                        type: string
                    description: Complete desired canonical URL allow set for this policy. Omit or send empty to create no URL-specific allow decisions.
                shadow_mcp_blocked_urls:
                    type: array
                    items:
                        type: string
                    description: 'For allow_all policies: complete desired canonical URL block set. Omit or send empty to block nothing. Only valid when shadow_mcp_disposition is allow_all.'
                shadow_mcp_disposition:
                    type: string
                    description: 'Default disposition for shadow MCP blocking policies: block_all (default) blocks every non-Speakeasy-hosted server unless allowed, allow_all permits every server unless blocked. Only valid with the shadow_mcp source and block action. Immutable after create — switching requires delete + recreate.'
                    enum:
                        - block_all
                        - allow_all
                sources:
                    type: array
                    items:
                        type: string
                    description: Detection sources to enable.
                user_message:
                    type: string
                    description: Optional message shown to end users when this policy blocks an action or surfaces a flagged finding.
        CreateRoleForm:
            type: object
            properties:
                agent_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: Optional agent IDs to assign to this role on creation. Scopes an agent cannot hold at runtime are simply not granted to it.
                description:
                    type: string
                    description: Optional description of what this role can do.
                grants:
                    type: array
                    items:
                        $ref: '#/components/schemas/RoleGrant'
                    description: Scope grants to assign.
                member_ids:
                    type: array
                    items:
                        type: string
                    description: Optional member IDs to additionally assign to this role on creation.
                name:
                    type: string
                    description: Display name for the role.
            required:
                - name
                - grants
        CreateServerAndMcpServerResult:
            type: object
            properties:
                mcp_server:
                    $ref: '#/components/schemas/McpServer'
                remote_mcp_server:
                    $ref: '#/components/schemas/RemoteMcpServer'
            description: The atomically created remote MCP source and its linked disabled MCP server.
            required:
                - remote_mcp_server
                - mcp_server
        CreateServerForm:
            type: object
            properties:
                name:
                    type: string
                    description: Optional human-readable name for the remote MCP server. Empty values are stored as null.
                transport_type:
                    type: string
                    description: The transport type for the remote MCP server (e.g. streamable-http)
                url:
                    type: string
                    description: The URL of the remote MCP server
                    format: uri
                user_session_issuer_id:
                    type: string
                    description: For createServerAndMcpServer, the ID of an existing project- or organization-owned user session issuer to attach to the linked MCP server. Omit to mint a project issuer. The source-only createServer method rejects this field.
                    format: uuid
            description: Form for creating a new remote MCP server
            required:
                - url
                - transport_type
        CreateServerHeaderForm:
            type: object
            properties:
                description:
                    type: string
                    description: Description of the header
                is_required:
                    type: boolean
                    description: Whether the header is required. Defaults to false.
                is_secret:
                    type: boolean
                    description: Whether the header value is a secret. Defaults to false. Incompatible with value_from_request_header.
                name:
                    type: string
                    description: The header name
                remote_mcp_server_id:
                    type: string
                    description: The ID of the remote MCP server to add the header to
                    format: uuid
                value:
                    type: string
                    description: Static header value (mutually exclusive with value_from_request_header)
                value_from_request_header:
                    type: string
                    description: Name of the inbound request header to pass through (mutually exclusive with value)
            description: Form for creating a header on a remote MCP server. Exactly one of value or value_from_request_header must be provided.
            required:
                - remote_mcp_server_id
                - name
        CreateSessionHandoffRequestBody:
            type: object
            properties:
                content:
                    type: string
                    description: The rendered handoff document (markdown). Size-capped; the daemon renders deterministically from the local transcript.
                    maxLength: 262144
                session_id:
                    type: string
                    description: Native harness session identifier the handoff was rendered from. Speakeasy derives its chat id from this the same way hook ingest does; a not-yet-captured session can still mint a link.
                    maxLength: 256
                source_surface:
                    type: string
                    description: Harness the session originated in, as detected by the agent (e.g. claude-code, codex).
                    maxLength: 64
                ttl_seconds:
                    type: integer
                    description: Requested link lifetime in seconds. Clamped to [60, 3600]; defaults to 900 when omitted.
                    example: 900
                    format: int64
            required:
                - session_id
                - content
        CreateSessionHandoffResult:
            type: object
            properties:
                expires_at:
                    type: string
                    description: When the link stops being served regardless of reads.
                    format: date-time
                url:
                    type: string
                    description: Capability URL serving the uploaded handoff markdown. Unauthenticated by design — the unguessable token is the credential — and dead after the first read or expiry.
            required:
                - url
                - expires_at
        CreateSigintSensorForm:
            type: object
            properties:
                description:
                    type: string
                    description: Optional description; empty stores no value
                enabled:
                    type: boolean
                    description: Whether to enable evaluation; omission defaults to true
                input_strategy:
                    type: string
                    description: Message context used for classification. Sliding windows classify the current message with preceding messages ordered by timestamp.
                    enum:
                        - single_message
                        - sliding_window
                instructions:
                    type: string
                    description: Optional classification instructions; empty stores no value
                match_expression:
                    type: string
                    description: Boolean CEL predicate, at most 4096 UTF-8 bytes; omission defaults to message.role == "user"
                mode:
                    type: string
                    description: 'How a sensor interprets its ordered signals: independently applicable labels, an exclusive choice, or ordered score levels.'
                    enum:
                        - multi_label
                        - exclusive
                        - ordered_score
                name:
                    type: string
                    description: Display name; trimmed before enforcing the 1 to 200 character limit
                signal_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: Initial ordered signal IDs. Omitted and [] both create an empty sensor.
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                window_size:
                    type: integer
                    description: Total sliding window messages including the target; omission defaults to 5
                    format: int64
                    minimum: 2
                    maximum: 10
            required:
                - name
                - mode
        CreateSigintSignalForm:
            type: object
            properties:
                classifier_criteria:
                    type: string
                    description: Optional classifier criteria; empty stores no value
                description:
                    type: string
                    description: Optional description; empty stores no value
                name:
                    type: string
                    description: Display name; trimmed before enforcing the 1 to 200 character limit
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - name
        CreateSignedChatAttachmentURLForm:
            type: object
            properties:
                apikey_token:
                    type: string
                chat_sessions_token:
                    type: string
                id:
                    type: string
                    description: The ID of the chat attachment
                project_id:
                    type: string
                    description: The project ID that the attachment belongs to
                project_slug_input:
                    type: string
                session_token:
                    type: string
                ttl_seconds:
                    type: integer
                    description: 'Time-to-live in seconds (default: 600, max: 3600)'
                    format: int64
            required:
                - id
                - project_id
        CreateSignedChatAttachmentURLForm2:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the chat attachment
                project_id:
                    type: string
                    description: The project ID that the attachment belongs to
                ttl_seconds:
                    type: integer
                    description: 'Time-to-live in seconds (default: 600, max: 3600)'
                    format: int64
            required:
                - id
                - project_id
        CreateSignedChatAttachmentURLResult:
            type: object
            properties:
                expires_at:
                    type: string
                    description: When the signed URL expires
                    format: date-time
                url:
                    type: string
                    description: The signed URL to access the chat attachment
            required:
                - url
                - expires_at
        CreateSignupOfferRequestBody:
            type: object
            properties:
                name:
                    type: string
                    minLength: 1
                    maxLength: 200
                signup_flow:
                    type: string
                    enum:
                        - tailscale_partner_gateway
                stripe_promotion_code_id:
                    type: string
                    pattern: ^promo_[A-Za-z0-9_]+$
                    maxLength: 255
            required:
                - name
                - stripe_promotion_code_id
                - signup_flow
        CreateSkillRequestBody:
            type: object
            properties:
                content:
                    type: string
                    description: The complete uploaded SKILL.md content. Handlers enforce a maximum size of 65,536 UTF-8 bytes.
            required:
                - content
        CreateSpendRuleRequestBody:
            type: object
            properties:
                action:
                    type: string
                    description: 'Rule action: flag or block.'
                    default: flag
                    enum:
                        - flag
                        - block
                description:
                    type: string
                    description: Optional description of what the rule covers.
                    default: ""
                enabled:
                    type: boolean
                    description: Whether the rule is active.
                    default: true
                limit_usd:
                    type: number
                    description: Per-person budget in USD for one window.
                    format: double
                    minimum: 0
                name:
                    type: string
                    description: The rule name.
                target:
                    $ref: '#/components/schemas/SpendRuleTargetCondition'
                warn_at_pct:
                    type: integer
                    description: Percentage of the limit at which a warning event is emitted.
                    default: 80
                    format: int64
                    minimum: 1
                    maximum: 100
                window_kind:
                    type: string
                    description: UTC calendar window the budget covers.
                    enum:
                        - daily
                        - weekly
                        - monthly
            required:
                - name
                - target
                - limit_usd
                - window_kind
        CreateToolsetForm:
            type: object
            properties:
                default_environment_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                description:
                    type: string
                    description: Description of the toolset
                name:
                    type: string
                    description: The name of the toolset
                origin:
                    $ref: '#/components/schemas/ToolsetOrigin'
                project_slug_input:
                    type: string
                resource_urns:
                    type: array
                    items:
                        type: string
                    description: List of resource URNs to include in the toolset
                tool_urns:
                    type: array
                    items:
                        type: string
                    description: List of tool URNs to include in the toolset
            required:
                - name
        CreateToolsetRequestBody:
            type: object
            properties:
                default_environment_slug:
                    type: string
                    description: The slug of the environment to use as the default for the toolset
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                description:
                    type: string
                    description: Description of the toolset
                name:
                    type: string
                    description: The name of the toolset
                origin:
                    $ref: '#/components/schemas/ToolsetOrigin'
                resource_urns:
                    type: array
                    items:
                        type: string
                    description: List of resource URNs to include in the toolset
                tool_urns:
                    type: array
                    items:
                        type: string
                    description: List of tool URNs to include in the toolset
            required:
                - name
        CreateTriggerInstanceForm:
            type: object
            properties:
                config:
                    type: object
                    description: The trigger config payload.
                    additionalProperties: true
                definition_slug:
                    type: string
                    description: The trigger definition slug.
                environment_id:
                    type: string
                    description: The linked environment ID.
                    format: uuid
                name:
                    type: string
                    description: The trigger instance name.
                status:
                    type: string
                    description: Optional initial status.
                    enum:
                        - active
                        - paused
                target_display:
                    type: string
                    description: The user-facing target display value.
                target_kind:
                    type: string
                    description: The trigger target kind.
                    enum:
                        - assistant
                        - noop
                target_ref:
                    type: string
                    description: The opaque target reference.
            required:
                - definition_slug
                - name
                - target_kind
                - target_ref
                - target_display
                - config
        CreateTunneledMcpServerForm:
            type: object
            properties:
                name:
                    type: string
                    description: Human-readable display name for the tunneled MCP server
                resource_identifier:
                    type: string
                    description: RFC 9728 protected resource identifier of the tunneled server, used for credential routing and as the signed caller assertion audience; never dialed by Speakeasy. The exact identifier is preserved, including trailing slashes. When unset, caller assertions use tunneled-mcp-server:<ID>. Omit unless the identifier is already known; it is usually recorded later, once the tunnel is up.
            description: Form for creating a new tunneled MCP server source
            required:
                - name
        CreateTunneledMcpServerResult:
            type: object
            properties:
                server:
                    $ref: '#/components/schemas/TunneledMcpServer'
                tunnel_key:
                    type: string
                    description: Plaintext tunnel key. Only returned at creation time.
            description: Created tunneled MCP server plus the one-time tunnel key
            required:
                - server
                - tunnel_key
        CreateUnproxiedMcpServerForm:
            type: object
            properties:
                description:
                    type: string
                    description: Optional description shown alongside the server.
                name:
                    type: string
                    description: Optional human-readable name for the unproxied MCP server. Empty values are stored as null.
                url:
                    type: string
                    description: The URL of the vendor's MCP server. Speakeasy never proxies tool calls through it; the only outbound requests Speakeasy ever makes to it are fetching a favicon and, on request, a live tool listing.
                    format: uri
            description: Form for creating a new unproxied MCP server
            required:
                - url
        CreateUserSessionIssuerCimdClientForm:
            type: object
            properties:
                client_id_metadata_uri:
                    type: string
                    description: The exact https URL the client presents as its client_id. Matched byte for byte at authorization time — the spec forbids normalization, so this must be the vendor's published URL exactly.
                user_session_issuer_id:
                    type: string
                    description: The user_session_issuer the URL is allowed on.
                    format: uuid
            description: Form for allowing an additional CIMD document URL on a user_session_issuer.
            required:
                - user_session_issuer_id
                - client_id_metadata_uri
        CreateUserSessionIssuerCimdClientResult:
            type: object
            properties:
                client:
                    $ref: '#/components/schemas/UserSessionIssuerCimdClient'
            description: Result of allowing a CIMD document URL. Reachability is not reported here — call verifyURL for that.
            required:
                - client
        CreateUserSessionIssuerForm:
            type: object
            properties:
                authn_challenge_mode:
                    type: string
                    description: 'How multi-remote authn challenges are presented: chain | interactive.'
                    enum:
                        - chain
                        - interactive
                session_duration_hours:
                    type: integer
                    description: Maximum issued user session lifetime, in hours.
                    format: int64
                    minimum: 1
                    maximum: 2.562047e+06
                slug:
                    type: string
                    description: Issuer slug. Unique for project-owned issuers; organization-owned issuer slugs may repeat.
            description: Form for creating a user_session_issuer.
            required:
                - slug
                - authn_challenge_mode
                - session_duration_hours
        CreateWidgetRequestBody:
            type: object
            properties:
                dataset:
                    type: string
                    description: Catalog dataset the widget asks
                    minLength: 1
                description:
                    type: string
                    description: What the widget is for, at most 2000 characters
                    maxLength: 2000
                name:
                    type: string
                    description: Display name, at most 200 characters
                    minLength: 1
                    maxLength: 200
                query:
                    type: object
                    description: The question. Validated against the catalog on save.
                    additionalProperties: true
                visualization:
                    type: object
                    description: How the question is drawn. Checked against the question on save.
                    additionalProperties: true
            required:
                - name
                - dataset
                - query
                - visualization
        CreditUsageResponseBody:
            type: object
            properties:
                credits_used:
                    type: number
                    description: The number of credits remaining
                    format: double
                monthly_credits:
                    type: integer
                    description: The number of monthly credits
                    format: int64
            required:
                - credits_used
                - monthly_credits
        CursorHookPayload:
            type: object
            properties:
                additional_data:
                    type: object
                    description: Additional hook-specific data
                    additionalProperties: true
                cache_read_tokens:
                    type: integer
                    description: Tokens read from cache (stop, afterAgentResponse)
                    format: int64
                cache_write_tokens:
                    type: integer
                    description: Tokens written to cache (stop, afterAgentResponse)
                    format: int64
                command:
                    type: string
                    description: Command string for command-based MCP servers (beforeMCPExecution / afterMCPExecution only)
                composer_mode:
                    type: string
                    description: The composer mode, e.g. agent (beforeSubmitPrompt only)
                conversation_id:
                    type: string
                    description: The Cursor conversation ID
                cursor_version:
                    type: string
                    description: The Cursor IDE version
                duration:
                    type: number
                    description: Execution duration in milliseconds, excluding approval wait time (afterMCPExecution only)
                    format: double
                duration_ms:
                    type: integer
                    description: Duration in milliseconds for the thinking block (afterAgentThought only)
                    format: int64
                error:
                    description: The error from the tool (postToolUseFailure only)
                generation_id:
                    type: string
                    description: The Cursor generation ID
                hook_event_name:
                    type: string
                    description: The type of hook event (e.g. beforeSubmitPrompt, stop, afterAgentResponse, afterAgentThought, preToolUse, postToolUse, postToolUseFailure, beforeMCPExecution, afterMCPExecution)
                input_tokens:
                    type: integer
                    description: Total input tokens used (stop, afterAgentResponse)
                    format: int64
                is_interrupt:
                    type: boolean
                    description: Whether the failure was caused by user interruption
                loop_count:
                    type: integer
                    description: Number of agentic loops executed (stop only)
                    format: int64
                model:
                    type: string
                    description: The model being used
                output_tokens:
                    type: integer
                    description: Total output tokens used (stop, afterAgentResponse)
                    format: int64
                prompt:
                    type: string
                    description: The user's prompt text (beforeSubmitPrompt only)
                result_json:
                    type: string
                    description: JSON-encoded string of the MCP tool response (afterMCPExecution only)
                session_id:
                    type: string
                    description: The session ID from Cursor
                status:
                    type: string
                    description: Completion status, e.g. completed (stop only)
                text:
                    type: string
                    description: The assistant's response text (afterAgentResponse) or thinking text (afterAgentThought)
                tool_input:
                    description: The input to the tool
                tool_name:
                    type: string
                    description: The name of the tool
                tool_response:
                    description: The response from the tool (postToolUse only)
                tool_use_id:
                    type: string
                    description: The unique ID for this tool use
                transcript_path:
                    type: string
                    description: Path to the conversation transcript JSONL file
                url:
                    type: string
                    description: URL of the MCP server (beforeMCPExecution / afterMCPExecution, URL-based servers only)
                user_email:
                    type: string
                    description: Email of the authenticated Cursor user, if available
            description: Payload for Cursor hook events
            required:
                - hook_event_name
        CursorHookResult:
            type: object
            properties:
                additional_context:
                    type: string
                    description: Additional context to inject into the conversation
                agent_message:
                    type: string
                    description: Message sent back to the agent (beforeMCPExecution only)
                permission:
                    type: string
                    description: 'Permission decision for preToolUse / beforeMCPExecution: allow, deny, or ask'
                user_message:
                    type: string
                    description: Message to display to the user
            description: Result for Cursor hook events
        CustomDomain:
            type: object
            properties:
                activated:
                    type: boolean
                    description: Whether the domain is activated in ingress
                certificate_expires_at:
                    type: string
                    description: When the currently observed TLS certificate expires.
                    format: date-time
                consecutive_failures:
                    type: integer
                    description: The number of consecutive failed health checks
                    format: int32
                created_at:
                    type: string
                    description: When the custom domain was created.
                    format: date-time
                domain:
                    type: string
                    description: The custom domain name
                health_checked_at:
                    type: string
                    description: When the domain health was last checked.
                    format: date-time
                health_issue:
                    type: string
                    description: 'The reason the domain was last observed as unhealthy. One of: dns_not_found, dns_target_mismatch, resource_missing, certificate_missing, certificate_not_ready, certificate_expired, certificate_invalid, check_failed.'
                health_status:
                    type: string
                    description: 'The latest observed domain health status. One of: unknown, healthy, unhealthy.'
                id:
                    type: string
                    description: The ID of the custom domain
                ip_allowlist:
                    type: array
                    items:
                        type: string
                    description: IP addresses or CIDR ranges allowed to access this domain. Empty list means unrestricted.
                is_updating:
                    type: boolean
                    description: The custom domain is actively being registered
                openai_apps_challenge_token:
                    type: string
                    description: The token served for OpenAI app-submission domain verification, if configured
                organization_id:
                    type: string
                    description: The ID of the organization this domain belongs to
                root_mcp_endpoint_id:
                    type: string
                    description: The MCP endpoint currently mapped to the domain root, if any
                    format: uuid
                suggested_record_type:
                    type: string
                    description: The suggested DNS record type for this domain. A suggestion only — delegated subzones can make an apex-looking domain CNAME-capable.
                    enum:
                        - cname
                        - a
                unhealthy_since:
                    type: string
                    description: When the current unhealthy period began.
                    format: date-time
                updated_at:
                    type: string
                    description: When the custom domain was last updated.
                    format: date-time
                verified:
                    type: boolean
                    description: Whether the domain is verified
            required:
                - id
                - organization_id
                - domain
                - verified
                - activated
                - created_at
                - updated_at
                - is_updating
                - ip_allowlist
                - suggested_record_type
        CustomDomainMcpEndpoint:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the MCP endpoint
                    format: uuid
                is_domain_root:
                    type: boolean
                    description: Whether this endpoint is mapped to the custom-domain root
                mcp_server_id:
                    type: string
                    description: The ID of the parent MCP server. Null for meta-MCP-backed endpoints.
                    format: uuid
                mcp_server_name:
                    type: string
                    description: The display name of the parent server. May be empty if the parent has no configured name.
                mcp_server_slug:
                    type: string
                    description: The url-friendly slug of the parent MCP server. May be empty if the parent has no configured slug or is a meta MCP server.
                meta_mcp_server_id:
                    type: string
                    description: The ID of the parent meta MCP server. Null for MCP-server-backed endpoints.
                    format: uuid
                project_id:
                    type: string
                    description: The ID of the project the endpoint belongs to
                    format: uuid
                project_name:
                    type: string
                    description: The display name of the project the endpoint belongs to
                project_slug:
                    type: string
                    description: The url-friendly slug of the project the endpoint belongs to
                slug:
                    type: string
                    description: The endpoint slug
            description: An MCP endpoint registered under a custom domain, with its parent MCP server and project denormalised for display in the dashboard's delete-impact preview.
            required:
                - id
                - slug
                - project_id
                - project_name
                - project_slug
                - is_domain_root
        Dashboard:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                created_by_user_id:
                    type: string
                    description: Who made it, when known
                description:
                    type: string
                    description: What the dashboard is for, when its creator said
                filters:
                    $ref: '#/components/schemas/DashboardFilters'
                id:
                    type: string
                    format: uuid
                name:
                    type: string
                    description: Display name. Not unique.
                organization_id:
                    type: string
                project_id:
                    type: string
                    format: uuid
                updated_at:
                    type: string
                    format: date-time
                widgets:
                    type: array
                    items:
                        $ref: '#/components/schemas/DashboardPlacement'
                    description: Its cards, in no particular order; the grid places them by position
            description: 'A project''s layout of saved widgets on a 12-column grid, under one date range and filter bar. Belongs to a project and is visible to everyone in it. Widgets are linked, not copied: editing one changes it on every dashboard it is on.'
            required:
                - id
                - project_id
                - organization_id
                - name
                - filters
                - widgets
                - created_at
                - updated_at
        DashboardFilters:
            type: object
            properties:
                range:
                    $ref: '#/components/schemas/DashboardRange'
                values:
                    type: object
                    description: Values picked per catalog dimension, by field name
                    additionalProperties:
                        type: array
                        items:
                            type: string
            description: 'What a dashboard opens on: its date range and the values picked for each catalog dimension its filter bar offers. Changes in the bar are a personal view until they are saved here.'
            required:
                - values
        DashboardPlacement:
            type: object
            properties:
                h:
                    type: integer
                    description: Height in rows
                    format: int64
                id:
                    type: string
                    description: Stable across layout edits, so the grid keeps the card's identity
                    format: uuid
                w:
                    type: integer
                    description: Width in columns
                    format: int64
                widget_id:
                    type: string
                    format: uuid
                x:
                    type: integer
                    description: Column the card starts at, from 0
                    format: int64
                "y":
                    type: integer
                    description: Row the card starts at, from 0
                    format: int64
            description: 'One card on a dashboard: the saved widget it links to and where it sits on the 12-column grid. The same widget may be placed more than once.'
            required:
                - id
                - widget_id
                - x
                - "y"
                - w
                - h
        DashboardRange:
            type: object
            properties:
                from:
                    type: string
                    description: Start of an absolute range
                    format: date-time
                label:
                    type: string
                    description: How the date picker named the absolute range
                    example: Last Tuesday
                preset:
                    type: string
                    description: A relative window, one a widget may be saved with
                    example: 7d
                to:
                    type: string
                    description: End of an absolute range
                    format: date-time
            description: 'The date range a dashboard opens on: a relative window, or an absolute range with the label the date picker gave it.'
        DataExportRoute:
            type: object
            properties:
                created_at:
                    type: string
                    description: Creation timestamp.
                    format: date-time
                data_source:
                    type: string
                    description: Class of data exported by this route.
                    enum:
                        - product_telemetry
                        - risk_findings
                        - tool_call_logs
                enabled:
                    type: boolean
                    description: Whether the route is enabled.
                id:
                    type: string
                    description: Route ID.
                    format: uuid
                otel_destination_id:
                    type: string
                    description: OTEL destination configured on this route. Omitted when no OTEL destination is selected.
                    format: uuid
                project_id:
                    type: string
                    description: Project that owns the route.
                    format: uuid
                updated_at:
                    type: string
                    description: Last update timestamp.
                    format: date-time
            description: The export configuration for one class of project data. A route may contain one destination of each supported type.
            required:
                - id
                - project_id
                - data_source
                - enabled
                - created_at
                - updated_at
        DeactivatePrescriptionRequestBody:
            type: object
            properties:
                expected_version:
                    type: integer
                    format: int64
                operation_id:
                    type: string
                    format: uuid
                organization_id:
                    type: string
                prescription_id:
                    type: string
                    format: uuid
            required:
                - organization_id
                - operation_id
                - prescription_id
                - expected_version
        DeclineRiskPolicyChallengeResponseBody:
            type: object
            properties:
                declined:
                    type: boolean
                    description: Whether the challenge is now declined.
            required:
                - declined
        DelegationStatusCount:
            type: object
            properties:
                count:
                    type: integer
                    description: Number of humans with this latest outcome.
                    format: int64
                    minimum: 0
                last_credential_obtained_at:
                    type: string
                    description: Most recent credential acquisition, distinct from renewal.
                    format: date-time
                last_observed_at:
                    type: string
                    description: Most recent matching observation.
                    format: date-time
                last_refresh_succeeded_at:
                    type: string
                    description: Most recent successful assertion renewal.
                    format: date-time
                status:
                    type: string
                    description: Observed per-human delegation outcome, present only when the top-level status is observed. A configuration_failure count records past per-human failures for the current configuration; it is distinct from top-level configuration_failure, which reports a currently invalid configuration and returns no observations.
                    enum:
                        - durable_credential_present
                        - assertion_only
                        - offline_unsupported
                        - offline_not_requested
                        - refused
                        - reauthentication_required
                        - temporary_failure
                        - configuration_failure
            description: Sanitized count of the latest observation per human, not a history of token requests.
            required:
                - status
                - count
        DeleteAiScanTargetRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: Id of the target to remove.
                    pattern: ^[a-z0-9][a-z0-9-]{0,63}$
            required:
                - id
        DeleteAiScanTargetResult:
            type: object
            properties:
                list_version:
                    type: integer
                    description: Version of the served list after the change.
                    format: int64
            required:
                - list_version
        DeleteConfigRequestBody:
            type: object
            properties:
                provider:
                    type: string
                    description: AI provider identifier. Supported values include cursor, anthropic_compliance, codex_compliance, and chatgpt_compliance.
            required:
                - provider
        DeleteGlobalToolVariationForm:
            type: object
            properties:
                variation_id:
                    type: string
                    description: The ID of the variation to delete
            required:
                - variation_id
        DeleteGlobalToolVariationResult:
            type: object
            properties:
                variation_id:
                    type: string
                    description: The ID of the variation that was deleted
            required:
                - variation_id
        DeleteOnboardingPlaybookRequestBody:
            type: object
            properties:
                playbook_id:
                    type: string
            required:
                - playbook_id
        DeleteOnboardingUseCaseRequestBody:
            type: object
            properties:
                use_case_id:
                    type: string
            required:
                - use_case_id
        DeleteRequestBody:
            type: object
            properties:
                override_id:
                    type: string
                    description: Override ID to delete
            required:
                - override_id
        Deployment:
            type: object
            properties:
                cloned_from:
                    type: string
                    description: The ID of the deployment that this deployment was cloned from.
                    example: bc5f4a555e933e6861d12edba4c2d87ef6caf8e6
                created_at:
                    type: string
                    description: The creation date of the deployment.
                    format: date-time
                external_id:
                    type: string
                    description: The external ID to refer to the deployment. This can be a git commit hash for example.
                    example: bc5f4a555e933e6861d12edba4c2d87ef6caf8e6
                external_mcp_tool_count:
                    type: integer
                    description: The number of tools in the deployment generated from external MCP servers.
                    format: int64
                external_mcps:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeploymentExternalMCP'
                    description: The external MCP servers that were deployed.
                external_url:
                    type: string
                    description: The upstream URL a deployment can refer to. This can be a github url to a commit hash or pull request.
                functions_assets:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeploymentFunctions'
                    description: The IDs, as returned from the assets upload service, to uploaded OpenAPI 3.x documents whose operations will become tool definitions.
                functions_tool_count:
                    type: integer
                    description: The number of tools in the deployment generated from Functions.
                    format: int64
                github_pr:
                    type: string
                    description: The github pull request that resulted in the deployment.
                    example: "1234"
                github_repo:
                    type: string
                    description: The github repository in the form of "owner/repo".
                    example: speakeasyapi/gram
                github_sha:
                    type: string
                    description: The commit hash that triggered the deployment.
                    example: f33e693e9e12552043bc0ec5c37f1b8a9e076161
                id:
                    type: string
                    description: The ID to of the deployment.
                    example: bc5f4a555e933e6861d12edba4c2d87ef6caf8e6
                idempotency_key:
                    type: string
                    description: A unique identifier that will mitigate against duplicate deployments.
                    example: 01jqq0ajmb4qh9eppz48dejr2m
                openapiv3_assets:
                    type: array
                    items:
                        $ref: '#/components/schemas/OpenAPIv3DeploymentAsset'
                    description: The IDs, as returned from the assets upload service, to uploaded OpenAPI 3.x documents whose operations will become tool definitions.
                openapiv3_tool_count:
                    type: integer
                    description: The number of tools in the deployment generated from OpenAPI documents.
                    format: int64
                organization_id:
                    type: string
                    description: The ID of the organization that the deployment belongs to.
                packages:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeploymentPackage'
                    description: The packages that were deployed.
                project_id:
                    type: string
                    description: The ID of the project that the deployment belongs to.
                status:
                    type: string
                    description: The status of the deployment.
                user_id:
                    type: string
                    description: The ID of the user that created the deployment.
            required:
                - id
                - created_at
                - organization_id
                - project_id
                - user_id
                - openapiv3_assets
                - status
                - packages
                - openapiv3_tool_count
                - functions_tool_count
                - external_mcp_tool_count
        DeploymentExternalMCP:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the deployment external MCP record.
                name:
                    type: string
                    description: The display name for the external MCP server.
                registry_id:
                    type: string
                    description: The ID of the external MCP registry the server is from.
                registry_server_specifier:
                    type: string
                    description: The canonical server name used to look up the server in the registry.
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - id
                - name
                - slug
                - registry_server_specifier
        DeploymentFunctions:
            type: object
            properties:
                asset_id:
                    type: string
                    description: The ID of the uploaded asset.
                id:
                    type: string
                    description: The ID of the deployment asset.
                memory_mib:
                    type: integer
                    description: The memory limit in MiB of function runner machines.
                    format: int32
                name:
                    type: string
                    description: The name to give the document as it will be displayed in UIs.
                runtime:
                    type: string
                    description: The runtime to use when executing functions.
                scale:
                    type: integer
                    description: The number of instances to run for the function.
                    format: int32
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - id
                - asset_id
                - name
                - slug
                - runtime
        DeploymentLogEvent:
            type: object
            properties:
                attachment_id:
                    type: string
                    description: The ID of the asset tied to the log event
                attachment_type:
                    type: string
                    description: The type of the asset tied to the log event
                created_at:
                    type: string
                    description: The creation date of the log event
                event:
                    type: string
                    description: The type of event that occurred
                id:
                    type: string
                    description: The ID of the log event
                message:
                    type: string
                    description: The message of the log event
            required:
                - id
                - created_at
                - event
                - message
        DeploymentPackage:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the deployment package.
                name:
                    type: string
                    description: The name of the package.
                version:
                    type: string
                    description: The version of the package.
            required:
                - id
                - name
                - version
        DeploymentSummary:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the deployment.
                    format: date-time
                external_mcp_asset_count:
                    type: integer
                    description: The number of external MCP server assets.
                    format: int64
                external_mcp_tool_count:
                    type: integer
                    description: The number of tools in the deployment generated from external MCP servers.
                    format: int64
                functions_asset_count:
                    type: integer
                    description: The number of Functions assets.
                    format: int64
                functions_tool_count:
                    type: integer
                    description: The number of tools in the deployment generated from Functions.
                    format: int64
                id:
                    type: string
                    description: The ID to of the deployment.
                    example: bc5f4a555e933e6861d12edba4c2d87ef6caf8e6
                openapiv3_asset_count:
                    type: integer
                    description: The number of upstream OpenAPI assets.
                    format: int64
                openapiv3_tool_count:
                    type: integer
                    description: The number of tools in the deployment generated from OpenAPI documents.
                    format: int64
                status:
                    type: string
                    description: The status of the deployment.
                user_id:
                    type: string
                    description: The ID of the user that created the deployment.
            required:
                - id
                - created_at
                - user_id
                - status
                - openapiv3_asset_count
                - openapiv3_tool_count
                - functions_asset_count
                - functions_tool_count
                - external_mcp_asset_count
                - external_mcp_tool_count
        Destination:
            type: object
            properties:
                created_at:
                    type: string
                    description: Creation timestamp.
                    format: date-time
                destination_type:
                    type: string
                    description: Destination transport type.
                    enum:
                        - otel
                id:
                    type: string
                    description: Destination ID.
                    format: uuid
                name:
                    type: string
                    description: Human-readable destination name.
                otel:
                    $ref: '#/components/schemas/OtelDestination'
                project_id:
                    type: string
                    description: Project that owns the destination.
                    format: uuid
                sensitive_data:
                    type: string
                    description: Whether sensitive data is included in payloads sent to this destination.
                    enum:
                        - exclude
                        - include
                updated_at:
                    type: string
                    description: Last update timestamp.
                    format: date-time
            description: A reusable project-scoped data export destination. The destination_type discriminator identifies the populated transport configuration.
            required:
                - id
                - project_id
                - name
                - destination_type
                - sensitive_data
                - created_at
                - updated_at
        DetachBindingRequestBody:
            type: object
            properties:
                id:
                    type: string
                    format: uuid
                principal_id:
                    type: string
                    format: uuid
                user_session_issuer_id:
                    type: string
                    format: uuid
            required:
                - principal_id
                - user_session_issuer_id
                - id
        DetachServerClientAssociationRequestBody:
            type: object
            properties:
                mcp_server_id:
                    type: string
                    description: The MCP server.
                    format: uuid
                remote_session_client_id:
                    type: string
                    description: The associated remote session client.
                    format: uuid
            required:
                - mcp_server_id
                - remote_session_client_id
        DetachUserSessionIssuerForm:
            type: object
            properties:
                id:
                    type: string
                    description: The remote_session_client id.
                    format: uuid
                user_session_issuer_id:
                    type: string
                    description: The user_session_issuer to detach.
                    format: uuid
            description: Form for detaching a user_session_issuer from a remote_session_client via the join table.
            required:
                - id
                - user_session_issuer_id
        DeviceAgentConfiguration:
            type: object
            properties:
                config:
                    type: object
                    description: Forward-compatible non-secret settings document. Platform values use false, user, or managed enforcement layers.
                    additionalProperties: true
                etag:
                    type: string
                    description: Opaque revision identifier for this configuration.
                is_configured:
                    type: boolean
                    description: Whether an administrator has saved a remote configuration. False means agents should not add a remote resolver layer.
                schema_version:
                    type: integer
                    description: Schema version for this remote configuration envelope.
                    format: int64
                    minimum: 1
                updated_at:
                    type: string
                    description: When this remote configuration was last saved. Absent when is_configured is false.
                    format: date-time
            description: Versioned organization-wide settings delivered to enrolled device agents. Agents must ignore unknown config keys. Remote settings override the shareable local/MDM settings after a successful fetch; per-device identity and secrets always remain local.
            required:
                - schema_version
                - config
                - is_configured
                - etag
        DeviceIntegrationConfig:
            type: object
            properties:
                created_at:
                    type: string
                    description: ISO 8601 timestamp when the config was created. Omitted when no config is set.
                    format: date-time
                enabled:
                    type: boolean
                    description: Whether the provider integration is active.
                has_credentials:
                    type: boolean
                    description: Whether secret credentials are currently stored. The values themselves are never returned.
                id:
                    type: string
                    description: Config ID. Omitted when no config is set for the provider.
                organization_id:
                    type: string
                    description: Organization the config belongs to.
                provider:
                    type: string
                    description: Provider identifier (e.g. jamf, kandji, drata, vanta).
                settings:
                    type: object
                    description: Non-secret provider settings (e.g. instance URL), keyed by field key.
                    additionalProperties:
                        type: string
                updated_at:
                    type: string
                    description: ISO 8601 timestamp of the most recent change. Omitted when no config is set.
                    format: date-time
            description: Per-organization device integration config for one provider. Secret credentials are write-only; reads only expose whether credentials are configured.
            required:
                - organization_id
                - provider
                - enabled
                - has_credentials
                - settings
        DeviceIntegrationCoverage:
            type: object
            properties:
                active_window_minutes:
                    type: integer
                    description: 'Freshness window: an agent counts as active when its heartbeat is within this many minutes.'
                    format: int64
                agent_active:
                    type: integer
                    description: Devices with an agent heartbeat within the window. What that attests depends on the matching mode and, per device, on whether the match was by serial or by email — compare against agent_active_device_attested.
                    format: int64
                agent_active_device_attested:
                    type: integer
                    description: How many of agent_active are backed by that machine's OWN heartbeat (serial match). Under user-level matching this is 0; under device-level matching a value below agent_active means some devices fell back to the assigned-user email, which is the weaker claim.
                    format: int64
                agent_other_device:
                    type: integer
                    description: 'Device-level matching only: devices whose assigned user runs the agent, but not on this machine. Always 0 under user-level matching, which cannot distinguish this from agent_active.'
                    format: int64
                agent_stale:
                    type: integer
                    description: Devices with a known agent that went quiet — the drift/disable case.
                    format: int64
                attestation:
                    type: string
                    description: 'The strongest claim that holds for EVERY active device in this response — not merely the org''s matching mode. "device": every active device was matched on its own hardware serial, so each one ran the agent. "user": at least one active device was matched only on its assigned-user email, so the set as a whole supports only the weaker claim that assigned users ran the agent somewhere.'
                    enum:
                        - device
                        - user
                missing:
                    type: integer
                    description: Devices absent from the latest completed MDM snapshot.
                    format: int64
                no_agent:
                    type: integer
                    description: Devices whose assigned email resolves to an org member with no agent at all.
                    format: int64
                no_email:
                    type: integer
                    description: Devices the MDM reports with no assigned-user email.
                    format: int64
                organization_id:
                    type: string
                    description: Organization the coverage describes.
                total_devices:
                    type: integer
                    description: All synced devices, including missing ones.
                    format: int64
                unmanaged_agent_users:
                    type: integer
                    description: Agent users with no matching device in any connected MDM inventory — shadow devices or fleets outside MDM.
                    format: int64
                unresolved_email:
                    type: integer
                    description: Devices whose assigned email matches neither an agent user nor an org member.
                    format: int64
            description: 'Agent-coverage summary across the org''s connected MDM inventories. What a bucket attests depends on the org''s matching mode: under device-level matching (hardware serial) agent_active means THIS machine reported in, while under user-level matching it means only that the device''s assigned user has a fresh heartbeat somewhere.'
            required:
                - organization_id
                - active_window_minutes
                - attestation
                - agent_active
                - agent_active_device_attested
                - agent_stale
                - agent_other_device
                - no_agent
                - no_email
                - unresolved_email
                - missing
                - total_devices
                - unmanaged_agent_users
        DeviceIntegrationProvider:
            type: object
            properties:
                capabilities:
                    type: array
                    items:
                        type: string
                    description: 'Integration directions the provider supports: inventory_source (pull the managed-device fleet) and/or evidence_sink (push agent-coverage evidence).'
                display_name:
                    type: string
                    description: Human-readable vendor name.
                fields:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeviceIntegrationProviderField'
                    description: Credential and settings inputs the provider needs, in render order.
                id:
                    type: string
                    description: Provider identifier (e.g. jamf, kandji, drata, vanta).
                schedules:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeviceIntegrationProviderSchedule'
                    description: Sync pipelines the provider runs.
            description: A vendor the device integrations framework can connect to.
            required:
                - id
                - display_name
                - capabilities
                - fields
                - schedules
        DeviceIntegrationProviderField:
            type: object
            properties:
                key:
                    type: string
                    description: Field identifier in the credentials or settings document.
                kind:
                    type: string
                    description: Input kind hint.
                    enum:
                        - text
                        - url
                label:
                    type: string
                    description: Human-readable name to render for the field.
                required:
                    type: boolean
                    description: Whether the field must be supplied to connect the provider.
                secret:
                    type: boolean
                    description: 'Whether the value is secret: stored encrypted, write-only, and masked in the UI.'
            description: One credential or settings input a provider needs to connect. Secret fields are stored encrypted and are write-only; non-secret fields are readable settings.
            required:
                - key
                - label
                - kind
                - secret
                - required
        DeviceIntegrationProviderSchedule:
            type: object
            properties:
                interval_minutes:
                    type: integer
                    description: Target minutes between successful runs. Declared in code by the provider, not configurable per org.
                    format: int64
                schedule:
                    type: string
                    description: Schedule identifier (e.g. jamf_inventory).
            description: One sync pipeline a provider runs on a cadence.
            required:
                - schedule
                - interval_minutes
        DeviceIntegrationScheduleState:
            type: object
            properties:
                auto_paused_at:
                    type: string
                    description: ISO 8601 timestamp when the scheduler auto-paused the schedule after repeated provider rejections. Omitted unless auto-paused.
                    format: date-time
                consecutive_failures:
                    type: integer
                    description: Number of consecutive failed syncs. Resets to zero on success or retry.
                    format: int64
                enabled:
                    type: boolean
                    description: Whether the user has this schedule enabled. Disabled schedules are skipped by the scheduler until re-enabled.
                last_sync_error:
                    type: string
                    description: Stored error from the schedule's latest failed sync. Omitted unless the latest sync failed.
                last_sync_failed_at:
                    type: string
                    description: ISO 8601 timestamp for the schedule's latest failed sync. Omitted unless a sync has failed.
                    format: date-time
                last_sync_success_at:
                    type: string
                    description: ISO 8601 timestamp for the schedule's last successful sync. Omitted until a sync succeeds.
                    format: date-time
                next_sync_after:
                    type: string
                    description: ISO 8601 timestamp for the schedule's next scheduled sync.
                    format: date-time
                schedule:
                    type: string
                    description: Schedule identifier (e.g. jamf_inventory).
                status:
                    type: string
                    description: Derived status for the schedule's latest sync state.
                    enum:
                        - pending
                        - success
                        - failed
                        - auto_paused
                        - disabled
            description: 'State of one sync schedule of a provider integration: the user''s intent (enabled) plus the scheduler''s execution state.'
            required:
                - schedule
                - enabled
                - status
                - consecutive_failures
        DeviceIntegrationTestConnectionResult:
            type: object
            properties:
                message:
                    type: string
                    description: Human-readable failure detail. Omitted on success.
                ok:
                    type: boolean
                    description: Whether the provider accepted the stored credentials.
            description: Outcome of probing the provider with the stored credentials.
            required:
                - ok
        DimensionValuesRequestBody:
            type: object
            properties:
                dataset:
                    type: string
                    description: Dataset to look in
                    example: tool_calls
                dimension:
                    type: string
                    description: Dimension to list values of
                    example: tool_name
                from:
                    type: string
                    description: Start of the half-open window [from, to), ISO 8601
                    format: date-time
                limit:
                    type: integer
                    description: Maximum values. Defaults to 50, at most 200.
                    default: 50
                    format: int64
                    minimum: 1
                    maximum: 200
                to:
                    type: string
                    description: End of the half-open window [from, to), ISO 8601
                    format: date-time
            required:
                - dataset
                - dimension
                - from
                - to
        DirectoryAttributeOption:
            type: object
            properties:
                key:
                    type: string
                    description: Directory attribute key, e.g. department_name.
                member_count:
                    type: integer
                    description: Number of directory users with this value.
                    format: int64
                value:
                    type: string
                    description: Directory attribute value.
            required:
                - key
                - value
                - member_count
        DirectoryGroupOption:
            type: object
            properties:
                id:
                    type: string
                    description: Directory group identifier.
                    format: uuid
                member_count:
                    type: integer
                    description: Number of directory users in the group.
                    format: int64
                name:
                    type: string
                    description: Directory group name.
            required:
                - id
                - name
                - member_count
        DirectoryPeopleStateCounts:
            type: object
            properties:
                account_not_member:
                    type: integer
                    description: Profiles in the account_not_member state.
                    format: int64
                ambiguous_email:
                    type: integer
                    description: Profiles in the ambiguous_email state.
                    format: int64
                member:
                    type: integer
                    description: Profiles in the member state.
                    format: int64
                not_signed_in:
                    type: integer
                    description: Profiles in the not_signed_in state.
                    format: int64
            required:
                - member
                - account_not_member
                - not_signed_in
                - ambiguous_email
        DirectoryPerson:
            type: object
            properties:
                email:
                    type: string
                    description: Email the directory reports for the profile. Empty when the directory reports none.
                first_name:
                    type: string
                    description: First name the directory reports, when it reports one.
                groups:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryPersonGroup'
                    description: Live directory groups the profile belongs to.
                id:
                    type: string
                    description: Directory profile ID.
                    format: uuid
                last_name:
                    type: string
                    description: Last name the directory reports, when it reports one.
                state:
                    type: string
                    description: 'How the profile relates to Speakeasy accounts. member: linked to, or the only email match of, a member of this organization. account_not_member: an account exists but is not a member here. not_signed_in: no matching account. ambiguous_email: the email matches more than one profile or account, so it is never matched.'
                    enum:
                        - member
                        - account_not_member
                        - not_signed_in
                        - ambiguous_email
                user_id:
                    type: string
                    description: The matched Speakeasy user ID. Present only for member and account_not_member.
            required:
                - id
                - email
                - state
                - groups
        DirectoryPersonGroup:
            type: object
            properties:
                id:
                    type: string
                    description: Directory group ID.
                    format: uuid
                name:
                    type: string
                    description: Directory group name.
            required:
                - id
                - name
        DirectoryReviewItem:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the item was raised.
                    format: date-time
                id:
                    type: string
                    description: The review item.
                    format: uuid
                item:
                    $ref: '#/components/schemas/DirectoryRoleSetupPreviewItem'
                kind:
                    type: string
                    description: 'new_group: an unmapped group first seen after review started. new_attribute_value: a new value of an attribute key that has mappings. source_missing: a mapped group or attribute value that has gone.'
                    enum:
                        - new_group
                        - new_attribute_value
                        - source_missing
                occurrence:
                    type: integer
                    description: 1 the first time a source is raised for this kind, then one more each time it recurs.
                    format: int32
            required:
                - id
                - kind
                - occurrence
                - created_at
                - item
        DirectoryReviewSettings:
            type: object
            properties:
                emails_enabled:
                    type: boolean
                    description: Whether organization admins are emailed when directory changes are waiting for a decision. On by default.
            required:
                - emails_enabled
        DirectoryRoleMapping:
            type: object
            properties:
                attribute_key:
                    type: string
                    description: The directory attribute key. Set when source_kind is attribute.
                attribute_value:
                    type: string
                    description: The directory attribute value. Set when source_kind is attribute.
                created_at:
                    type: string
                    format: date-time
                directory_group_id:
                    type: string
                    description: The mapped directory group. Set when source_kind is group.
                    format: uuid
                directory_group_name:
                    type: string
                    description: Display name of the mapped directory group.
                id:
                    type: string
                    description: Unique mapping identifier.
                    format: uuid
                role_urn:
                    type: string
                    description: Principal URN of the role granted to matching members.
                source_kind:
                    type: string
                    description: 'What the mapping matches: a directory group or an attribute value.'
                    enum:
                        - group
                        - attribute
                source_status:
                    type: string
                    description: Whether the mapped source still exists. missing means the group was deleted from the directory, or no live directory user has the attribute value. A missing source matches nobody, so the mapping grants nothing until the source returns.
                    enum:
                        - active
                        - missing
                updated_at:
                    type: string
                    format: date-time
            required:
                - id
                - source_kind
                - source_status
                - role_urn
                - created_at
                - updated_at
        DirectoryRoleSetupHiddenAttributeKey:
            type: object
            properties:
                key:
                    type: string
                    description: Directory attribute key with too many distinct values to offer in bulk setup.
                value_count:
                    type: integer
                    description: Number of distinct values the key has on live directory profiles.
                    format: int64
            required:
                - key
                - value_count
        DirectoryRoleSetupPreviewItem:
            type: object
            properties:
                directory_people:
                    type: integer
                    description: People with a live directory profile that matches the source, counted once per email address, so someone with profiles in two directories counts once and a profile with no email is not counted. These are directory people, not organization members or role members.
                    format: int64
                existing_role_urns:
                    type: array
                    items:
                        type: string
                    description: Roles the source already maps to. Empty for an unmapped source.
                proposed_roles:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryRoleSetupProposedRole'
                    description: The suggested role set. For a mapped source this is its current set; for an unmapped source, one reused or new role.
                source:
                    $ref: '#/components/schemas/DirectoryRoleSetupSource'
                source_name:
                    type: string
                    description: The group name, or key=value for an attribute value.
                version:
                    type: string
                    description: Opaque version of the source and its current mappings. Send it back with applyDirectoryRoleSetup.
            required:
                - source
                - source_name
                - directory_people
                - existing_role_urns
                - proposed_roles
                - version
        DirectoryRoleSetupPreviewResult:
            type: object
            properties:
                hidden_attribute_keys:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryRoleSetupHiddenAttributeKey'
                    description: Attribute keys left out of items because they have more than max_values_per_attribute_key distinct values. Their values can still be mapped one at a time with setDirectoryRoleMappings.
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryRoleSetupPreviewItem'
                    description: One item per live directory group and mappable attribute value.
                max_values_per_attribute_key:
                    type: integer
                    description: The limit on distinct values above which an attribute key is left out.
                    format: int64
            required:
                - items
                - hidden_attribute_keys
                - max_values_per_attribute_key
        DirectoryRoleSetupProposedRole:
            type: object
            properties:
                current_grants:
                    type: array
                    items:
                        $ref: '#/components/schemas/RoleGrant'
                    description: Grants the existing role already has. Applying the proposal approves them for the source's members. Empty for a new role.
                role_action:
                    type: string
                    description: reuse an existing role, or create a new one.
                    enum:
                        - reuse
                        - create
                role_id:
                    type: string
                    description: The existing role. Set when role_action is reuse.
                role_name:
                    type: string
                    description: The existing role's name, or the name a new role would get.
                role_urn:
                    type: string
                    description: Principal URN of the existing role. Set when role_action is reuse.
            required:
                - role_action
                - role_name
                - current_grants
        DirectoryRoleSetupSideEffect:
            type: object
            properties:
                kind:
                    type: string
                    description: What was requested.
                    enum:
                        - workos_role_sync
                request_status:
                    type: string
                    description: Requested work runs after the response and is never reported as done.
                    enum:
                        - requested
                role_id:
                    type: string
                    description: The role the request is for.
            required:
                - kind
                - role_id
                - request_status
        DirectoryRoleSetupSource:
            type: object
            properties:
                attribute_key:
                    type: string
                    description: The directory attribute key. Set when source_kind is attribute.
                    minLength: 1
                attribute_value:
                    type: string
                    description: The directory attribute value. Set when source_kind is attribute.
                    minLength: 1
                directory_group_id:
                    type: string
                    description: The directory group. Set when source_kind is group.
                    format: uuid
                source_kind:
                    type: string
                    description: 'What the source is: a directory group or an attribute value.'
                    enum:
                        - group
                        - attribute
            required:
                - source_kind
        DisableOpenRouterKeyRequestBody:
            type: object
            properties:
                key_type:
                    type: string
                    description: Key type to disable.
                    enum:
                        - chat
                        - internal
                organization_id:
                    type: string
                    description: Organization that owns the key.
            required:
                - organization_id
                - key_type
        DisableOrganizationRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: Organization ID.
                    minLength: 1
            required:
                - id
        DisconnectSlackDirectoryConnectionRequestBody:
            type: object
            properties:
                generation:
                    type: string
                    description: Generation last read by the administrator.
                    format: uuid
                id:
                    type: string
                    description: Durable organization workspace connection ID.
                    format: uuid
            required:
                - id
                - generation
        DiscoverProtectedResourceMetadataRequestBody:
            type: object
            properties:
                remote_mcp_server_id:
                    type: string
                    description: The ID of the remote MCP server to probe.
                    format: uuid
            required:
                - remote_mcp_server_id
        DismissOktaServerSuggestionRequestBody:
            type: object
            properties:
                registry_entry_id:
                    type: string
                    description: Catalog entry of the suggestion to dismiss.
                    format: uuid
            required:
                - registry_entry_id
        DismissSkillSuggestionRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The suggestion ID.
                    format: uuid
            required:
                - id
        DistributeOnboardingCandidateRequestBody:
            type: object
            properties:
                expected_version:
                    type: string
                    description: Opaque current distribution version token from getOnboarding.
                project_slug:
                    type: string
                    description: Exact workflow-selected project slug.
            required:
                - project_slug
                - expected_version
        DistributeSkillRequestBody:
            type: object
            properties:
                assistant_id:
                    type: string
                    description: The assistant that carries the skill.
                    format: uuid
                id:
                    type: string
                    description: The skill ID.
                    format: uuid
                pinned_version_id:
                    type: string
                    description: An optional valid version to pin instead of tracking the latest valid version.
                    format: uuid
                plugin_id:
                    type: string
                    description: The plugin that carries the skill.
                    format: uuid
            example:
                id: 550e8400-e29b-41d4-a716-446655440000
                plugin_id: 550e8400-e29b-41d4-a716-446655440001
            required:
                - id
        DistributionPlugin:
            type: object
            properties:
                auto_created:
                    type: boolean
                    description: Whether automatic role distribution created this plugin. Read-only; preserved after edits and reuse.
                description:
                    type: string
                id:
                    type: string
                    format: uuid
                is_default:
                    type: boolean
                name:
                    type: string
            description: Minimal plugin metadata for distributing an authorized skill. Does not expose configuration or assignments.
            required:
                - id
                - name
                - is_default
                - auto_created
        DomainDNSConfig:
            type: object
            properties:
                a_records:
                    type: array
                    items:
                        type: string
                    description: The static IP addresses apex custom domains should point A records at
                cname_target:
                    type: string
                    description: The CNAME target subdomain custom domains should point at, if configured
            required:
                - a_records
        DuplicateBuiltInDashboardRequestBody:
            type: object
            properties:
                slug:
                    type: string
                    description: The built-in dashboard to copy
                    example: mcp-tools
            required:
                - slug
        DuplicateDashboardRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The dashboard to copy
                    format: uuid
            required:
                - id
        DuplicateWidgetRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The widget to copy
                    format: uuid
            required:
                - id
        EMAProvider:
            type: object
            properties:
                internal_session_issuer_id:
                    type: string
                    description: The organization's internal session issuer, for speakeasy.
                    format: uuid
                kind:
                    type: string
                    description: external or speakeasy.
                    enum:
                        - external
                        - speakeasy
                last_accepted_at:
                    type: string
                    description: When the vendor last accepted an assertion from this provider anywhere in the organization, so the vendor already trusts it, from cached credentials that still hold an access token. Attributed to the exact issuer that vouched; the organization-wide default's external entry takes the newest acceptance of any external issuer. Set on every response that returns an order; omitted when the vendor has never accepted it, when acceptance could not be read, or on readEMA when the caller lacks org:read.
                    format: date-time
                remote_session_issuer_id:
                    type: string
                    description: The external provider's remote session issuer. Omitted for speakeasy, and in the organization-wide default order, where an external entry stands for each endpoint's own trusted issuer.
                    format: uuid
                unavailable_reason:
                    type: string
                    description: 'Why the provider cannot serve now; omitted when it can. Identity chaining skips it and tries the next provider. not_trusted_by_endpoint means the endpoint''s sign-in doesn''t go through this provider, so it can''t vouch for people there: an external issuer other than the sign-in''s trusted issuer, or Speakeasy on a sign-in federated through an external issuer. readiness_unknown means the Speakeasy issuer''s state could not be read just now; retry the read.'
                    enum:
                        - deleted
                        - disabled
                        - not_trusted_by_endpoint
                        - signing_unavailable
                        - not_rolled_out
                        - verified_domain_required
                        - setup_required
                        - keyless
                        - signing_paused
                        - sign_in_enforcement_required
                        - readiness_unknown
            description: One EMA provider a vendor accepts.
            required:
                - kind
        EMAProviderInput:
            type: object
            properties:
                kind:
                    type: string
                    description: external is an organization-level remote session issuer that exchanges the user's identity for an ID-JAG, such as an Okta authorization server; speakeasy is the organization's internal session issuer.
                    enum:
                        - external
                        - speakeasy
                remote_session_issuer_id:
                    type: string
                    description: 'Required for external, omitted for speakeasy: an organization-level issuer that an organization user session issuer trusts.'
                    format: uuid
            description: One EMA provider allowed to issue ID-JAGs for a vendor.
            required:
                - kind
        EMAProviderOrder:
            type: object
            properties:
                is_default:
                    type: boolean
                    description: Nothing is saved, so every provider is accepted. An endpoint whose sign-in trusts an external issuer uses that issuer alone; one that trusts none uses the organization's Speakeasy issuer when it has one.
                providers:
                    type: array
                    items:
                        $ref: '#/components/schemas/EMAProvider'
                    description: The saved providers in their stored order, or the derived default described by is_default.
                vendor_issuer:
                    type: string
                    description: The vendor authorization server issuer, canonicalized.
            description: The EMA providers one vendor authorization server accepts, saved or default. They are stored as an ordered list that identity chaining tries in turn, but each endpoint can use only the provider its sign-in goes through, so the list acts as the set of accepted providers.
            required:
                - vendor_issuer
                - is_default
                - providers
        EMAService:
            type: object
            properties:
                ema_providers:
                    $ref: '#/components/schemas/EMAProviderOrder'
                hidden_server_count:
                    type: integer
                    description: Counted servers the caller cannot read; they are not named.
                    format: int64
                name:
                    type: string
                    description: The vendor's display name, from an issuer record that names it. Empty when none has one.
                ready_server_count:
                    type: integer
                    description: Of those, how many have a ready binding, including servers the caller cannot read.
                    format: int64
                remote_session_issuer_id:
                    type: string
                    description: An issuer record the organization can name for this vendor, organization-level first, to pass to setEMAProviders. Omitted only when no issuer record names the vendor any more.
                    format: uuid
                server_count:
                    type: integer
                    description: Distinct live MCP servers whose identity chaining binding for this vendor has been turned on, in any state after setup, including servers the caller cannot read.
                    format: int64
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/EMAServiceServer'
                    description: The counted servers the caller can read (mcp:read), ordered by project and name.
                vendor_issuer:
                    type: string
                    description: The vendor authorization server issuer, canonicalized.
            description: 'One service identity chaining reaches in the organization: a vendor authorization server, the identity providers that can vouch for people to it with whether the vendor has accepted each, and the MCP servers that chain through it.'
            required:
                - vendor_issuer
                - name
                - ema_providers
                - server_count
                - ready_server_count
                - servers
                - hidden_server_count
        EMAServiceServer:
            type: object
            properties:
                id:
                    type: string
                    description: The MCP server id.
                    format: uuid
                last_accepted_at:
                    type: string
                    description: When the vendor last accepted an assertion for this server from a provider that can vouch now. Omitted when never.
                    format: date-time
                name:
                    type: string
                    description: The MCP server name. Empty when it has none.
                project_id:
                    type: string
                    description: The owning project.
                    format: uuid
                project_name:
                    type: string
                    description: The owning project's name.
                project_slug:
                    type: string
                    description: The owning project's slug.
                sign_in_issuer_id:
                    type: string
                    description: 'The remote session issuer the server''s sign-in trusts, such as an Okta authorization server: only that issuer can vouch for people on the server. Omitted when the server uses Speakeasy''s own sign-in, where only Speakeasy can vouch.'
                    format: uuid
                sign_in_issuer_name:
                    type: string
                    description: The display name of sign_in_issuer_id. Omitted with it, or when the issuer has no name.
                slug:
                    type: string
                    description: The MCP server slug. Empty when it has none.
                status:
                    type: string
                    description: 'working: on, and the vendor accepted an assertion for this server from a provider that can vouch now. not_proven: on, with no such acceptance yet. needs_attention: on but blocked, or no provider can vouch for it right now.'
                    enum:
                        - working
                        - not_proven
                        - needs_attention
            description: One live MCP server whose identity chaining binding for the service has been turned on.
            required:
                - id
                - name
                - slug
                - project_id
                - project_slug
                - project_name
                - status
        EmployeeDataFlowEdge:
            type: object
            properties:
                call_count:
                    type: integer
                    description: Total calls represented by this edge
                    format: int64
                failure_count:
                    type: integer
                    description: Failed or blocked calls represented by this edge
                    format: int64
                id:
                    type: string
                    description: Stable edge ID
                source:
                    type: string
                    description: Source node ID
                success_count:
                    type: integer
                    description: Successful calls represented by this edge
                    format: int64
                target:
                    type: string
                    description: Target node ID
            description: A weighted edge in the employee data flow graph
            required:
                - id
                - source
                - target
                - call_count
                - success_count
                - failure_count
        EmployeeDataFlowNode:
            type: object
            properties:
                id:
                    type: string
                    description: Stable node ID
                label:
                    type: string
                    description: Display label
                server_class:
                    type: string
                    description: Server classification, present for MCP server nodes
                    enum:
                        - gram
                        - external
                        - local
                tier:
                    type: string
                    description: Graph tier. Origin nodes identify the hostname or client context that started the call, not the MCP server URL.
                    enum:
                        - origin
                        - client
                        - server
                        - tool
                total_calls:
                    type: integer
                    description: Total calls involving this node
                    format: int64
            description: A node in the employee data flow graph
            required:
                - id
                - tier
                - label
                - total_calls
        EnableOpenRouterKeyRequestBody:
            type: object
            properties:
                key_type:
                    type: string
                    description: Key type to enable.
                    enum:
                        - chat
                        - internal
                organization_id:
                    type: string
                    description: Organization that owns the key.
            required:
                - organization_id
                - key_type
        EnableOrganizationRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: Organization ID.
                    minLength: 1
            required:
                - id
        EnsureServerReviewRequestBody:
            type: object
            properties:
                target:
                    type: string
                    description: The server URL the dossier describes.
                    maxLength: 2048
            required:
                - target
        Environment:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the environment
                    format: date-time
                description:
                    type: string
                    description: The description of the environment
                entries:
                    type: array
                    items:
                        $ref: '#/components/schemas/EnvironmentEntry'
                    description: List of environment entries
                id:
                    type: string
                    description: The ID of the environment
                name:
                    type: string
                    description: The name of the environment
                organization_id:
                    type: string
                    description: The organization ID this environment belongs to
                project_id:
                    type: string
                    description: The project ID this environment belongs to
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                updated_at:
                    type: string
                    description: When the environment was last updated
                    format: date-time
            description: Model representing an environment
            required:
                - id
                - organization_id
                - project_id
                - name
                - slug
                - entries
                - created_at
                - updated_at
        EnvironmentEntry:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the environment entry
                    format: date-time
                is_secret:
                    type: boolean
                    description: Whether the value is a secret. Secret values are redacted in reads; non-secret values are returned in cleartext.
                name:
                    type: string
                    description: The name of the environment variable
                updated_at:
                    type: string
                    description: When the environment entry was last updated
                    format: date-time
                value:
                    type: string
                    description: The value of the environment variable. Cleartext when is_secret is false, redacted otherwise.
            description: A single environment entry
            required:
                - name
                - value
                - is_secret
                - created_at
                - updated_at
        EnvironmentEntryInput:
            type: object
            properties:
                is_secret:
                    type: boolean
                    description: Whether the value is a secret. Secret values are encrypted at rest and redacted in reads; non-secret values are readable after save. When omitted, new entries default to secret and existing entries keep their current secrecy.
                name:
                    type: string
                    description: The name of the environment variable
                value:
                    type: string
                    description: The value of the environment variable. Omit on an existing secret entry to preserve its stored value. Required when creating an entry or when changing is_secret from true to false.
            description: A single environment entry
            required:
                - name
        Error:
            type: object
            properties:
                fault:
                    type: boolean
                    description: Is the error a server-side fault?
                id:
                    type: string
                    description: ID is a unique identifier for this particular occurrence of the problem.
                    example: 123abc
                message:
                    type: string
                    description: Message is a human-readable explanation specific to this occurrence of the problem.
                    example: parameter 'p' must be an integer
                name:
                    type: string
                    description: Name is the name of this class of errors.
                    example: bad_request
                temporary:
                    type: boolean
                    description: Is the error temporary?
                timeout:
                    type: boolean
                    description: Is the error a timeout?
            description: unauthorized access
            required:
                - name
                - id
                - message
                - temporary
                - timeout
                - fault
        EvaluateOpenAPIv3Form:
            type: object
            properties:
                asset_id:
                    type: string
                    description: The ID of the uploaded OpenAPI document asset to evaluate.
                name:
                    type: string
                    description: The display name of the source. Defaults to the deployed name or the slug.
                slug:
                    type: string
                    description: The slug of the OpenAPI source the document will replace. A slug that is not in the active deployment is evaluated as a new source.
            required:
                - asset_id
                - slug
        EvaluatePromptGuardrailRequestBody:
            type: object
            properties:
                chat_id:
                    type: string
                    description: The chat session to replay the guardrail against.
                    format: uuid
                message_types:
                    type: array
                    items:
                        type: string
                    description: Message types to judge (user_message, assistant_message, tool_request, tool_response, prompt_attachment), matching a policy's message_types. When empty or omitted, judges all supported types.
                model_config:
                    $ref: '#/components/schemas/RiskPolicyModelConfig'
                prompt:
                    type: string
                    description: The guardrail prompt the LLM judge evaluates each in-scope message against.
                    minLength: 1
                    maxLength: 10000
                scope_exempt:
                    type: string
                    description: 'CEL exemption predicate: the replay skips a message when this boolean expression is true. Omit/empty means no inline exemption.'
                scope_include:
                    type: string
                    description: 'CEL scope predicate: the replay judges a message only when this boolean expression is true (in addition to message_types). Omit/empty means all messages are in scope.'
            required:
                - chat_id
                - prompt
        EventLogEntry:
            type: object
            properties:
                attributes:
                    description: Signal attributes as a JSON object
                body_preview:
                    type: string
                    description: Log body truncated to 200 characters; empty for spans
                kind:
                    type: string
                    description: Signal kind
                    enum:
                        - log
                        - span
                name:
                    type: string
                    description: Event name for logs, span name for spans
                project_id:
                    type: string
                    description: Project the event was recorded under
                resource_attributes:
                    description: Resource attributes as a JSON object
                source:
                    type: string
                    description: Canonicalized source derived from the resource service name
                span_id:
                    type: string
                    description: W3C span ID
                time_unix_nano:
                    type: string
                    description: Event time in Unix nanoseconds (string for JS int64 precision)
                trace_id:
                    type: string
                    description: W3C trace ID
            description: A single ingested OpenTelemetry signal (log record or span) in the event feed
            required:
                - time_unix_nano
                - kind
                - source
                - name
                - body_preview
                - trace_id
                - span_id
                - project_id
                - attributes
                - resource_attributes
        EventVolumeBucket:
            type: object
            properties:
                bucket_time_unix_nano:
                    type: string
                    description: Bucket start in Unix nanoseconds (string for JS int64 precision)
                log_count:
                    type: integer
                    description: Log records in this bucket
                    format: int64
                span_count:
                    type: integer
                    description: Spans in this bucket
                    format: int64
            description: One event volume bucket
            required:
                - bucket_time_unix_nano
                - log_count
                - span_count
        EvidenceAdvisoryChange:
            type: object
            properties:
                id:
                    type: string
                    description: The advisory identifier.
                severity:
                    type: string
                    description: The advisory's severity, when the database published one.
                summary:
                    type: string
                    description: The advisory's summary, when the database published one.
            description: A published advisory the decision's snapshot did not carry.
            required:
                - id
        EvidenceDiff:
            type: object
            properties:
                advisories_added:
                    type: array
                    items:
                        $ref: '#/components/schemas/EvidenceAdvisoryChange'
                    description: Advisories in the current gather's most-recent sample that the snapshot's sample did not carry.
                changed:
                    type: boolean
                    description: Whether anything below is non-empty.
                fields:
                    type: array
                    items:
                        $ref: '#/components/schemas/EvidenceFieldChange'
                    description: 'Scalar drifts: authority mode, dynamic client registration, published-advisory count.'
                scopes_added:
                    type: array
                    items:
                        type: string
                    description: OAuth scopes the server's published authority metadata gained since the decision.
                scopes_removed:
                    type: array
                    items:
                        type: string
                    description: OAuth scopes the published authority metadata lost since the decision.
                secrets_added:
                    type: array
                    items:
                        type: string
                    description: Credentials the server now demands that it did not at decision time.
                secrets_removed:
                    type: array
                    items:
                        type: string
                    description: Credentials the server demanded at decision time and no longer does.
            description: 'What moved between the latest decision''s evidence snapshot and the current gather, restricted to the permission-relevant slice: OAuth scopes, authority mode, demanded credentials, and published advisories. A change here is a re-review trigger, never a verdict — an unchanged published interface says nothing about unchanged behavior.'
            required:
                - changed
        EvidenceFieldChange:
            type: object
            properties:
                after:
                    type: string
                    description: The value the latest gather found.
                before:
                    type: string
                    description: The value the decision rested on.
                field:
                    type: string
                    description: 'Which fact moved: authority_mode, dynamic_registration, or known_advisories.'
            description: One scalar drift between the decision's evidence snapshot and the current gather.
            required:
                - field
                - before
                - after
        EvolveForm:
            type: object
            properties:
                deployment_id:
                    type: string
                    description: The ID of the deployment to evolve. If omitted, the latest deployment will be used.
                exclude_external_mcps:
                    type: array
                    items:
                        type: string
                    description: The external MCP servers, identified by slug, to exclude from the new deployment when cloning a previous deployment.
                exclude_functions:
                    type: array
                    items:
                        type: string
                    description: The functions, identified by slug, to exclude from the new deployment when cloning a previous deployment.
                exclude_openapiv3_assets:
                    type: array
                    items:
                        type: string
                    description: The OpenAPI 3.x documents, identified by slug, to exclude from the new deployment when cloning a previous deployment.
                exclude_packages:
                    type: array
                    items:
                        type: string
                    description: The packages to exclude from the new deployment when cloning a previous deployment.
                non_blocking:
                    type: boolean
                    description: If true, the deployment will be created in non-blocking mode where the request will return immediately and the deployment will proceed asynchronously.
                    example: false
                upsert_external_mcps:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddExternalMCPForm'
                    description: The external MCP servers to upsert in the new deployment.
                upsert_functions:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddFunctionsForm'
                    description: The tool functions to upsert in the new deployment.
                upsert_openapiv3_assets:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddOpenAPIv3DeploymentAssetForm'
                    description: The OpenAPI 3.x documents to upsert in the new deployment.
                upsert_packages:
                    type: array
                    items:
                        $ref: '#/components/schemas/AddPackageForm'
                    description: The packages to upsert in the new deployment.
        EvolveResult:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/Deployment'
        ExchangeRequestBody:
            type: object
            properties:
                email:
                    type: string
                    description: Email address of the enrolled user to mint a per-user key for. Resolved to a user within the authenticated org.
                    example: dev@acme.corp
            required:
                - email
        ExplainResourceAccessResult:
            type: object
            properties:
                levels:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExplainedAccessLevel'
                    description: The decision for use, view and manage, in that order.
                visibility:
                    type: string
                    description: 'Who may connect without a rule. public: connecting is not checked against rules. private: rules decide. disabled: nobody can connect.'
                    enum:
                        - public
                        - private
                        - disabled
            required:
                - visibility
                - levels
        ExplainedAccessDirectorySource:
            type: object
            properties:
                attribute_key:
                    type: string
                    description: The directory attribute, for an attribute mapping.
                attribute_value:
                    type: string
                    description: The attribute value the member's profile matched, for an attribute mapping.
                directory_group_name:
                    type: string
                    description: The directory group, for a group mapping.
                source_kind:
                    type: string
                    description: Whether membership of a directory group or a directory attribute value mapped the role.
                    enum:
                        - group
                        - attribute
            required:
                - source_kind
        ExplainedAccessLevel:
            type: object
            properties:
                allowed:
                    type: boolean
                    description: Whether the rules give the member this access.
                level:
                    type: string
                    description: The access being explained.
                    enum:
                        - use
                        - view
                        - manage
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExplainedAccessRule'
                    description: Every rule matching this access, deciding rules first.
                tool_access:
                    type: string
                    description: 'For use: whether every tool, only some, or none are reachable.'
                    enum:
                        - all
                        - some
                        - none
            required:
                - level
                - allowed
                - rules
        ExplainedAccessRule:
            type: object
            properties:
                applies_to:
                    type: string
                    description: Whether the rule names this resource, every resource in its project, or every resource of its kind.
                    enum:
                        - resource
                        - project
                        - all_resources
                directory_sources:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExplainedAccessDirectorySource'
                    description: The directory role mappings giving the member this role, including when they also hold it directly. Returned only to organization administrators, because attribute values can carry personal data.
                display_name:
                    type: string
                    description: Human-readable name for the principal.
                dispositions:
                    type: array
                    items:
                        type: string
                        enum:
                            - read_only
                            - destructive
                            - idempotent
                            - open_world
                    description: Tool annotations the rule is narrowed to, when it is not the whole resource.
                effect:
                    type: string
                    description: 'How the rule shaped the decision. allows: proves the access. overrides: a rule made directly to the member that proves the access despite a block from a role or everyone. overridden: a block such a rule overrides. blocks: takes the access away. blocked: an allow that matches but that a block keeps from counting. limits: a block taking away some of the resource''s tools.'
                    enum:
                        - allows
                        - overrides
                        - overridden
                        - blocks
                        - blocked
                        - limits
                kind:
                    type: string
                    description: What the principal identifies.
                    enum:
                        - everyone
                        - role
                        - user
                        - unknown
                level:
                    type: string
                    description: The access the rule gives, or the access a "blocked_" rule takes away. "all" is a grant covering every permission.
                    enum:
                        - use
                        - view
                        - manage
                        - blocked
                        - blocked_view
                        - blocked_manage
                        - all
                principal_urn:
                    type: string
                    description: Canonical principal URN holding the rule.
                reason:
                    type: string
                    description: 'Why a blocked rule made directly to the member did not override the block. wildcard_direct_grant: it covers every resource. narrower_direct_grant: it constrains something the tool does not carry. own_exclusion: the member''s own block applies.'
                    enum:
                        - wildcard_direct_grant
                        - narrower_direct_grant
                        - own_exclusion
                tools:
                    type: array
                    items:
                        type: string
                    description: Tool names the rule is narrowed to, when it is not the whole resource.
                via_directory_mapping:
                    type: boolean
                    description: Whether the member holds this role only through a directory role mapping.
            required:
                - principal_urn
                - kind
                - display_name
                - level
                - applies_to
                - effect
                - via_directory_mapping
        ExportMcpMetadataRequestBody:
            type: object
            properties:
                mcp_server_id:
                    type: string
                    description: The ID of a toolset-backed MCP server. Mutually exclusive with mcp_slug.
                    format: uuid
                mcp_slug:
                    type: string
                    description: The MCP server slug (from the install URL). Mutually exclusive with mcp_server_id.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
        ExprCompileResult:
            type: object
            properties:
                error:
                    type: string
                    description: Compiler error message when ok is false; empty otherwise.
                ok:
                    type: boolean
                    description: True when the expression compiled successfully.
            description: The result of compiling a single CEL expression for the editor.
            required:
                - ok
                - error
        ExtendTrialRequestBody:
            type: object
            properties:
                days:
                    type: integer
                    description: Number of days to add to the trial's current end date.
                    format: int64
                    minimum: 1
                    maximum: 365
                id:
                    type: string
                    description: Organization ID.
                    minLength: 1
            required:
                - id
                - days
        ExternalCredentialSummary:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the credential was created.
                    format: date-time
                id:
                    type: string
                    description: The ID of the external credential.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the credential.
                organization_id:
                    type: string
                    description: The organization that owns the credential.
                provider:
                    type: string
                    description: The cloud provider of the credential.
                    enum:
                        - aws_iam
                        - gcp_iam
                updated_at:
                    type: string
                    description: When the credential was last updated.
                    format: date-time
            description: Provider-independent summary of an external credential.
            required:
                - id
                - organization_id
                - provider
                - name
                - created_at
                - updated_at
        ExternalKeySummary:
            type: object
            properties:
                algorithm:
                    type: string
                    description: The signing algorithm of the key.
                    enum:
                        - RS256
                        - ES256
                created_at:
                    type: string
                    description: When the key was created.
                    format: date-time
                customer_grant_reference:
                    type: string
                    description: The Speakeasy identity (GCP service-account email or AWS principal ARN) the customer granted on the key for the key-policy / IAM-grant model. Not a secret.
                external_credential_id:
                    type: string
                    description: The external credential Speakeasy uses to authenticate to the key.
                    format: uuid
                id:
                    type: string
                    description: The ID of the external key.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key.
                organization_id:
                    type: string
                    description: The organization that owns the key.
                provider:
                    type: string
                    description: The cloud KMS provider of the key.
                    enum:
                        - aws_kms
                        - gcp_kms
                updated_at:
                    type: string
                    description: When the key was last updated.
                    format: date-time
            description: Provider-independent summary of an external key.
            required:
                - id
                - organization_id
                - external_credential_id
                - provider
                - algorithm
                - name
                - created_at
                - updated_at
        ExternalMCPHeaderDefinition:
            type: object
            properties:
                description:
                    type: string
                    description: Description of the header
                header_name:
                    type: string
                    description: The actual HTTP header name to send (e.g., X-Api-Key)
                name:
                    type: string
                    description: The prefixed environment variable name (e.g., SLACK_X_API_KEY)
                placeholder:
                    type: string
                    description: Placeholder value for the header
                required:
                    type: boolean
                    description: Whether the header is required
                secret:
                    type: boolean
                    description: Whether the header value is secret
            required:
                - name
                - header_name
                - required
                - secret
        ExternalMCPPackage:
            type: object
            properties:
                environment_variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalMCPPackageEnvironmentVariable'
                    description: Environment variables the package asks an install to supply. What a server demands — a required secret named here is an approval signal in its own right.
                file_sha256:
                    type: string
                    description: SHA-256 of the packaged artifact, when the registry publishes one
                identifier:
                    type: string
                    description: Package identifier, scope included
                registry_base_url:
                    type: string
                    description: Registry base URL when the package lives outside the default public registry
                    format: uri
                registry_type:
                    type: string
                    description: Package registry the artifact is published to, such as npm or pypi
                runtime_hint:
                    type: string
                    description: Launcher the publisher suggests, such as npx or uvx
                transport_type:
                    type: string
                    description: Execution transport the package declares, such as stdio
                version:
                    type: string
                    description: Published version
            description: A published package that runs this server, as declared by the registry
            required:
                - registry_type
                - identifier
                - version
        ExternalMCPPackageEnvironmentVariable:
            type: object
            properties:
                description:
                    type: string
                    description: The publisher's explanation of the variable. Untrusted text.
                is_required:
                    type: boolean
                    description: Whether an install cannot proceed without it
                is_secret:
                    type: boolean
                    description: Whether the publisher marked the value sensitive
                name:
                    type: string
                    description: Variable name the install must populate
            description: An environment variable a package declares its install requires
            required:
                - name
                - is_secret
                - is_required
        ExternalMCPRemote:
            type: object
            properties:
                headers:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalMCPRemoteHeader'
                    description: HTTP headers the MCP client should collect and send when connecting to this remote
                transport_type:
                    type: string
                    description: Transport type (sse or streamable-http)
                    enum:
                        - sse
                        - streamable-http
                url:
                    type: string
                    description: URL of the remote endpoint
                    format: uri
                variables:
                    type: object
                    description: URL template variables for this remote endpoint
                    additionalProperties:
                        $ref: '#/components/schemas/ExternalMCPRemoteVariable'
            description: A remote endpoint for an MCP server
            required:
                - url
                - transport_type
        ExternalMCPRemoteHeader:
            type: object
            properties:
                description:
                    type: string
                    description: Description of the header
                is_required:
                    type: boolean
                    description: Whether this header is required
                is_secret:
                    type: boolean
                    description: Whether this header value should be treated as secret
                name:
                    type: string
                    description: Header name
                placeholder:
                    type: string
                    description: Placeholder value to show when collecting this header
            description: A header requirement for a remote MCP server
            required:
                - name
        ExternalMCPRemoteVariable:
            type: object
            properties:
                choices:
                    type: array
                    items:
                        type: string
                    description: Allowed values for the variable
                default:
                    type: string
                    description: Default value for the variable
                description:
                    type: string
                    description: Description of the variable
                is_required:
                    type: boolean
                    description: Whether this variable is required
                is_secret:
                    type: boolean
                    description: Whether this variable value should be treated as secret
            description: A URL template variable for a remote MCP server
        ExternalMCPRepository:
            type: object
            properties:
                source:
                    type: string
                    description: Hosting service the repository lives on, such as github
                subfolder:
                    type: string
                    description: Path within the repository holding the server, for monorepos
                url:
                    type: string
                    description: Repository URL
                    format: uri
            description: 'The source repository a registry entry links for its server. A registry declaration: nothing verifies the endpoint runs this code.'
            required:
                - url
        ExternalMCPServer:
            type: object
            properties:
                description:
                    type: string
                    description: Description of what the server does
                icon_url:
                    type: string
                    description: URL to the server's icon
                    format: uri
                mcp_server_id:
                    type: string
                    description: ID of the attached MCP server backing this server
                    format: uuid
                meta:
                    description: Opaque metadata from the registry
                registry_id:
                    type: string
                    description: ID of the external MCP registry this server came from
                    format: uuid
                registry_specifier:
                    type: string
                    description: Server specifier used to look up in the registry (e.g., 'io.github.user/server')
                    example: io.modelcontextprotocol.anonymous/exa
                remotes:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalMCPRemote'
                    description: Available remote endpoints for the server
                title:
                    type: string
                    description: Display name for the server
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalMCPTool'
                    description: Tools available on the server
                toolset_id:
                    type: string
                    description: ID of the attached toolset backing this server
                    format: uuid
                version:
                    type: string
                    description: Semantic version of the server
                    example: 1.0.0
            description: An MCP server from an external registry
            required:
                - registry_specifier
                - version
                - description
        ExternalMCPServerEntry:
            type: object
            properties:
                description:
                    type: string
                    description: Description of what the server does
                icon_url:
                    type: string
                    description: URL to the server's icon
                    format: uri
                is_read_only:
                    type: boolean
                    description: Whether every tool on the server is read-only
                mcp_server_id:
                    type: string
                    description: ID of the attached MCP server backing this server
                    format: uuid
                meta:
                    description: Opaque metadata from the registry
                packages:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalMCPPackage'
                    description: Published packages that run this server, when the registry declares any
                registry_id:
                    type: string
                    description: ID of the external MCP registry this server came from
                    format: uuid
                registry_specifier:
                    type: string
                    description: Server specifier used to look up in the registry (e.g., 'io.github.user/server')
                    example: io.modelcontextprotocol.anonymous/exa
                remotes:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalMCPRemote'
                    description: Available remote endpoints for the server
                repository:
                    $ref: '#/components/schemas/ExternalMCPRepository'
                supports_dcr:
                    type: boolean
                    description: Whether the server's OAuth authorization server advertises a dynamic client registration endpoint (RFC 7591). When false, connecting requires manual setup (static OAuth client credentials or API keys).
                title:
                    type: string
                    description: Display name for the server
                tool_count:
                    type: integer
                    description: Number of tools the server exposes
                    format: int64
                toolset_id:
                    type: string
                    description: ID of the attached toolset backing this server
                    format: uuid
                version:
                    type: string
                    description: Semantic version of the server
                    example: 1.0.0
            description: A summary of an MCP server from an external registry, returned by catalog listings
            required:
                - registry_specifier
                - version
                - description
                - tool_count
                - is_read_only
                - supports_dcr
        ExternalMCPTool:
            type: object
            properties:
                annotations:
                    description: Annotations for the tool
                description:
                    type: string
                    description: Description of the tool
                input_schema:
                    description: Input schema for the tool
                name:
                    type: string
                    description: Name of the tool
        ExternalMCPToolDefinition:
            type: object
            properties:
                annotations:
                    $ref: '#/components/schemas/ToolAnnotations'
                canonical:
                    $ref: '#/components/schemas/CanonicalToolAttributes'
                canonical_name:
                    type: string
                    description: The canonical name of the tool. Will be the same as the name if there is no variation.
                confirm:
                    type: string
                    description: Confirmation mode for the tool
                confirm_prompt:
                    type: string
                    description: Prompt for the confirmation
                created_at:
                    type: string
                    description: The creation date of the tool.
                    format: date-time
                deployment_external_mcp_id:
                    type: string
                    description: The ID of the deployments_external_mcps record
                deployment_id:
                    type: string
                    description: The ID of the deployment
                description:
                    type: string
                    description: Description of the tool
                id:
                    type: string
                    description: The ID of the tool
                name:
                    type: string
                    description: The name of the tool
                oauth_authorization_endpoint:
                    type: string
                    description: The OAuth authorization endpoint URL
                oauth_registration_endpoint:
                    type: string
                    description: The OAuth dynamic client registration endpoint URL
                oauth_scopes_supported:
                    type: array
                    items:
                        type: string
                    description: The OAuth scopes supported by the server
                oauth_token_endpoint:
                    type: string
                    description: The OAuth token endpoint URL
                oauth_version:
                    type: string
                    description: 'OAuth version: ''2.1'' (MCP OAuth), ''2.0'' (legacy), or ''none'''
                project_id:
                    type: string
                    description: The ID of the project
                registry_id:
                    type: string
                    description: The ID of the MCP registry
                registry_server_name:
                    type: string
                    description: The name of the external MCP server (e.g., exa)
                registry_specifier:
                    type: string
                    description: The specifier of the external MCP server (e.g., 'io.modelcontextprotocol.anonymous/exa')
                remote_url:
                    type: string
                    description: The URL to connect to the MCP server
                requires_oauth:
                    type: boolean
                    description: Whether the external MCP server requires OAuth authentication
                schema:
                    type: string
                    description: JSON schema for the request
                schema_version:
                    type: string
                    description: Version of the schema
                slug:
                    type: string
                    description: The slug used for tool prefixing (e.g., github)
                summarizer:
                    type: string
                    description: Summarizer for the tool
                tool_urn:
                    type: string
                    description: The URN of this tool
                transport_type:
                    type: string
                    description: The transport type used to connect to the MCP server
                    enum:
                        - streamable-http
                        - sse
                type:
                    type: string
                    description: Whether or not the tool is a proxy tool
                updated_at:
                    type: string
                    description: The last update date of the tool.
                    format: date-time
                variation:
                    $ref: '#/components/schemas/ToolVariation'
            description: A proxy tool that references an external MCP server
            required:
                - deployment_external_mcp_id
                - deployment_id
                - registry_specifier
                - registry_server_name
                - registry_id
                - slug
                - remote_url
                - transport_type
                - requires_oauth
                - oauth_version
                - created_at
                - updated_at
                - id
                - project_id
                - name
                - canonical_name
                - description
                - schema
                - tool_urn
        ExternalOAuthServer:
            type: object
            properties:
                authorization_server_issuer:
                    type: string
                    description: The exact HTTPS issuer clients use for provider-hosted RFC 8414 discovery. Exactly one of authorization_server_issuer and metadata is present; changing modes may require clients to register or authenticate again.
                    format: uri
                    maxLength: 500
                created_at:
                    type: string
                    description: When the external OAuth server was created.
                    format: date-time
                id:
                    type: string
                    description: The ID of the external OAuth server
                metadata:
                    description: The validated RFC 8414 metadata Speakeasy hosts in compatibility mode. Exactly one of metadata and authorization_server_issuer is present.
                project_id:
                    type: string
                    description: The project ID this external OAuth server belongs to
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                updated_at:
                    type: string
                    description: When the external OAuth server was last updated.
                    format: date-time
            required:
                - id
                - project_id
                - slug
                - created_at
                - updated_at
        ExternalOAuthServerForm:
            type: object
            properties:
                authorization_server_issuer:
                    type: string
                    description: Exact HTTPS issuer for provider-hosted RFC 8414 discovery. Speakeasy fetches and strictly verifies this issuer before persistence. Supply exactly one of authorization_server_issuer and metadata.
                    format: uri
                    pattern: ^https://
                    maxLength: 500
                metadata:
                    description: JSON object metadata for Speakeasy-hosted compatibility mode. Supply exactly one of metadata and authorization_server_issuer.
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
        FetchImageFromURLForm:
            type: object
            properties:
                apikey_token:
                    type: string
                project_slug_input:
                    type: string
                session_token:
                    type: string
                url:
                    type: string
                    description: The URL to fetch the image from
            required:
                - url
        FetchImageFromURLForm2:
            type: object
            properties:
                url:
                    type: string
                    description: The URL to fetch the image from
            required:
                - url
        FetchIssuerMetadataRequestBody:
            type: object
            properties:
                issuer:
                    type: string
                    description: Issuer URL to fetch metadata for (e.g. https://login.linear.com).
            required:
                - issuer
        FetchOpenAPIv3FromURLForm:
            type: object
            properties:
                apikey_token:
                    type: string
                project_slug_input:
                    type: string
                session_token:
                    type: string
                url:
                    type: string
                    description: The URL to fetch the OpenAPI document from
            required:
                - url
        FetchOpenAPIv3FromURLForm2:
            type: object
            properties:
                url:
                    type: string
                    description: The URL to fetch the OpenAPI document from
            required:
                - url
        FilterOption:
            type: object
            properties:
                count:
                    type: integer
                    description: Number of events for this option
                    format: int64
                id:
                    type: string
                    description: Unique identifier for the option
                label:
                    type: string
                    description: Display label for the option
            description: A single filter option (API key or user)
            required:
                - id
                - label
                - count
        FunctionEnvironmentVariable:
            type: object
            properties:
                auth_input_type:
                    type: string
                    description: Optional value of the function variable comes from a specific auth input
                description:
                    type: string
                    description: Description of the function environment variable
                name:
                    type: string
                    description: The environment variables
            required:
                - name
        FunctionResourceDefinition:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the resource.
                    format: date-time
                deployment_id:
                    type: string
                    description: The ID of the deployment
                description:
                    type: string
                    description: Description of the resource
                function_id:
                    type: string
                    description: The ID of the function
                id:
                    type: string
                    description: The ID of the resource
                meta:
                    type: object
                    description: Meta tags for the tool
                    additionalProperties: true
                mime_type:
                    type: string
                    description: Optional MIME type of the resource
                name:
                    type: string
                    description: The name of the resource
                project_id:
                    type: string
                    description: The ID of the project
                resource_urn:
                    type: string
                    description: The URN of this resource
                runtime:
                    type: string
                    description: Runtime environment (e.g., nodejs:24, python:3.12)
                title:
                    type: string
                    description: Optional title for the resource
                updated_at:
                    type: string
                    description: The last update date of the resource.
                    format: date-time
                uri:
                    type: string
                    description: The URI of the resource
                variables:
                    description: Variables configuration for the resource
            description: A function resource
            required:
                - deployment_id
                - function_id
                - runtime
                - id
                - project_id
                - name
                - description
                - uri
                - resource_urn
                - created_at
                - updated_at
        FunctionToolDefinition:
            type: object
            properties:
                annotations:
                    $ref: '#/components/schemas/ToolAnnotations'
                asset_id:
                    type: string
                    description: The ID of the asset
                canonical:
                    $ref: '#/components/schemas/CanonicalToolAttributes'
                canonical_name:
                    type: string
                    description: The canonical name of the tool. Will be the same as the name if there is no variation.
                confirm:
                    type: string
                    description: Confirmation mode for the tool
                confirm_prompt:
                    type: string
                    description: Prompt for the confirmation
                created_at:
                    type: string
                    description: The creation date of the tool.
                    format: date-time
                deployment_id:
                    type: string
                    description: The ID of the deployment
                description:
                    type: string
                    description: Description of the tool
                function_id:
                    type: string
                    description: The ID of the function
                id:
                    type: string
                    description: The ID of the tool
                meta:
                    type: object
                    description: Meta tags for the tool
                    additionalProperties: true
                name:
                    type: string
                    description: The name of the tool
                project_id:
                    type: string
                    description: The ID of the project
                runtime:
                    type: string
                    description: Runtime environment (e.g., nodejs:24, python:3.12)
                schema:
                    type: string
                    description: JSON schema for the request
                schema_version:
                    type: string
                    description: Version of the schema
                summarizer:
                    type: string
                    description: Summarizer for the tool
                tags:
                    type: array
                    items:
                        type: string
                    description: The tags list for this function tool
                tool_urn:
                    type: string
                    description: The URN of this tool
                updated_at:
                    type: string
                    description: The last update date of the tool.
                    format: date-time
                variables:
                    description: Variables configuration for the function
                variation:
                    $ref: '#/components/schemas/ToolVariation'
            description: A function tool
            required:
                - deployment_id
                - asset_id
                - function_id
                - runtime
                - tags
                - id
                - project_id
                - name
                - canonical_name
                - description
                - schema
                - tool_urn
                - created_at
                - updated_at
        GcpIamCredential:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the credential was created.
                    format: date-time
                id:
                    type: string
                    description: The ID of the external credential.
                    format: uuid
                impersonate_service_account:
                    type: string
                    description: The service account Speakeasy impersonates (impersonation approach, or the WIF hop).
                name:
                    type: string
                    description: A human-readable name for the credential.
                organization_id:
                    type: string
                    description: The organization that owns the credential.
                provider:
                    type: string
                    description: The cloud provider of the credential.
                    enum:
                        - aws_iam
                        - gcp_iam
                updated_at:
                    type: string
                    description: When the credential was last updated.
                    format: date-time
                wif_pool_id:
                    type: string
                    description: Workload Identity Federation pool ID.
                wif_project_number:
                    type: string
                    description: GCP project number backing the WIF pool.
                wif_provider_id:
                    type: string
                    description: Workload Identity Federation provider ID.
            description: A GCP IAM external credential.
            required:
                - id
                - organization_id
                - provider
                - name
                - created_at
                - updated_at
        GcpKmsKey:
            type: object
            properties:
                algorithm:
                    type: string
                    description: The signing algorithm of the key.
                    enum:
                        - RS256
                        - ES256
                created_at:
                    type: string
                    description: When the key was created.
                    format: date-time
                customer_grant_reference:
                    type: string
                    description: The Speakeasy identity (GCP service-account email or AWS principal ARN) the customer granted on the key for the key-policy / IAM-grant model. Not a secret.
                external_credential_id:
                    type: string
                    description: The external credential Speakeasy uses to authenticate to the key.
                    format: uuid
                id:
                    type: string
                    description: The ID of the external key.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key.
                organization_id:
                    type: string
                    description: The organization that owns the key.
                provider:
                    type: string
                    description: The cloud KMS provider of the key.
                    enum:
                        - aws_kms
                        - gcp_kms
                resource_name:
                    type: string
                    description: The resource name of the GCP KMS key.
                updated_at:
                    type: string
                    description: When the key was last updated.
                    format: date-time
            description: A GCP KMS external key.
            required:
                - resource_name
                - id
                - organization_id
                - external_credential_id
                - provider
                - algorithm
                - name
                - created_at
                - updated_at
        GcpSetupInfo:
            type: object
            properties:
                required_role:
                    type: string
                    description: The IAM role to grant Speakeasy's service account on the target service account.
                service_account_email:
                    type: string
                    description: Speakeasy's own service account. Grant it roles/iam.serviceAccountTokenCreator on the service account you want Speakeasy to impersonate. Empty when the running environment cannot report one (local development backed by a user login rather than a service-account key).
            description: What the customer must grant in their own GCP project before Speakeasy can impersonate a service account there.
            required:
                - required_role
        GenerateTitleRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the chat
                title:
                    type: string
                    description: When present, sets the chat's title manually (empty string resets to auto-generated). When omitted, the current title is returned without changes.
                    maxLength: 200
            required:
                - id
        GenerateTitleResponseBody:
            type: object
            properties:
                title:
                    type: string
                    description: The current title after the operation (empty when reset to auto-generated)
            required:
                - title
        GenerateWorkOSAdminPortalLinkRequestBody:
            type: object
            properties:
                intent:
                    type: string
                    description: WorkOS Admin Portal intent.
                    enum:
                        - dsync
                        - sso
                        - audit_logs
                        - domain_verification
                        - log_streams
                intent_options:
                    $ref: '#/components/schemas/WorkOSIntentOptions'
                it_contact_emails:
                    type: array
                    items:
                        type: string
                    description: IT contact email addresses displayed in the Admin Portal for end-user support.
                return_url:
                    type: string
                    description: URL to redirect the user to after the Admin Portal session ends.
                    format: uri
                success_url:
                    type: string
                    description: URL to redirect the user to on successful completion of the Admin Portal flow.
                    format: uri
            required:
                - intent
        GenerateWorkOSAdminPortalLinkResult:
            type: object
            properties:
                url:
                    type: string
                    description: URL to the WorkOS Admin Portal flow.
            required:
                - url
        GetActiveDeploymentResult:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/Deployment'
        GetDeploymentEvaluationResult:
            type: object
            properties:
                base_deployment_id:
                    type: string
                    description: The ID of the deployment it is compared with. Absent for the first deployment in a project.
                deployment_id:
                    type: string
                    description: The ID of the evaluated deployment.
                documents:
                    type: array
                    items:
                        $ref: '#/components/schemas/OpenAPIv3Evaluation'
                    description: One evaluation per OpenAPI source that was added, changed or removed.
            required:
                - deployment_id
                - documents
        GetDeploymentForm:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the deployment
            required:
                - id
        GetDeploymentLogsForm:
            type: object
            properties:
                cursor:
                    type: string
                    description: The cursor to fetch results from
                deployment_id:
                    type: string
                    description: The ID of the deployment
            required:
                - deployment_id
        GetDeploymentLogsResult:
            type: object
            properties:
                events:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeploymentLogEvent'
                    description: The logs for the deployment
                next_cursor:
                    type: string
                    description: The cursor to fetch results from
                status:
                    type: string
                    description: The status of the deployment
            required:
                - events
                - status
        GetDeploymentResult:
            type: object
            properties:
                cloned_from:
                    type: string
                    description: The ID of the deployment that this deployment was cloned from.
                    example: bc5f4a555e933e6861d12edba4c2d87ef6caf8e6
                created_at:
                    type: string
                    description: The creation date of the deployment.
                    format: date-time
                external_id:
                    type: string
                    description: The external ID to refer to the deployment. This can be a git commit hash for example.
                    example: bc5f4a555e933e6861d12edba4c2d87ef6caf8e6
                external_mcp_tool_count:
                    type: integer
                    description: The number of tools in the deployment generated from external MCP servers.
                    format: int64
                external_mcps:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeploymentExternalMCP'
                    description: The external MCP servers that were deployed.
                external_url:
                    type: string
                    description: The upstream URL a deployment can refer to. This can be a github url to a commit hash or pull request.
                functions_assets:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeploymentFunctions'
                    description: The IDs, as returned from the assets upload service, to uploaded OpenAPI 3.x documents whose operations will become tool definitions.
                functions_tool_count:
                    type: integer
                    description: The number of tools in the deployment generated from Functions.
                    format: int64
                github_pr:
                    type: string
                    description: The github pull request that resulted in the deployment.
                    example: "1234"
                github_repo:
                    type: string
                    description: The github repository in the form of "owner/repo".
                    example: speakeasyapi/gram
                github_sha:
                    type: string
                    description: The commit hash that triggered the deployment.
                    example: f33e693e9e12552043bc0ec5c37f1b8a9e076161
                id:
                    type: string
                    description: The ID to of the deployment.
                    example: bc5f4a555e933e6861d12edba4c2d87ef6caf8e6
                idempotency_key:
                    type: string
                    description: A unique identifier that will mitigate against duplicate deployments.
                    example: 01jqq0ajmb4qh9eppz48dejr2m
                openapiv3_assets:
                    type: array
                    items:
                        $ref: '#/components/schemas/OpenAPIv3DeploymentAsset'
                    description: The IDs, as returned from the assets upload service, to uploaded OpenAPI 3.x documents whose operations will become tool definitions.
                openapiv3_tool_count:
                    type: integer
                    description: The number of tools in the deployment generated from OpenAPI documents.
                    format: int64
                organization_id:
                    type: string
                    description: The ID of the organization that the deployment belongs to.
                packages:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeploymentPackage'
                    description: The packages that were deployed.
                project_id:
                    type: string
                    description: The ID of the project that the deployment belongs to.
                status:
                    type: string
                    description: The status of the deployment.
                user_id:
                    type: string
                    description: The ID of the user that created the deployment.
            required:
                - id
                - created_at
                - organization_id
                - project_id
                - user_id
                - openapiv3_assets
                - status
                - packages
                - openapiv3_tool_count
                - functions_tool_count
                - external_mcp_tool_count
        GetEmployeeDataFlowGraphPayload:
            type: object
            properties:
                account_type:
                    type: string
                    description: Optional account type filter ('team' or 'personal')
                external_org_id:
                    type: string
                    description: Optional filter to a single AI account by its provider org id; scopes the graph to that one account
                external_user_id:
                    type: string
                    description: External user ID to get the graph for (mutually exclusive with user_id)
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
                user_id:
                    type: string
                    description: User ID to get the graph for (mutually exclusive with external_user_id)
            description: Payload for getting an employee-level MCP data flow graph
            required:
                - from
                - to
        GetEmployeeDataFlowGraphResult:
            type: object
            properties:
                edges:
                    type: array
                    items:
                        $ref: '#/components/schemas/EmployeeDataFlowEdge'
                    description: Weighted graph edges between adjacent populated tiers
                nodes:
                    type: array
                    items:
                        $ref: '#/components/schemas/EmployeeDataFlowNode'
                    description: Graph nodes grouped by tier
            description: Result of employee data flow graph query
            required:
                - nodes
                - edges
        GetEventFacetsPayload:
            type: object
            properties:
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                kinds:
                    type: array
                    items:
                        type: string
                        enum:
                            - log
                            - span
                    description: Optional signal kind filter. Empty means facets from both logs and spans.
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-26T10:00:00Z"
                    format: date-time
            description: Payload for listing event feed filter facets
            required:
                - from
                - to
        GetEventFacetsResult:
            type: object
            properties:
                names:
                    type: array
                    items:
                        type: string
                    description: Distinct event/span names in ascending order
                sources:
                    type: array
                    items:
                        type: string
                    description: Distinct sources in ascending order
            description: Distinct filterable values observed in the range
            required:
                - sources
                - names
        GetEventVolumePayload:
            type: object
            properties:
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                kinds:
                    type: array
                    items:
                        type: string
                        enum:
                            - log
                            - span
                    description: Optional signal kind filter. Empty means both logs and spans.
                names:
                    type: array
                    items:
                        type: string
                    description: Optional event/span name filter. Values are ORed.
                search:
                    type: string
                    description: Optional case-insensitive substring match over event body and name
                sources:
                    type: array
                    items:
                        type: string
                    description: Optional source filter (canonicalized service names). Values are ORed.
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-26T10:00:00Z"
                    format: date-time
            description: Payload for the org-scoped event volume timeseries
            required:
                - from
                - to
        GetEventVolumeResult:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/EventVolumeBucket'
                    description: Zero-filled buckets in ascending time order
                interval_seconds:
                    type: integer
                    description: Bucket width in seconds
                    format: int64
            description: Bucketed counts of logs vs spans over the requested range
            required:
                - interval_seconds
                - buckets
        GetHooksSummaryPayload:
            type: object
            properties:
                filters:
                    type: array
                    items:
                        $ref: '#/components/schemas/LogFilter'
                    description: Filter conditions (same as listHooksTraces)
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
                types_to_include:
                    type: array
                    items:
                        type: string
                        enum:
                            - mcp
                            - local
                            - skill
                    description: Hook types to include (mcp, local, skill). If empty, includes all types.
                    example:
                        - mcp
                        - skill
            description: Payload for getting aggregated hooks metrics
            required:
                - from
                - to
        GetHooksSummaryResult:
            type: object
            properties:
                breakdown:
                    type: array
                    items:
                        $ref: '#/components/schemas/HooksBreakdownRow'
                    description: 'Cross-dimensional pivot: (user, server, source, tool) x counts'
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/HooksServerSummary'
                    description: Aggregated metrics grouped by server
                skill_breakdown:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillBreakdownRow'
                    description: Per-user skill breakdown
                skill_time_series:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillTimeSeriesPoint'
                    description: Time-bucketed event counts by skill
                skills:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillSummary'
                    description: Aggregated metrics grouped by skill
                time_series:
                    type: array
                    items:
                        $ref: '#/components/schemas/HooksTimeSeriesPoint'
                    description: Time-bucketed event counts by server and user
                total_events:
                    type: integer
                    description: Total number of hook events
                    format: int64
                total_sessions:
                    type: integer
                    description: Total number of unique sessions
                    format: int64
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/HooksUserSummary'
                    description: Aggregated metrics grouped by user
            description: Result of hooks summary query
            required:
                - servers
                - users
                - skills
                - total_events
                - total_sessions
                - breakdown
                - time_series
                - skill_time_series
                - skill_breakdown
        GetIdentityProviderConnectionResult:
            type: object
            properties:
                connection:
                    $ref: '#/components/schemas/OktaIdentityProviderConnection'
            description: The organization's Okta connection, or nothing when none is connected.
        GetInstanceForm:
            type: object
            properties:
                apikey_token:
                    type: string
                chat_sessions_token:
                    type: string
                project_slug_input:
                    type: string
                session_token:
                    type: string
                toolset_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - toolset_slug
        GetInstanceResult:
            type: object
            properties:
                description:
                    type: string
                    description: The description of the toolset
                external_mcp_header_definitions:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalMCPHeaderDefinition'
                    description: The external MCP header definitions that are relevant to the toolset
                function_environment_variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/FunctionEnvironmentVariable'
                    description: The function environment variables that are relevant to the toolset
                mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/InstanceMcpServer'
                    description: The MCP servers that are relevant to the toolset
                name:
                    type: string
                    description: The name of the toolset
                prompt_templates:
                    type: array
                    items:
                        $ref: '#/components/schemas/PromptTemplate'
                    description: The list of prompt templates
                security_variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/SecurityVariable'
                    description: The security variables that are relevant to the toolset
                server_variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/ServerVariable'
                    description: The server variables that are relevant to the toolset
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/Tool'
                    description: The list of tools
            required:
                - name
                - tools
                - mcp_servers
        GetIntegrationForm:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the integration to get (refers to a package id).
                name:
                    type: string
                    description: The name of the integration to get (refers to a package name).
            description: Get a third-party integration by ID or name.
        GetIntegrationResult:
            type: object
            properties:
                integration:
                    $ref: '#/components/schemas/Integration'
        GetKeyUsageResponseBody:
            type: object
            properties:
                credits_used:
                    type: number
                    description: Credits spent this month, rounded to cents.
                    format: double
                monthly_credits:
                    type: integer
                    description: Monthly credit ceiling recorded locally.
                    format: int64
                upstream_limit:
                    type: integer
                    description: Monthly limit as configured upstream; absent when OpenRouter reports an unlimited key.
                    format: int64
            description: Live usage as reported by OpenRouter at request time.
            required:
                - credits_used
                - monthly_credits
        GetLatestDeploymentResult:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/Deployment'
        GetMcpMetadataResponseBody:
            type: object
            properties:
                metadata:
                    $ref: '#/components/schemas/McpMetadata'
        GetMcpNetworkTrafficPayload:
            type: object
            properties:
                mcp_server_id:
                    type: string
                    description: MCP server ID (mutually exclusive with meta_mcp_server_id)
                    format: uuid
                meta_mcp_server_id:
                    type: string
                    description: Gateway ID (mutually exclusive with mcp_server_id)
                    format: uuid
                window:
                    type: string
                    description: Recent traffic window
                    enum:
                        - 24h
                        - 7d
            description: Provide exactly one of mcp_server_id or meta_mcp_server_id, and a recent window.
            required:
                - window
        GetMcpNetworkTrafficResult:
            type: object
            properties:
                from:
                    type: string
                    description: Start of the window
                    format: date-time
                last_private_at:
                    type: string
                    description: Most recent observed private request in the window
                    format: date-time
                last_public_at:
                    type: string
                    description: Most recent observed public request in the window
                    format: date-time
                points:
                    type: array
                    items:
                        $ref: '#/components/schemas/McpNetworkTrafficPoint'
                    description: Hourly request counts
                to:
                    type: string
                    description: End of the window
                    format: date-time
            description: Observed resolved inbound MCP requests, not a guarantee of every client. No observations does not prove a route is unused.
            required:
                - from
                - to
                - points
        GetMcpServerActivityPayload:
            type: object
            properties:
                recent_window_days:
                    type: integer
                    description: Size of the recent-activity window in days. A server with tool calls in the overall lookback window but none inside this window is flagged as stale. Defaults to 14.
                    default: 14
                    format: int64
                    minimum: 1
                    maximum: 90
            description: Payload for per-MCP-server tool-call activity used by the Distribute MCP listing indicators
        GetMcpServerActivityResult:
            type: object
            properties:
                activity:
                    type: array
                    items:
                        $ref: '#/components/schemas/McpServerActivity'
                    description: One entry per MCP server (hosted, tunneled, or gateway) that has received at least one tool call within the lookback window
                lookback_days:
                    type: integer
                    description: The overall lookback window size in days (bounded by telemetry retention)
                    format: int64
                recent_window_days:
                    type: integer
                    description: The recent-activity window size in days that was applied
                    format: int64
            description: Per-MCP-server tool-call activity. Only servers with at least one tool call inside the lookback window are returned; a server absent from the list has never received a tool call (within the telemetry retention window).
            required:
                - activity
                - recent_window_days
                - lookback_days
        GetMetaMcpServerUsagePayload:
            type: object
            properties:
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                meta_mcp_server_id:
                    type: string
                    description: The gateway (meta MCP server) ID
                    format: uuid
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
            required:
                - meta_mcp_server_id
                - from
                - to
        GetMetaMcpServerUsageResult:
            type: object
            properties:
                funnel:
                    $ref: '#/components/schemas/MetaMcpDiscoveryFunnel'
                members:
                    type: array
                    items:
                        $ref: '#/components/schemas/MetaMcpMemberUsage'
                    description: Per-member execution breakdown, most active first
            description: Discovery funnel plus per-member execution breakdown for one gateway (meta MCP server). Zero counts mean no rows were observed in the window within telemetry retention — they do not distinguish an idle gateway from traffic outside the window or the 90-day retention; telemetry-disabled organizations get a not-found error instead of zeros.
            required:
                - funnel
                - members
        GetMetricsSummaryResult:
            type: object
            properties:
                metrics:
                    $ref: '#/components/schemas/ProjectSummary'
            description: Result of metrics summary query
            required:
                - metrics
        GetObservabilityOverviewPayload:
            type: object
            properties:
                account_type:
                    type: string
                    description: Optional account type filter ('team' or 'personal')
                api_key_id:
                    type: string
                    description: Optional API key ID filter
                event_source:
                    type: string
                    description: Optional event source filter (e.g. 'hook')
                external_org_id:
                    type: string
                    description: Optional filter to a single AI account by its provider org id; scopes the overview to that one account
                external_user_id:
                    type: string
                    description: Optional external user ID filter
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                hook_source:
                    type: string
                    description: Optional hook source filter (e.g. 'cursor', 'claude-code')
                include_time_series:
                    type: boolean
                    description: 'Whether to include time series data (default: true)'
                    default: true
                mcp_server_id:
                    type: string
                    description: Optional MCP server ID filter (fronting server; spans both remote-backed and toolset-backed activity)
                    format: uuid
                meta_mcp_server_id:
                    type: string
                    description: Optional gateway (meta MCP server) ID filter; scopes to traffic dispatched through that gateway
                    format: uuid
                remote_mcp_server_id:
                    type: string
                    description: Optional Remote MCP server ID filter
                    format: uuid
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
                toolset_slug:
                    type: string
                    description: Optional toolset/MCP server slug filter
                user_id:
                    type: string
                    description: Optional internal user ID filter
            description: Payload for getting observability overview metrics
            required:
                - from
                - to
        GetObservabilityOverviewResult:
            type: object
            properties:
                comparison:
                    $ref: '#/components/schemas/ObservabilitySummary'
                interval_seconds:
                    type: integer
                    description: The time bucket interval in seconds used for the time series data
                    format: int64
                summary:
                    $ref: '#/components/schemas/ObservabilitySummary'
                time_series:
                    type: array
                    items:
                        $ref: '#/components/schemas/TimeSeriesBucket'
                    description: Time series data points
                top_tools_by_count:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolMetric'
                    description: Top tools by call count
                top_tools_by_failure_rate:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolMetric'
                    description: Top tools by failure rate
            description: Result of observability overview query
            required:
                - summary
                - comparison
                - time_series
                - top_tools_by_count
                - top_tools_by_failure_rate
                - interval_seconds
        GetPluginsResult:
            type: object
            properties:
                configuration:
                    $ref: '#/components/schemas/DeviceAgentConfiguration'
                etag:
                    type: string
                    description: Opaque revision identifier covering the marketplace, plugin, MCP server (including each server's token endpoint, audience and resource), remote-configuration, and organization-gateway set. The agent stores this to detect changes between polls.
                marketplaces:
                    type: array
                    items:
                        $ref: '#/components/schemas/AgentMarketplace'
                    description: Plugin marketplaces the agent should register with the tools it manages. Sorted by name.
                mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AgentMCPServer'
                    description: 'Speakeasy-hosted MCP servers the agent registers directly in each managed tool''s configuration, authorized by the device''s own mcp:connect credential. Populated only when the caller polls as an agent (an agent API key, or a workload acting for its assigned agent), from the MCP servers in the plugins assigned to that agent; always empty for people, who reach these servers through their plugins. Always present: an empty list tells the agent to remove the entries it wrote earlier.'
                organization_gateway_url:
                    type: string
                    description: URL of the active organization's gateway. Absent when the organization gateway is unavailable.
                    format: uri
                plugins:
                    type: array
                    items:
                        $ref: '#/components/schemas/AgentPlugin'
                    description: 'Plugins for the caller: the observability plugin of each listed marketplace, when enabled, and the plugins assigned to the caller. Each entry''s install_mode says whether the agent installs it (`required`, `default`) or only offers it for the user to turn on (`available`). Each entry references one of the marketplaces above by name.'
                principal:
                    $ref: '#/components/schemas/AgentPollingPrincipal'
            required:
                - etag
                - marketplaces
                - plugins
                - mcp_servers
        GetProjectForm:
            type: object
            properties:
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - slug
        GetProjectMetricsSummaryPayload:
            type: object
            properties:
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
            description: Payload for getting project-level metrics summary
            required:
                - from
                - to
        GetProjectOverviewPayload:
            type: object
            properties:
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
            description: Payload for getting project-level overview
            required:
                - from
                - to
        GetProjectOverviewResult:
            type: object
            properties:
                comparison:
                    $ref: '#/components/schemas/ProjectOverviewSummary'
                metrics_mode:
                    type: string
                    description: Indicates whether metrics are session-based or tool-call-based
                    enum:
                        - session
                        - tool_call
                summary:
                    $ref: '#/components/schemas/ProjectOverviewSummary'
            description: Result of project overview query
            required:
                - summary
                - comparison
                - metrics_mode
        GetProjectResult:
            type: object
            properties:
                project:
                    $ref: '#/components/schemas/Project'
            required:
                - project
        GetPromptTemplateResult:
            type: object
            properties:
                template:
                    $ref: '#/components/schemas/PromptTemplate'
            required:
                - template
        GetRiskPolicyChallengeResponseBody:
            type: object
            properties:
                acknowledged:
                    type: boolean
                    description: Whether this challenge has already been acknowledged.
                expires_at:
                    type: string
                    description: RFC3339 time the acknowledgement link expires.
                    format: date-time
                message:
                    type: string
                    description: Human-facing challenge message describing what was flagged.
                policy_name:
                    type: string
                    description: The policy that issued the warning.
                tool_name:
                    type: string
                    description: The tool the challenge applies to, if any.
            required:
                - message
                - acknowledged
        GetSessionMetaResult:
            type: object
            properties:
                sessions:
                    type: array
                    items:
                        $ref: '#/components/schemas/AgentSessionMeta'
                    description: Metadata for the requested sessions that exist and are owned by the calling user. Requested ids with no captured chat or another owner are omitted.
            required:
                - sessions
        GetSetupDocsResponseBody:
            type: object
            properties:
                guides:
                    type: array
                    items:
                        $ref: '#/components/schemas/MCPSetupGuide'
                    description: Matching setup guides, most specific match first. Empty when no guide has been published for the server.
            required:
                - guides
        GetSignedAssetURLForm:
            type: object
            properties:
                asset_id:
                    type: string
                    description: The ID of the function asset
            required:
                - asset_id
        GetSignedAssetURLResult:
            type: object
            properties:
                url:
                    type: string
                    description: The signed URL to access the asset
            required:
                - url
        GetSkillResult:
            type: object
            properties:
                adoption:
                    $ref: '#/components/schemas/SkillAdoption'
                assistant_count:
                    type: integer
                    description: The number of active, non-deleted assistants using the skill.
                    format: int64
                drift:
                    $ref: '#/components/schemas/SkillDrift'
                latest_version:
                    $ref: '#/components/schemas/SkillVersion'
                prompt_injection_findings:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillPromptInjectionFinding'
                    description: Open prompt-injection findings for the current skill version.
                sighting_timeline:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillSightingTimelinePoint'
                    description: Daily activations by attributed version in the adoption window.
                skill:
                    $ref: '#/components/schemas/Skill'
            description: An active skill and its current version.
            required:
                - skill
                - adoption
                - sighting_timeline
                - drift
                - assistant_count
                - prompt_injection_findings
        GetToolUsageClientToolBreakdownResult:
            type: object
            properties:
                client_tool_breakdown:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageClientToolBreakdownRow'
                    description: Per-tool usage rows grouped by MCP client
            description: Per-tool MCP and tool usage grouped by MCP client
            required:
                - client_tool_breakdown
        GetToolUsageClientsResult:
            type: object
            properties:
                clients:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageClientSummary'
                    description: Top MCP clients for the selected filters and time range
            description: Top MCP clients for the selected filters and time range
            required:
                - clients
        GetToolUsageFilterOptionsPayload:
            type: object
            properties:
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                option_types:
                    type: array
                    items:
                        type: string
                        description: Tool usage filter option type
                        enum:
                            - hosted_servers
                            - shadow_servers
                            - gateways
                            - users
                            - clients
                    description: Filter option types to include. Empty means all option types.
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
            description: Payload for target-aware MCP and tool usage filter options
            required:
                - from
                - to
        GetToolUsageFilterOptionsResult:
            type: object
            properties:
                clients:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageClientFilterOption'
                    description: MCP clients with usage in the selected time range
                gateways:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageGatewayFilterOption'
                    description: Gateways (meta MCP servers) with usage in the selected time range
                hosted_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageHostedServerFilterOption'
                    description: Hosted MCP servers with usage in the selected time range
                shadow_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageShadowServerFilterOption'
                    description: Shadow MCP servers with usage in the selected time range
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageUserFilterOption'
                    description: User identities with usage in the selected time range
            description: Filter options for target-aware MCP and tool usage metrics
            required:
                - hosted_servers
                - shadow_servers
                - gateways
                - users
                - clients
        GetToolUsageSummaryPayload:
            type: object
            properties:
                account_type:
                    type: string
                    description: Optional account type filter ('team' or 'personal').
                client_keys:
                    type: array
                    items:
                        type: string
                    description: MCP client keys (lowercased self-reported client names; 'unattributed' selects calls Speakeasy never saw an initialize handshake for) to include
                filters:
                    type: array
                    items:
                        $ref: '#/components/schemas/LogFilter'
                    description: Arbitrary attribute filter conditions from the af URL param
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                hook_sources:
                    type: array
                    items:
                        type: string
                    description: Hook plugin sources to include. Direct hosted MCP calls have no hook source and are excluded when this filter is set.
                hosted_toolset_slugs:
                    type: array
                    items:
                        type: string
                    description: Hosted MCP toolset slugs to include
                meta_mcp_server_ids:
                    type: array
                    items:
                        type: string
                    description: 'Gateway (meta MCP server) ids to include: calls dispatched through the gateway to its members plus calls observed against the gateway itself'
                query:
                    type: string
                    description: Free-text attribute search string from the q URL param, applied as the trace listing applies it.
                shadow_server_names:
                    type: array
                    items:
                        type: string
                    description: Shadow MCP server names to include
                statuses:
                    type: array
                    items:
                        type: string
                        description: Tool usage trace outcome
                        enum:
                            - error
                            - success
                            - blocked
                            - pending
                    description: Trace outcomes to include (error, success, blocked, pending). Empty means all.
                target_types:
                    type: array
                    items:
                        type: string
                        description: Tool usage target type
                        enum:
                            - hosted_mcp_server
                            - tunneled_mcp_server
                            - meta_mcp_server
                            - shadow_mcp_server
                            - local_tool
                            - skill
                    description: Target types to include. Empty means all target types.
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
                user_filters:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageUserFilter'
                    description: Typed user identities to include
            description: Payload for target-aware MCP and tool usage metrics
            required:
                - from
                - to
        GetToolUsageSummaryResult:
            type: object
            properties:
                client_tool_breakdown:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageClientToolBreakdownRow'
                    description: Per-tool usage rows grouped by MCP client
                clients:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageClientSummary'
                    description: Top MCP clients for the selected filters and time range
                target_time_series:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageTargetTimeSeriesPoint'
                    description: Time-series usage buckets grouped by target
                target_tool_breakdown:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageTargetToolBreakdownRow'
                    description: Per-tool usage rows grouped by target
                targets:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageTargetSummary'
                    description: Top usage targets for the selected filters and time range
                totals:
                    $ref: '#/components/schemas/ToolUsageTotals'
                user_time_series:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageUserTimeSeriesPoint'
                    description: Time-series usage buckets grouped by user identity
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageUserSummary'
                    description: Top user identities for the selected filters and time range
                users_by_target:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageUsersByTargetRow'
                    description: Cross-dimensional usage rows grouped by target and user identity
            description: Target-aware MCP and tool usage metrics
            required:
                - totals
                - targets
                - users
                - target_time_series
                - user_time_series
                - users_by_target
                - target_tool_breakdown
                - clients
                - client_tool_breakdown
        GetToolUsageTargetTimeSeriesResult:
            type: object
            properties:
                target_time_series:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageTargetTimeSeriesPoint'
                    description: Time-series usage buckets grouped by target
            description: Time-series MCP and tool usage grouped by target
            required:
                - target_time_series
        GetToolUsageTargetToolBreakdownResult:
            type: object
            properties:
                target_tool_breakdown:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageTargetToolBreakdownRow'
                    description: Per-tool usage rows grouped by target
            description: Per-tool MCP and tool usage grouped by target
            required:
                - target_tool_breakdown
        GetToolUsageTargetsResult:
            type: object
            properties:
                targets:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageTargetSummary'
                    description: Top usage targets for the selected filters and time range
            description: Top MCP and tool usage targets for the selected filters and time range
            required:
                - targets
        GetToolUsageTotalsResult:
            type: object
            properties:
                totals:
                    $ref: '#/components/schemas/ToolUsageTotals'
            description: Overall MCP and tool usage totals for the selected filters and time range
            required:
                - totals
        GetToolUsageUserTimeSeriesResult:
            type: object
            properties:
                user_time_series:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageUserTimeSeriesPoint'
                    description: Time-series usage buckets grouped by user identity
            description: Time-series MCP and tool usage grouped by user identity
            required:
                - user_time_series
        GetToolUsageUsersByTargetResult:
            type: object
            properties:
                users_by_target:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageUsersByTargetRow'
                    description: Cross-dimensional usage rows grouped by target and user identity
            description: Cross-dimensional MCP and tool usage grouped by target and user identity
            required:
                - users_by_target
        GetToolUsageUsersResult:
            type: object
            properties:
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageUserSummary'
                    description: Top user identities for the selected filters and time range
            description: Top MCP and tool usage user identities for the selected filters and time range
            required:
                - users
        GetUnproxiedMcpServerClientUsageResult:
            type: object
            properties:
                clients:
                    type: array
                    items:
                        $ref: '#/components/schemas/UnproxiedMcpServerClientUsageRow'
                next_cursor:
                    type: string
                    description: Cursor for next page
            description: Result of a Shadow-MCP-backed per-client usage lookup for an unproxied MCP server
            required:
                - clients
        GetUnproxiedMcpServerToolUsageResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for next page
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/UnproxiedMcpServerToolUsageRow'
            description: Result of a Shadow-MCP-backed per-tool usage lookup for an unproxied MCP server
            required:
                - tools
        GetUnproxiedMcpServerUsageRequestBody:
            type: object
            properties:
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    format: date-time
                to:
                    type: string
                    description: End time in ISO 8601 format
                    format: date-time
                url:
                    type: string
                    description: The unproxied MCP server's vendor URL
                    format: uri
            required:
                - url
                - from
                - to
        GetUnproxiedMcpServerUsageResult:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/UnproxiedMcpServerUsageBucket'
            description: Result of a Shadow-MCP-backed usage lookup for an unproxied MCP server
            required:
                - buckets
        GetUnproxiedMcpServerUserUsageResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for next page
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/UnproxiedMcpServerUserUsageRow'
            description: Result of a Shadow-MCP-backed per-user usage lookup for an unproxied MCP server
            required:
                - users
        GetUserMetricsSummaryPayload:
            type: object
            properties:
                account_type:
                    type: string
                    description: Optional account type filter ('team' or 'personal')
                event_source:
                    type: string
                    description: Optional event source filter (e.g. 'hook')
                external_org_id:
                    type: string
                    description: Optional filter to a single AI account by its provider org id; scopes metrics to that one account
                external_user_id:
                    type: string
                    description: External user ID to get metrics for (mutually exclusive with user_id)
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                hook_source:
                    type: string
                    description: Optional hook source filter (e.g. 'cursor', 'claude-code')
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
                user_id:
                    type: string
                    description: User ID to get metrics for (mutually exclusive with external_user_id)
            description: Payload for getting user-level metrics summary
            required:
                - from
                - to
        GetUserMetricsSummaryResult:
            type: object
            properties:
                metrics:
                    $ref: '#/components/schemas/ProjectSummary'
            description: Result of user metrics summary query
            required:
                - metrics
        GlobalRemoteSessionIssuer:
            type: object
            properties:
                ema_binding_count:
                    type: integer
                    description: Number of active identity-chaining bindings that block deletion and must be explicitly unlinked by their owning organizations. Included in the detail response; omitted from listings.
                    format: int64
                global_client_count:
                    type: integer
                    description: Number of non-deleted global remote_session_clients (project_id NULL, organization_id NULL) registered with this issuer. These block a delete and the platform admin can remove them here.
                    format: int64
                issuer:
                    $ref: '#/components/schemas/RemoteSessionIssuer'
                tenant_client_count:
                    type: integer
                    description: Number of non-deleted remote_session_clients owned by an organization or project that are registered with this issuer. These block a delete but only their owning organization can remove them.
                    format: int64
                trusted_user_session_issuer_count:
                    type: integer
                    description: Number of active tenant-owned user_session_issuers that trust this issuer. These block deletion and must be unlinked by their owning organizations.
                    format: int64
            description: 'A platform-administrator view of a global remote_session_issuer: the issuer plus the reference counts that can block deletion.'
            required:
                - issuer
                - global_client_count
                - tenant_client_count
                - trusted_user_session_issuer_count
        HTTPToolDefinition:
            type: object
            properties:
                annotations:
                    $ref: '#/components/schemas/ToolAnnotations'
                asset_id:
                    type: string
                    description: The ID of the asset
                canonical:
                    $ref: '#/components/schemas/CanonicalToolAttributes'
                canonical_name:
                    type: string
                    description: The canonical name of the tool. Will be the same as the name if there is no variation.
                confirm:
                    type: string
                    description: Confirmation mode for the tool
                confirm_prompt:
                    type: string
                    description: Prompt for the confirmation
                created_at:
                    type: string
                    description: The creation date of the tool.
                    format: date-time
                default_server_url:
                    type: string
                    description: The default server URL for the tool
                deployment_id:
                    type: string
                    description: The ID of the deployment
                description:
                    type: string
                    description: Description of the tool
                http_method:
                    type: string
                    description: HTTP method for the request
                id:
                    type: string
                    description: The ID of the tool
                name:
                    type: string
                    description: The name of the tool
                openapiv3_document_id:
                    type: string
                    description: The ID of the OpenAPI v3 document
                openapiv3_operation:
                    type: string
                    description: OpenAPI v3 operation
                package_name:
                    type: string
                    description: The name of the source package
                path:
                    type: string
                    description: Path for the request
                project_id:
                    type: string
                    description: The ID of the project
                response_filter:
                    $ref: '#/components/schemas/ResponseFilter'
                schema:
                    type: string
                    description: JSON schema for the request
                schema_version:
                    type: string
                    description: Version of the schema
                security:
                    type: string
                    description: Security requirements for the underlying HTTP endpoint
                summarizer:
                    type: string
                    description: Summarizer for the tool
                summary:
                    type: string
                    description: Summary of the tool
                tags:
                    type: array
                    items:
                        type: string
                    description: The tags list for this http tool
                tool_urn:
                    type: string
                    description: The URN of this tool
                updated_at:
                    type: string
                    description: The last update date of the tool.
                    format: date-time
                variation:
                    $ref: '#/components/schemas/ToolVariation'
            description: An HTTP tool
            required:
                - summary
                - tags
                - http_method
                - path
                - schema
                - deployment_id
                - asset_id
                - id
                - project_id
                - name
                - canonical_name
                - description
                - tool_urn
                - created_at
                - updated_at
        HookIngestData:
            type: object
            properties:
                mcp:
                    $ref: '#/components/schemas/HookMCPData'
                mcp_attribution:
                    type: array
                    items:
                        $ref: '#/components/schemas/HookMCPAttributionEntry'
                    description: Transcript-derived per-request MCP attribution (Claude Stop/SubagentStop).
                mcp_inventory:
                    type: array
                    items:
                        $ref: '#/components/schemas/HookMCPData'
                    description: Configured MCP server snapshot captured at session start or configuration change. Transport credentials must be redacted by the sender.
                mcp_inventory_collected:
                    type: boolean
                    description: Whether the sender was able to read the agent's MCP server list for this session. True with an empty mcp_inventory means the agent genuinely has no servers configured; absent or false means the list could not be read (no agent binary, a failed probe) and the inventory says nothing about what the session can reach. Enforcement that treats a missing inventory as proof of absence must consult this first.
                message:
                    $ref: '#/components/schemas/HookMessageData'
                notification:
                    $ref: '#/components/schemas/HookNotificationData'
                prompt:
                    $ref: '#/components/schemas/HookPromptData'
                prompt_attachments:
                    type: array
                    items:
                        $ref: '#/components/schemas/HookPromptAttachmentEntry'
                    description: Transcript-derived prompt attachment content (Claude Stop/SubagentStop/SessionEnd).
                skill:
                    $ref: '#/components/schemas/HookSkillData'
                tool_call:
                    $ref: '#/components/schemas/HookToolCallData'
                usage:
                    $ref: '#/components/schemas/HookUsageData'
            description: Feature-specific payloads. Hooks populate only the blocks needed for the event.
        HookIngestEvent:
            type: object
            properties:
                occurred_at:
                    type: string
                    description: RFC3339 timestamp from the local agent. Defaults to receive time when absent.
                    format: date-time
                type:
                    type: string
                    description: Canonical Speakeasy hook event type.
                    enum:
                        - session.started
                        - session.updated
                        - session.ended
                        - mcp.inventory
                        - prompt.submitted
                        - tool.requested
                        - tool.completed
                        - tool.failed
                        - assistant.responded
                        - assistant.thought
                        - usage.reported
                        - skill.activated
                        - notification.reported
            description: Canonical Speakeasy feature event.
            required:
                - type
        HookIngestSession:
            type: object
            properties:
                cwd:
                    type: string
                    description: Current working directory when the event fired.
                id:
                    type: string
                    description: Stable conversation or session identifier.
                model:
                    type: string
                    description: Model identifier reported by the local agent.
                turn_id:
                    type: string
                    description: Generation, request, or turn identifier.
            description: Agent session and turn identity, independent of provider naming.
        HookIngestSource:
            type: object
            properties:
                adapter:
                    type: string
                    description: Stable adapter slug, e.g. claude, cursor, codex, or a customer hook name.
                adapter_version:
                    type: string
                    description: Adapter implementation version.
                hostname:
                    type: string
                    description: Hostname of the machine that emitted the hook event.
                raw_event_name:
                    type: string
                    description: Provider-native event name, if one exists.
                user_email:
                    type: string
                    description: Self-reported email of the developer on the emitting machine (device agent or provider account), used for attribution when the API key is shared org-wide.
            description: Metadata about the local hook adapter that translated a provider event into the Speakeasy hook contract.
            required:
                - adapter
        HookMCPAttributionEntry:
            type: object
            properties:
                mcp_server:
                    type: string
                    description: Unredacted MCP server name from the transcript.
                mcp_tool:
                    type: string
                    description: Unredacted MCP tool name from the transcript.
                request_id:
                    type: string
                    description: Provider API request identifier (e.g. Claude's req_*) the attribution applies to.
            description: Transcript-derived MCP attribution for one model API request. Claude redacts user-configured MCP server names to 'custom' on its OTEL telemetry, but records the real names in the local session transcript; hooks ship them here so ingest can restore the redacted names.
            required:
                - request_id
        HookMCPData:
            type: object
            properties:
                command:
                    type: string
                    description: MCP server command, when available.
                result_json:
                    type: string
                    description: JSON-encoded MCP tool result, when reported as a string.
                server_identity:
                    type: string
                    description: Stable server identity inferred by the hook adapter.
                server_name:
                    type: string
                    description: Provider-reported MCP server name.
                url:
                    type: string
                    description: MCP server URL, when available.
            description: MCP feature payload.
        HookMessageData:
            type: object
            properties:
                duration_ms:
                    type: number
                    description: Message or thinking-block duration in milliseconds, when reported.
                    format: double
                role:
                    type: string
                    description: Message role, e.g. assistant or user.
                text:
                    type: string
                    description: Message text.
            description: Assistant/user message payload.
        HookNotificationData:
            type: object
            properties:
                message:
                    type: string
                    description: Notification message.
                title:
                    type: string
                    description: Notification title.
                type:
                    type: string
                    description: Notification type.
            description: Local agent notification payload.
        HookPromptAttachmentEntry:
            type: object
            properties:
                attachment_kind:
                    type: string
                    description: Provider attachment kind, such as file or directory.
                content:
                    type: string
                    description: Attachment text visible to the model.
                display_path:
                    type: string
                    description: Provider display path for the attachment, when available.
                entry_uuid:
                    type: string
                    description: Provider transcript entry UUID. Used as the stable attachment identifier.
                file_path:
                    type: string
                    description: Absolute provider-reported file or directory path, when available.
                num_lines:
                    type: integer
                    description: Number of lines included in the attachment window, when reported.
                    format: int64
                prompt_id:
                    type: string
                    description: Prompt identifier of the user turn this attachment belongs to, when the transcript parent chain resolves.
                prompt_sha256:
                    type: string
                    description: Lowercase hex SHA-256 of the trimmed prompt text stored for the parent user message, when available.
                start_line:
                    type: integer
                    description: First one-based source line included in the attachment window, when reported.
                    format: int64
                timestamp:
                    type: string
                    description: Provider transcript timestamp for this attachment, when available.
                total_lines:
                    type: integer
                    description: Total source file lines, when reported.
                    format: int64
            description: Transcript-derived content that a provider attached to a submitted prompt, such as Claude Code @file and @directory mentions.
            required:
                - entry_uuid
                - attachment_kind
                - content
        HookPromptData:
            type: object
            properties:
                text:
                    type: string
                    description: User prompt text.
            description: Prompt feature payload.
        HookSkillData:
            type: object
            properties:
                name:
                    type: string
                    description: Activated skill name.
                    maxLength: 256
                raw_sha256:
                    type: string
                    description: SHA-256 of the raw skill manifest, if available.
                    maxLength: 128
                source:
                    type: string
                    description: Skill source or namespace, if available.
                    maxLength: 256
                source_level:
                    type: string
                    description: Scope where the skill was resolved, if available.
                    maxLength: 64
                source_path:
                    type: string
                    description: Local path where the skill was resolved, if available.
                    maxLength: 4096
            description: Skill activation payload.
            required:
                - name
        HookSourceUsage:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Total hook events for this source
                    format: int64
                source:
                    type: string
                    description: Hook source (from attributes.gram.hook.source)
            description: Hook source usage statistics
            required:
                - source
                - event_count
        HookToolCallData:
            type: object
            properties:
                duration_ms:
                    type: number
                    description: Tool execution duration in milliseconds, when reported.
                    format: double
                error:
                    description: Tool error payload.
                id:
                    type: string
                    description: Provider tool call identifier.
                input:
                    description: Tool input payload.
                is_interrupt:
                    type: boolean
                    description: Whether the failure was caused by user interruption.
                name:
                    type: string
                    description: Tool name.
                output:
                    description: Tool output payload.
                permission_type:
                    type: string
                    description: Permission type requested by the agent, when applicable.
                status:
                    type: string
                    description: Provider-reported tool call status, when available.
            description: Tool call feature payload.
        HookTraceSummary:
            type: object
            properties:
                block_reason:
                    type: string
                    description: Reason set when hook_status is 'blocked' (e.g. shadow-MCP guard rejection)
                event_source:
                    type: string
                    description: Event source (from materialized column)
                gram_urn:
                    type: string
                    description: Speakeasy URN associated with this hook trace
                hook_source:
                    type: string
                    description: Hook source (from attributes.gram.hook.source)
                hook_status:
                    type: string
                    description: Hook execution status
                    enum:
                        - success
                        - failure
                        - pending
                        - blocked
                log_count:
                    type: integer
                    description: Total number of logs in this trace
                    format: int64
                skill_name:
                    type: string
                    description: Skill name (from materialized column, only for Skill tool)
                start_time_unix_nano:
                    type: string
                    description: Earliest log timestamp in Unix nanoseconds (string for JS int64 precision)
                tool_name:
                    type: string
                    description: Tool name (from materialized column)
                tool_source:
                    type: string
                    description: Tool call source (from materialized column)
                trace_id:
                    type: string
                    description: Trace ID (32 hex characters)
                    pattern: ^[a-f0-9]{32}$
                user_email:
                    type: string
                    description: User email (from attributes.user.email)
            description: Summary information for a hook trace
            required:
                - trace_id
                - start_time_unix_nano
                - log_count
                - gram_urn
        HookUsageData:
            type: object
            properties:
                cache_read_tokens:
                    type: integer
                    description: Cache read token count.
                    format: int64
                cache_write_tokens:
                    type: integer
                    description: Cache write token count.
                    format: int64
                cost:
                    type: number
                    description: Reported cost.
                    format: double
                input_tokens:
                    type: integer
                    description: Input token count.
                    format: int64
                loop_count:
                    type: integer
                    description: Agent loop count, when reported.
                    format: int64
                output_tokens:
                    type: integer
                    description: Output token count.
                    format: int64
                status:
                    type: string
                    description: Provider-reported usage or session status, when available.
            description: Token and cost usage payload.
        HooksBreakdownRow:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Total events for this combination
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failures for this combination
                    format: int64
                hook_source:
                    type: string
                    description: Hook source (e.g. claude-desktop, cursor)
                server_name:
                    type: string
                    description: Server name ('local' for non-MCP tools)
                tool_name:
                    type: string
                    description: Tool name
                user_email:
                    type: string
                    description: User email address
            description: 'Cross-dimensional aggregation row: one entry per unique (user, server, hook_source, tool) combination'
            required:
                - user_email
                - server_name
                - hook_source
                - tool_name
                - event_count
                - failure_count
        HooksServerSummary:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Total number of hook events for this server
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool completions (PostToolUseFailure events)
                    format: int64
                failure_rate:
                    type: number
                    description: Failure rate as a decimal (0.0 to 1.0)
                    format: double
                server_name:
                    type: string
                    description: Server name (extracted from tool name, or 'local' for non-MCP tools)
                success_count:
                    type: integer
                    description: Number of successful tool completions (PostToolUse events)
                    format: int64
                unique_tools:
                    type: integer
                    description: Number of unique tools used for this server
                    format: int64
            description: Aggregated hooks metrics for a single server
            required:
                - server_name
                - event_count
                - unique_tools
                - success_count
                - failure_count
                - failure_rate
        HooksStatus:
            type: object
            properties:
                agent_hooks_key:
                    type: boolean
                    description: An active hooks-scoped API key exists, as minted by the hooks setup dialog, the plugin download or the setup wizard.
                anthropic_inference_hooks:
                    type: boolean
                    description: An enabled Anthropic inference hooks integration is connected.
                configured:
                    type: boolean
                    description: True when at least one hook source is configured for the organization.
            description: Whether the organization has hook telemetry configured. True when any source is set up; it says nothing about whether traffic has arrived.
            required:
                - configured
                - agent_hooks_key
                - anthropic_inference_hooks
        HooksTimeSeriesPoint:
            type: object
            properties:
                bucket_start_ns:
                    type: string
                    description: Bucket start time in Unix nanoseconds (string for JS int64 precision)
                event_count:
                    type: integer
                    description: Number of events in this bucket
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed hook events in this bucket
                    format: int64
                server_name:
                    type: string
                    description: Server name
                user_email:
                    type: string
                    description: User email address
            description: A single time-series bucket for hooks activity
            required:
                - bucket_start_ns
                - server_name
                - user_email
                - event_count
                - failure_count
        HooksUserSummary:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Total number of hook events for this user
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool completions (PostToolUseFailure events)
                    format: int64
                failure_rate:
                    type: number
                    description: Failure rate as a decimal (0.0 to 1.0)
                    format: double
                success_count:
                    type: integer
                    description: Number of successful tool completions (PostToolUse events)
                    format: int64
                unique_tools:
                    type: integer
                    description: Number of unique tools used by this user
                    format: int64
                user_email:
                    type: string
                    description: User email address
            description: Aggregated hooks metrics for a single user
            required:
                - user_email
                - event_count
                - unique_tools
                - success_count
                - failure_count
                - failure_rate
        IdentityChainingPreparation:
            type: object
            properties:
                binding_id:
                    type: string
                client_id:
                    type: string
                    description: Exact selected remote_session_client row ID, when available.
                connection_scopes:
                    type: array
                    items:
                        type: string
                    description: 'Scopes preparing identity chaining again would record now, sorted: what an interactive sign-in through the selected client requests for this server, or the recorded scopes when the binding has no server connection to follow or the connection names only OpenID Connect scopes while the recorded ones name others. Returned by readEMA and prepareEMA when a client is selected.'
                ema_providers:
                    $ref: '#/components/schemas/EMAProviderOrder'
                external_client_id:
                    type: string
                    description: Public OAuth client identifier, never a secret.
                generation:
                    type: integer
                    format: int64
                grant_source:
                    type: string
                    description: Provenance of recorded grants, not provider trust.
                grant_types:
                    type: array
                    items:
                        type: string
                    description: Null means unknown; an empty array means no recorded grants.
                issuer:
                    type: string
                last_accepted_at:
                    type: string
                    description: When the vendor last accepted an assertion for this binding from a provider that can serve it now, so chaining has worked for it. Omitted when none is recorded for a usable provider or acceptance could not be read. Returned by readEMA only.
                    format: date-time
                remediation:
                    type: string
                    description: Safe next action without provider bodies or credentials.
                resource:
                    type: string
                retryable:
                    type: boolean
                scopes:
                    type: array
                    items:
                        type: string
                    description: Scopes recorded on the binding when identity chaining was turned on. Identity chaining requests exactly these, without OpenID Connect scopes; when that leaves none, an ID-JAG naming a scope outside these is rejected. Changes to the server connection apply only when identity chaining is prepared again.
                scopes_out_of_date:
                    type: boolean
                    description: True when connection_scopes differs from scopes; prepareEMA with the current expected_generation applies connection_scopes. Returned by readEMA and prepareEMA when a client is selected.
                stage:
                    type: string
                    enum:
                        - selection
                        - eligibility
                        - registration
                        - discovery
                        - publication
                state:
                    type: string
                    description: Preparation state; readiness never proves user access.
                    enum:
                        - unsupported_profile
                        - incomplete_metadata
                        - unknown_grants
                        - manual_setup_required
                        - configuration_required
                        - in_progress
                        - indeterminate
                        - provider_rejection
                        - transient_failure
                        - published_acceptance_unverified
                        - ready
                        - unlinked
            required:
                - state
                - stage
                - remediation
                - retryable
                - generation
                - resource
                - scopes
                - grant_source
        IdentityDirectory:
            type: object
            properties:
                cost_center_name:
                    type: string
                    description: The directory cost centre.
                department_name:
                    type: string
                    description: The directory department.
                division_name:
                    type: string
                    description: The directory division.
                employee_type:
                    type: string
                    description: The directory employment type.
                groups:
                    type: array
                    items:
                        type: string
                    description: The directory groups the identity currently belongs to.
                job_title:
                    type: string
                    description: The directory job title.
            description: 'WorkOS Directory Sync attributes for an identity. Every field is mapped by the customer''s IdP: scalar attributes are absent when unset or blank, and ''groups'' is always present, empty when the identity belongs to none.'
            required:
                - groups
        IdentityModel:
            type: object
            properties:
                canonical_urn:
                    type: string
                    description: The identity URN clients should navigate to. Resolving any URN for the same subject returns this one, so links built from different identifiers converge on a single page.
                directory:
                    $ref: '#/components/schemas/IdentityDirectory'
                display_name:
                    type: string
                    description: The subject's name, falling back to its primary email.
                emails:
                    type: array
                    items:
                        type: string
                    description: Every address the subject is known by — directory email first, then linked AI account emails. Telemetry and cost aggregate over this set.
                external_user_ids:
                    type: array
                    items:
                        type: string
                    description: The identifiers agents report for this subject. Risk findings key on these.
                kind:
                    type: string
                    description: 'What sort of subject this is: ''user'' for a directory user, ''apikey'' for a subject acting under an API key, ''agent'' for an agent identity, or ''unattributed'' for activity that cannot be attributed to exactly one directory user — an identifier matching no directory row, or one several members claim.'
                    enum:
                        - user
                        - apikey
                        - agent
                        - unattributed
                photo_url:
                    type: string
                    description: The subject's avatar, when the directory supplied one.
                user_ids:
                    type: array
                    items:
                        type: string
                    description: The Speakeasy user ids this identity resolves to, the first being the directory owner. Empty when the subject matches no directory row. Audit logs, chats, user sessions and plugin assignments key on these.
                workos_user_id:
                    type: string
                    description: The WorkOS user id, which RBAC role assignments key on. Absent for subjects with no WorkOS link.
            description: One subject with every identifier its activity is keyed under, so a client can query each subsystem with the identifier that subsystem expects.
            required:
                - kind
                - canonical_urn
                - display_name
                - user_ids
                - emails
                - external_user_ids
                - directory
        IdentityProviderConnectionActiveKey:
            type: object
            properties:
                activated_at:
                    type: string
                    description: ISO 8601 timestamp when the key became the signer.
                    format: date-time
                id:
                    type: string
                    description: JSON Web Key row ID.
                    format: uuid
                kid:
                    type: string
                    description: Key ID as published in the JWKS document.
            description: The published signing key the identity provider currently trusts. Omitted after revocation.
            required:
                - id
                - kid
                - activated_at
        IdentityProviderConnectionApplication:
            type: object
            properties:
                features:
                    type: array
                    items:
                        type: string
                first_seen_at:
                    type: string
                    format: date-time
                group_assignments:
                    type: integer
                    description: Live group assignments.
                    format: int64
                label:
                    type: string
                    description: Admin-facing label. Admin-editable; never a key.
                last_seen_at:
                    type: string
                    format: date-time
                name:
                    type: string
                    description: Okta application template name.
                okta_app_id:
                    type: string
                    description: Okta application id.
                removed_at:
                    type: string
                    description: Set when the application disappeared from a run; only returned with include_removed.
                    format: date-time
                sign_on_mode:
                    type: string
                status:
                    type: string
                    description: ACTIVE or INACTIVE.
                user_assignments:
                    type: integer
                    description: Live direct and group-derived user assignments.
                    format: int64
            description: One Okta application in the snapshot, keyed by its Okta id.
            required:
                - okta_app_id
                - label
                - name
                - sign_on_mode
                - status
                - features
                - user_assignments
                - group_assignments
                - first_seen_at
                - last_seen_at
        IdentityProviderConnectionApplicationsSync:
            type: object
            properties:
                requested_at:
                    type: string
                    description: ISO 8601 timestamp of the last syncApplications call; a request newer than synced_at runs on the next coordinator pass.
                    format: date-time
                synced_at:
                    type: string
                    description: ISO 8601 timestamp when the last completed run started. Omitted until the first run.
                    format: date-time
            description: Watermarks of the scheduled applications snapshot. The snapshot is reconciled on a fixed platform-wide schedule.
        IdentityProviderConnectionChecklistItem:
            type: object
            properties:
                completed:
                    type: boolean
                    description: Whether the last verification observed this step done. Omitted for steps the server cannot observe; the administrator tracks those.
                description:
                    type: string
                    description: What to do in the console, including any value copied from this connection.
                details:
                    type: array
                    items:
                        type: string
                    description: 'Supporting lines under the description: ordered sub-steps for the public-key step, otherwise notes or the values to enter. Empty when the description says it all.'
                group:
                    type: string
                    description: 'Which phase the step belongs to: connect (the service app the connection authenticates with) or cross_app_access (the AI agent).'
                    enum:
                        - connect
                        - cross_app_access
                key:
                    type: string
                    description: Stable step identifier.
                    enum:
                        - add_oin_app
                        - create_api_services_app
                        - public_key_auth
                        - dpop
                        - grant_scopes
                        - assign_admin_roles
                        - submit_client_id
                        - register_ai_agent
                        - link_agent_app
                        - activate_agent_app
                        - record_ai_agent
                        - add_agent_public_key
                        - first_resource_connection
                title:
                    type: string
                    description: Short step title.
            description: One step the organization administrator completes in the identity provider's console. Ordered; keys are stable across responses.
            required:
                - key
                - group
                - title
                - description
                - details
        IdentityProviderConnectionReconcileRun:
            type: object
            properties:
                applications_added:
                    type: integer
                    format: int64
                applications_removed:
                    type: integer
                    format: int64
                applications_seen:
                    type: integer
                    description: Applications in the snapshot after skipping Okta-internal ones.
                    format: int64
                assignments_added:
                    type: integer
                    format: int64
                assignments_removed:
                    type: integer
                    format: int64
                error:
                    type: string
                    description: Typed reason when the run failed. rate_limited and okta_unreachable are retried before being recorded; superseded means a newer run applied first; discarded means the connection stopped being verified during the run; interrupted means the worker died.
                    enum:
                        - rate_limited
                        - credential_rejected
                        - okta_unreachable
                        - client_unavailable
                        - superseded
                        - discarded
                        - interrupted
                finished_at:
                    type: string
                    description: Omitted while running.
                    format: date-time
                id:
                    type: string
                    description: Run ID.
                    format: uuid
                skipped_app_ids:
                    type: array
                    items:
                        type: string
                    description: Okta-internal application ids left out of the snapshot.
                started_at:
                    type: string
                    format: date-time
                status:
                    type: string
                    description: running, succeeded, or failed.
                    enum:
                        - running
                        - succeeded
                        - failed
                truncated:
                    type: boolean
                    description: Whether a listing hit the page or application cap; nothing missing from a truncated listing is removed.
            description: One applications snapshot run and the changes it applied.
            required:
                - id
                - status
                - started_at
                - applications_seen
                - applications_added
                - applications_removed
                - assignments_added
                - assignments_removed
                - skipped_app_ids
                - truncated
        InferenceSpendCap:
            type: object
            properties:
                credits_used:
                    type: number
                    description: Monthly usage in USD
                    format: double
                disabled:
                    type: boolean
                    description: Whether the platform-managed key is disabled
                key_type:
                    type: string
                    description: The platform-managed inference function
                    enum:
                        - chat
                        - internal
                monthly_credits:
                    type: integer
                    description: The enforced monthly spend cap in USD
                    format: int64
            required:
                - key_type
                - credits_used
                - monthly_credits
                - disabled
        InfoResponseBody:
            type: object
            properties:
                accepted_signup_offer_flow:
                    type: string
                    description: Display-only signup offer variant for an accepted promotion; not billing eligibility
                active_organization_dashboard_url:
                    type: string
                    description: Dashboard base URL of the platform host the active organization lives on. Set only for an ordinary session whose request arrived on a different platform host; the dashboard moves there.
                    format: uri
                active_organization_id:
                    type: string
                gram_account_type:
                    type: string
                has_active_subscription:
                    type: boolean
                    description: Whether the organization has an active billing subscription
                impersonator_email:
                    type: string
                    description: The WorkOS Dashboard operator who initiated this impersonation session. Empty for ordinary authentication.
                is_admin:
                    type: boolean
                organization_override:
                    type: boolean
                    description: Whether this is a validated, time-bounded organization support session.
                organization_override_expires_at:
                    type: string
                    description: Fixed expiration of the organization support session.
                    format: date-time
                organizations:
                    type: array
                    items:
                        $ref: '#/components/schemas/OrganizationEntry'
                trial:
                    $ref: '#/components/schemas/Trial'
                user_display_name:
                    type: string
                user_email:
                    type: string
                user_id:
                    type: string
                user_photo_url:
                    type: string
                user_signature:
                    type: string
                whitelisted:
                    type: boolean
                    description: Whether the organization is whitelisted to access the platform
            required:
                - user_id
                - user_email
                - is_admin
                - organization_override
                - active_organization_id
                - organizations
                - gram_account_type
                - has_active_subscription
                - whitelisted
        IngestHookPayload:
            type: object
            properties:
                data:
                    $ref: '#/components/schemas/HookIngestData'
                event:
                    $ref: '#/components/schemas/HookIngestEvent'
                idempotency_key:
                    type: string
                    description: Optional per-invocation token reused across retries so the server stores a redelivered event exactly once.
                raw:
                    description: Original provider payload for debugging. The backend does not use this for feature behavior.
                schema_version:
                    type: string
                    description: Contract version. The current version is hook.ingest.v1.
                session:
                    $ref: '#/components/schemas/HookIngestSession'
                source:
                    $ref: '#/components/schemas/HookIngestSource'
            description: Feature-first unified hook event payload.
            required:
                - schema_version
                - source
                - event
        IngestHookResult:
            type: object
            properties:
                decision:
                    type: string
                    description: Whether the local hook should allow or deny the action.
                    enum:
                        - allow
                        - deny
                effects:
                    type: object
                    description: Optional side-effect hints for hook SDKs.
                    additionalProperties: true
                message:
                    type: string
                    description: User-facing decision message.
                reason:
                    type: string
                    description: Machine-readable decision reason.
            description: Provider-neutral decision returned by the unified hook endpoint.
            required:
                - decision
        IngestRequestBody:
            type: object
            properties:
                data:
                    $ref: '#/components/schemas/HookIngestData'
                event:
                    $ref: '#/components/schemas/HookIngestEvent'
                raw:
                    description: Original provider payload for debugging. The backend does not use this for feature behavior.
                schema_version:
                    type: string
                    description: Contract version. The current version is hook.ingest.v1.
                session:
                    $ref: '#/components/schemas/HookIngestSession'
                source:
                    $ref: '#/components/schemas/HookIngestSource'
            required:
                - schema_version
                - source
                - event
        IngestRequestBody2:
            type: object
            properties:
                additional_provider_specific_params:
                    type: object
                    additionalProperties: true
                images:
                    type: array
                    items:
                        type: string
                input_type:
                    type: string
                    enum:
                        - request
                        - response
                litellm_call_id:
                    type: string
                litellm_trace_id:
                    type: string
                litellm_version:
                    type: string
                model:
                    type: string
                request_data:
                    $ref: '#/components/schemas/LiteLLMRequestData'
                request_headers:
                    type: object
                    additionalProperties:
                        type: string
                structured_messages:
                    type: array
                    items:
                        $ref: '#/components/schemas/LiteLLMStructuredMessage'
                texts:
                    type: array
                    items:
                        type: string
                tool_calls:
                    type: array
                    items: {}
                tools:
                    type: array
                    items: {}
            required:
                - input_type
                - request_data
        InstanceMcpServer:
            type: object
            properties:
                url:
                    type: string
                    description: The address of the MCP server
            required:
                - url
        Integration:
            type: object
            properties:
                package_description:
                    type: string
                package_description_raw:
                    type: string
                package_id:
                    type: string
                package_image_asset_id:
                    type: string
                package_keywords:
                    type: array
                    items:
                        type: string
                package_name:
                    type: string
                package_summary:
                    type: string
                package_title:
                    type: string
                package_url:
                    type: string
                tool_names:
                    type: array
                    items:
                        type: string
                version:
                    type: string
                    description: The latest version of the integration
                version_created_at:
                    type: string
                    format: date-time
                versions:
                    type: array
                    items:
                        $ref: '#/components/schemas/IntegrationVersion'
            required:
                - package_id
                - package_name
                - package_title
                - package_summary
                - version
                - version_created_at
                - tool_names
        IntegrationEntry:
            type: object
            properties:
                package_id:
                    type: string
                package_image_asset_id:
                    type: string
                package_keywords:
                    type: array
                    items:
                        type: string
                package_name:
                    type: string
                package_summary:
                    type: string
                package_title:
                    type: string
                package_url:
                    type: string
                tool_names:
                    type: array
                    items:
                        type: string
                version:
                    type: string
                version_created_at:
                    type: string
                    format: date-time
            required:
                - package_id
                - package_name
                - version
                - version_created_at
                - tool_names
        IntegrationVersion:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                version:
                    type: string
            required:
                - version
                - created_at
        InternalSessionIssuer:
            type: object
            properties:
                can_enable:
                    type: boolean
                    description: Whether deployment readiness, rollout and a verified email domain currently allow enabling this issuer. The caller still needs organization administrator access.
                issuer:
                    type: string
                    description: Issuer URI to register with supported services. It never changes.
                jwks_uri:
                    type: string
                    description: Public verification keys.
                keys:
                    type: array
                    items:
                        $ref: '#/components/schemas/InternalSessionIssuerKey'
                    description: Published keys.
                kms_cleanup_pending:
                    type: integer
                    description: Revoked keys whose signing material is not yet disabled. Speakeasy retries until it is.
                    format: int64
                replacement_error:
                    type: string
                    description: 'Set only by a compromised rotation whose replacement key could not be activated: the keys are contained, the issuer stays keyless, and repeating the call retries the replacement.'
                rotation_ready_at:
                    type: string
                    description: When a pending rotation can be activated.
                    format: date-time
                state:
                    type: string
                    description: 'unavailable: not offered to this organization yet. verified_domain_required: needs at least one verified email domain. setup_required: not enabled yet. enabled: Speakeasy signs with it. disabled: an admin turned signing off. signing_paused: enabled, but Speakeasy has paused all signing. keyless: every key was revoked after a compromise and no replacement is active yet.'
                    enum:
                        - unavailable
                        - verified_domain_required
                        - setup_required
                        - enabled
                        - disabled
                        - signing_paused
                        - keyless
            required:
                - state
                - can_enable
                - keys
                - kms_cleanup_pending
        InternalSessionIssuerKey:
            type: object
            properties:
                kid:
                    type: string
                    description: Key ID.
                state:
                    type: string
                    description: Lifecycle state.
                    enum:
                        - pending
                        - active
                        - retired
            required:
                - kid
                - state
        InterruptTurnRequestBody:
            type: object
            properties:
                assistant_id:
                    type: string
                    description: The assistant whose conversation should stop generating.
                    format: uuid
                chat_id:
                    type: string
                    description: The conversation to stop, as returned by sendMessage.
                    format: uuid
            required:
                - assistant_id
                - chat_id
        InterruptTurnResult:
            type: object
            properties:
                cancelled_queued:
                    type: integer
                    description: How many turns were dropped from the conversation's queue before any runtime claimed them.
                    format: int64
                interrupted:
                    type: boolean
                    description: Whether a turn in flight on the assistant runtime was cancelled.
                stopped:
                    type: boolean
                    description: Whether the call stopped anything. False means nothing was generating — the reply had already finished, or the conversation never started a turn.
            required:
                - stopped
                - interrupted
                - cancelled_queued
        IssuerConvergenceCandidate:
            type: object
            properties:
                client_count:
                    type: integer
                    description: Number of non-deleted remote_session_clients that would move onto the target issuer.
                    format: int64
                endpoint_mismatches:
                    type: array
                    items:
                        $ref: '#/components/schemas/IssuerFieldMismatch'
                    description: The authorization-server metadata fields (issuer, token_endpoint, authorization_endpoint) that differ from the target, with both sides' values. Non-empty blocks the migration.
                issuer:
                    $ref: '#/components/schemas/RemoteSessionIssuer'
                organization_id:
                    type: string
                    description: The organization that owns the candidate. Empty for a legacy project-scoped issuer written before this column existed.
                organization_name:
                    type: string
                    description: Display name of the owning organization. Empty when the organization has no synced metadata.
                warnings:
                    type: array
                    items:
                        $ref: '#/components/schemas/IssuerFieldMismatch'
                    description: Non-blocking divergences (oidc, passthrough, scopes_supported), with both sides' values. The target issuer's values become authoritative for the migrated clients.
            description: An organization- or project-level remote_session_issuer that names the same upstream authorization server as a global issuer, and so could be consolidated onto it.
            required:
                - issuer
                - organization_id
                - organization_name
                - client_count
                - endpoint_mismatches
                - warnings
        IssuerFieldMismatch:
            type: object
            properties:
                field:
                    type: string
                    description: 'The differing field''s name: issuer, token_endpoint, authorization_endpoint, oidc, passthrough, or scopes_supported.'
                source_value:
                    type: string
                    description: The source issuer's value for a scalar field, rendered as a string. Null when the source leaves the field unset, and null for a list-valued field.
                source_values:
                    type: array
                    items:
                        type: string
                    description: The source issuer's entries for a list-valued field. Absent for a scalar field, and absent when the source's list is empty.
                target_value:
                    type: string
                    description: The target issuer's value for a scalar field, rendered as a string. Null when the target leaves the field unset, and null for a list-valued field.
                target_values:
                    type: array
                    items:
                        type: string
                    description: The target issuer's entries for a list-valued field. Absent for a scalar field, and absent when the target's list is empty.
            description: One remote_session_issuer field whose value differs between the source and target of a consolidation, with both sides' values.
            required:
                - field
        IssuerMigratePreflight:
            type: object
            properties:
                can_migrate:
                    type: boolean
                    description: 'TRUE when the migration would succeed: no active identity-chaining bindings, endpoint mismatches, conflicting MCP-server bindings, or user-session issuers that trust the source.'
                client_count:
                    type: integer
                    description: Number of non-deleted remote_session_clients that would be re-pointed from the source issuer to the target issuer.
                    format: int64
                conflicting_mcp_server_names:
                    type: array
                    items:
                        type: string
                    description: Display names of MCP servers where both the source and the target issuer already have a client bound. Non-empty blocks the migration; detach one client per listed server and retry.
                ema_binding_count:
                    type: integer
                    description: Number of active identity-chaining bindings on the source. Non-zero blocks migration; explicitly unlink these bindings before migration, then prepare new bindings for the target.
                    format: int64
                endpoint_mismatches:
                    type: array
                    items:
                        $ref: '#/components/schemas/IssuerFieldMismatch'
                    description: The authorization-server metadata fields (issuer, token_endpoint, authorization_endpoint) that differ between source and target, with both sides' values. Non-empty blocks the migration.
                mcp_server_names:
                    type: array
                    items:
                        type: string
                    description: Display names of MCP servers attached to the source issuer's clients.
                target_tenant_client_count:
                    type: integer
                    description: Number of tenant-owned remote_session_clients already registered with the target issuer, BEFORE this migration. Any non-zero value blocks deleting the target issuer, and only the owning organizations can clear it, so a successful migration is effectively one-way.
                    format: int64
                trusted_user_session_issuer_count:
                    type: integer
                    description: Number of user_session_issuers that trust the source. Any non-zero value blocks migration.
                    format: int64
                warnings:
                    type: array
                    items:
                        $ref: '#/components/schemas/IssuerFieldMismatch'
                    description: Non-blocking divergences (oidc, passthrough, scopes_supported), with both sides' values. The target issuer's values become authoritative for the migrated clients.
            description: 'Authoritative impact summary for consolidating a tenant remote_session_issuer onto a global one: how many clients move, which MCP servers are affected, every blocker that would make the migration fail, and how many tenant-owned clients the target already carries.'
            required:
                - ema_binding_count
                - client_count
                - mcp_server_names
                - endpoint_mismatches
                - conflicting_mcp_server_names
                - warnings
                - trusted_user_session_issuer_count
                - can_migrate
                - target_tenant_client_count
        JSONWebKey:
            type: object
            properties:
                activated_at:
                    type: string
                    description: When the key last became the set's active signing key.
                    format: date-time
                created_at:
                    type: string
                    description: When the key was published.
                    format: date-time
                external_key_id:
                    type: string
                    description: The external key the key was minted from. Signing for this kid always uses exactly this key, even after the set is re-pointed at another external key.
                    format: uuid
                id:
                    type: string
                    description: The ID of the published key.
                    format: uuid
                json_web_key_set_id:
                    type: string
                    description: The key set the key is published in.
                    format: uuid
                key_state:
                    type: string
                    description: 'The lifecycle state of the key. pending: published for verifier cache warm-up but not signing yet. active: the key new signatures use; at most one per set. retired: no longer signing, still published so outstanding tokens keep verifying. revoked: withdrawn entirely; tokens signed with it stop verifying.'
                    enum:
                        - pending
                        - active
                        - retired
                        - revoked
                kid:
                    type: string
                    description: 'The key ID: the RFC 7638 SHA-256 thumbprint of the public key, base64url-encoded. Carried in the JWK document and in the header of every token signed with the key.'
                organization_id:
                    type: string
                    description: The organization that owns the key.
                public_jwk:
                    description: The public JWK document (RFC 7517) as published, including kid, alg and use.
                retired_at:
                    type: string
                    description: When the key last left active signing use.
                    format: date-time
                revoked_at:
                    type: string
                    description: When the key was revoked.
                    format: date-time
                updated_at:
                    type: string
                    description: When the key was last updated.
                    format: date-time
            description: A published JSON Web Key inside a key set.
            required:
                - id
                - organization_id
                - json_web_key_set_id
                - external_key_id
                - kid
                - key_state
                - public_jwk
                - created_at
                - updated_at
        JSONWebKeySet:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the key set was created.
                    format: date-time
                external_key_id:
                    type: string
                    description: 'The external key currently backing the set: new keys are published from it. Already-published keys keep signing with the external key they were minted from.'
                    format: uuid
                id:
                    type: string
                    description: The ID of the key set.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key set.
                organization_id:
                    type: string
                    description: The organization that owns the key set.
                updated_at:
                    type: string
                    description: When the key set was last updated.
                    format: date-time
            description: A JSON Web Key Set — a named collection of published public keys backed by an organization external key.
            required:
                - id
                - organization_id
                - external_key_id
                - name
                - created_at
                - updated_at
        JSONWebKeySetDeletePreflight:
            type: object
            properties:
                client_count:
                    type: integer
                    description: Number of live remote_session_clients referencing this set. Deleting the set is refused while this is non-zero.
                    format: int64
                client_ids:
                    type: array
                    items:
                        type: string
                    description: The client_id values of the referencing remote_session_clients, oldest first. Truncated when client_count exceeds the listing cap.
            required:
                - client_count
                - client_ids
        JudgeRequestBody:
            type: object
            properties:
                candidates:
                    type: array
                    items:
                        $ref: '#/components/schemas/LauncherCandidate'
                    description: Fuzzy-prefiltered candidates to rank.
                    maxItems: 32
                context:
                    $ref: '#/components/schemas/LauncherContext'
                query:
                    type: string
                    description: Text typed into the command palette so far.
                    maxLength: 200
            required:
                - query
                - candidates
        Key:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the key.
                    format: date-time
                created_by_user_id:
                    type: string
                    description: The human creator; immutable authorizer for agent keys
                delegated_grants:
                    $ref: '#/components/schemas/AgentDelegatedPolicy'
                delegated_grants_version:
                    type: integer
                    description: Delegated policy format version
                    format: int64
                expires_at:
                    type: string
                    description: Required expiry for an agent key; legacy keys may not expire.
                    format: date-time
                id:
                    type: string
                    description: The ID of the key
                key:
                    type: string
                    description: The token of the api key (only returned on key creation or rotation)
                key_prefix:
                    type: string
                    description: The store prefix of the api key for recognition
                last_accessed_at:
                    type: string
                    description: When the key was last accessed.
                    format: date-time
                name:
                    type: string
                    description: The name of the key
                organization_id:
                    type: string
                    description: The organization ID this key belongs to
                project_id:
                    type: string
                    description: The optional project ID this key is scoped to
                scopes:
                    type: array
                    items:
                        type: string
                    description: Legacy transport scopes; always empty for agent keys
                subject_urn:
                    type: string
                    description: Principal authenticated by this key; agent keys use agent:<uuid>
                updated_at:
                    type: string
                    description: When the key was last updated.
                    format: date-time
            required:
                - id
                - organization_id
                - created_by_user_id
                - name
                - key_prefix
                - scopes
                - created_at
                - updated_at
        KillswitchBatchUserBadgesRequest:
            type: object
            properties:
                user_ids:
                    type: array
                    items:
                        type: string
                    minItems: 1
                    maxItems: 100
            required:
                - user_ids
        KillswitchBatchUserBadgesResult:
            type: object
            properties:
                badges:
                    type: array
                    items:
                        $ref: '#/components/schemas/KillswitchUserBadge'
            required:
                - badges
        KillswitchCapability:
            type: object
            properties:
                key:
                    type: string
                    enum:
                        - mcp_tool_calls
                label:
                    type: string
            required:
                - key
                - label
        KillswitchComingSoonCapability:
            type: object
            properties:
                label:
                    type: string
            required:
                - label
        KillswitchConflict:
            type: object
            properties:
                message:
                    type: string
                name:
                    type: string
                    enum:
                        - operation_conflict
                        - version_conflict
            required:
                - name
                - message
        KillswitchCreateRequest:
            type: object
            properties:
                capability_key:
                    type: string
                    enum:
                        - mcp_tool_calls
                external_note:
                    type: string
                    maxLength: 500
                internal_note:
                    type: string
                    maxLength: 4000
                operation_id:
                    type: string
                    format: uuid
                schedule:
                    $ref: '#/components/schemas/KillswitchSchedule'
                scope:
                    $ref: '#/components/schemas/KillswitchScope'
                user_id:
                    type: string
            required:
                - operation_id
                - scope
                - schedule
                - external_note
                - internal_note
                - capability_key
                - user_id
        KillswitchDetail:
            type: object
            properties:
                capability_key:
                    type: string
                    enum:
                        - mcp_tool_calls
                capability_label:
                    type: string
                external_note:
                    type: string
                history:
                    type: array
                    items:
                        $ref: '#/components/schemas/KillswitchHistoryEvent'
                    maxItems: 100
                history_truncated:
                    type: boolean
                id:
                    type: string
                    format: uuid
                internal_note:
                    type: string
                schedule:
                    $ref: '#/components/schemas/KillswitchSchedule'
                scope:
                    $ref: '#/components/schemas/KillswitchScope'
                status:
                    type: string
                    enum:
                        - active
                        - scheduled
                        - expired
                        - lifted
                user_id:
                    type: string
                version:
                    type: integer
                    format: int64
            required:
                - external_note
                - internal_note
                - history
                - history_truncated
                - id
                - capability_key
                - capability_label
                - user_id
                - version
                - status
                - scope
                - schedule
        KillswitchEditRequest:
            type: object
            properties:
                expected_version:
                    type: integer
                    format: int64
                external_note:
                    type: string
                    maxLength: 500
                id:
                    type: string
                    format: uuid
                internal_note:
                    type: string
                    maxLength: 4000
                operation_id:
                    type: string
                    format: uuid
                schedule:
                    $ref: '#/components/schemas/KillswitchSchedule'
                scope:
                    $ref: '#/components/schemas/KillswitchScope'
            required:
                - operation_id
                - scope
                - schedule
                - external_note
                - internal_note
                - id
                - expected_version
        KillswitchHistoryEvent:
            type: object
            properties:
                action:
                    type: string
                    enum:
                        - created
                        - edited
                        - lifted
                        - expired
                        - restored
                actor_display_name:
                    type: string
                actor_user_id:
                    type: string
                changed_at:
                    type: string
                    format: date-time
                external_note:
                    type: string
                internal_note:
                    type: string
                schedule:
                    $ref: '#/components/schemas/KillswitchSchedule'
                scope:
                    $ref: '#/components/schemas/KillswitchScope'
                sequence:
                    type: integer
                    format: int64
                status:
                    type: string
                    enum:
                        - active
                        - scheduled
                        - expired
                        - lifted
                version:
                    type: integer
                    format: int64
            required:
                - sequence
                - version
                - action
                - status
                - scope
                - schedule
                - external_note
                - internal_note
                - changed_at
        KillswitchLiftRequest:
            type: object
            properties:
                expected_version:
                    type: integer
                    format: int64
                id:
                    type: string
                    format: uuid
                operation_id:
                    type: string
                    format: uuid
            required:
                - operation_id
                - id
                - expected_version
        KillswitchLiftResult:
            type: object
            properties:
                remaining_overlaps:
                    type: array
                    items:
                        $ref: '#/components/schemas/KillswitchOverlap'
                    maxItems: 100
                result:
                    $ref: '#/components/schemas/KillswitchMutationReceipt'
                truncated:
                    type: boolean
            required:
                - result
                - remaining_overlaps
                - truncated
        KillswitchListCapabilitiesResult:
            type: object
            properties:
                capabilities:
                    type: array
                    items:
                        $ref: '#/components/schemas/KillswitchCapability'
                coming_soon:
                    type: array
                    items:
                        $ref: '#/components/schemas/KillswitchComingSoonCapability'
            required:
                - capabilities
                - coming_soon
        KillswitchListMCPServersResult:
            type: object
            properties:
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/KillswitchMCPServer'
            required:
                - servers
        KillswitchListResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/KillswitchSummary'
                    maxItems: 100
                next_cursor:
                    type: string
            required:
                - items
        KillswitchMCPServer:
            type: object
            properties:
                id:
                    type: string
                    format: uuid
                name:
                    type: string
                project_id:
                    type: string
                    format: uuid
                project_name:
                    type: string
                    description: The project's display name
            required:
                - id
                - name
                - project_id
                - project_name
        KillswitchMutationReceipt:
            type: object
            properties:
                id:
                    type: string
                    format: uuid
                replayed:
                    type: boolean
                version:
                    type: integer
                    format: int64
            required:
                - id
                - version
                - replayed
        KillswitchOverlap:
            type: object
            properties:
                id:
                    type: string
                    format: uuid
                schedule:
                    $ref: '#/components/schemas/KillswitchSchedule'
                scope:
                    $ref: '#/components/schemas/KillswitchScope'
                status:
                    type: string
                    enum:
                        - active
                        - scheduled
            required:
                - id
                - status
                - scope
                - schedule
        KillswitchPreviewOverlapsRequest:
            type: object
            properties:
                capability_key:
                    type: string
                    enum:
                        - mcp_tool_calls
                id:
                    type: string
                    format: uuid
                schedule:
                    $ref: '#/components/schemas/KillswitchSchedule'
                scope:
                    $ref: '#/components/schemas/KillswitchScope'
                user_id:
                    type: string
            required:
                - capability_key
                - user_id
                - scope
                - schedule
        KillswitchPreviewOverlapsResult:
            type: object
            properties:
                overlaps:
                    type: array
                    items:
                        $ref: '#/components/schemas/KillswitchOverlap'
                    maxItems: 100
                truncated:
                    type: boolean
            required:
                - overlaps
                - truncated
        KillswitchSchedule:
            type: object
            properties:
                end:
                    type: string
                    enum:
                        - until_lifted
                        - bounded
                ends_at:
                    type: string
                    format: date-time
                start:
                    type: string
                    enum:
                        - now
                        - scheduled
                starts_at:
                    type: string
                    format: date-time
            required:
                - start
                - end
        KillswitchScope:
            type: object
            properties:
                server_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    maxItems: 1000
                type:
                    type: string
                    enum:
                        - all_servers
                        - selected_servers
            required:
                - type
        KillswitchSummary:
            type: object
            properties:
                capability_key:
                    type: string
                    enum:
                        - mcp_tool_calls
                capability_label:
                    type: string
                id:
                    type: string
                    format: uuid
                schedule:
                    $ref: '#/components/schemas/KillswitchSchedule'
                scope:
                    $ref: '#/components/schemas/KillswitchScope'
                status:
                    type: string
                    enum:
                        - active
                        - scheduled
                        - expired
                        - lifted
                user_id:
                    type: string
                version:
                    type: integer
                    format: int64
            required:
                - id
                - capability_key
                - capability_label
                - user_id
                - version
                - status
                - scope
                - schedule
        KillswitchUserBadge:
            type: object
            properties:
                affected:
                    type: boolean
                affected_now:
                    type: boolean
                scheduled:
                    type: boolean
                user_id:
                    type: string
            required:
                - user_id
                - affected
                - affected_now
                - scheduled
        LLMClientUsage:
            type: object
            properties:
                activity_count:
                    type: integer
                    description: Number of messages (session mode) or tool calls (tool_call mode)
                    format: int64
                client_name:
                    type: string
                    description: Client/agent name (e.g., 'cursor', 'claude-code', 'cowork')
            description: Usage breakdown by LLM client/agent
            required:
                - client_name
                - activity_count
        LauncherCandidate:
            type: object
            properties:
                detail:
                    type: string
                    description: Short state description, such as 'MCP server · disabled'.
                    maxLength: 160
                id:
                    type: string
                    description: Caller-chosen stable identifier echoed back in the judgment.
                    maxLength: 200
                kind:
                    type: string
                    description: The candidate kind, such as page, mcp_server, plugin or marketplace.
                    maxLength: 64
                title:
                    type: string
                    description: Display title of the candidate.
                    maxLength: 120
                verbs:
                    type: array
                    items:
                        type: string
                        maxLength: 32
                    description: Verbs the caller may run on this candidate, such as open, enable, disable or publish.
                    maxItems: 8
            description: One item the palette could open or act on.
            required:
                - id
                - kind
                - title
        LauncherContext:
            type: object
            properties:
                route:
                    type: string
                    description: The current dashboard route path.
                    maxLength: 512
            description: The dashboard location the palette was opened from.
        LauncherJudgment:
            type: object
            properties:
                action:
                    type: object
                    description: Probability that the query asks for each of open, enable, disable, publish or unclear.
                    additionalProperties:
                        type: number
                        format: double
                disabled:
                    type: boolean
                    description: True when no intent service is configured; the other fields are then absent. When false, target, action, ready and latency_ms are always present.
                latency_ms:
                    type: integer
                    description: Round trip time to the intent service in milliseconds.
                    format: int64
                ready:
                    type: number
                    description: Probability that the query is unambiguous enough to act on the best candidate on Enter.
                    format: double
                target:
                    type: object
                    description: Probability that each candidate id, or 'none', is the item the user means.
                    additionalProperties:
                        type: number
                        format: double
            description: Probability distributions over the supplied candidates and verbs.
            required:
                - disabled
        ListAIDetectionUsersResult:
            type: object
            properties:
                detection:
                    $ref: '#/components/schemas/AIDetection'
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/AIDetectionUser'
                    description: Users the target was detected for, most recently seen first.
            required:
                - detection
                - users
        ListAIDetectionsResult:
            type: object
            properties:
                detections:
                    type: array
                    items:
                        $ref: '#/components/schemas/AIDetection'
                    description: Detected AI tools aggregated per target, most recently seen first.
            required:
                - detections
        ListAIIntegrationSchedulesResult:
            type: object
            properties:
                organization_id:
                    type: string
                    description: Organization the schedules belong to.
                provider:
                    type: string
                    description: AI provider identifier.
                schedules:
                    type: array
                    items:
                        $ref: '#/components/schemas/AIIntegrationScheduleState'
                    description: Scheduler state for each of the provider's sync schedules.
            description: Sync schedules for one provider integration. Empty when no config is set for the provider.
            required:
                - organization_id
                - provider
                - schedules
        ListActorAttributesResult:
            type: object
            properties:
                attributes:
                    type: array
                    items:
                        $ref: '#/components/schemas/ActorAttribute'
                    description: The member attributes available to target conditions, in editor display order.
            required:
                - attributes
        ListAgentsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/ManagedAgent'
                    description: The agents in this page.
                next_cursor:
                    type: string
                    description: Cursor for the next page; absent when exhausted.
            description: A page of managed agents, ordered by name.
            required:
                - items
        ListAiScanTargetsResult:
            type: object
            properties:
                etag:
                    type: string
                    description: Fingerprint of the served list; changes whenever the targets or their definitions change.
                list_version:
                    type: integer
                    description: Version of the served catalog; the value agents echo as target_list_version once they receive it.
                    format: int64
                targets:
                    type: array
                    items:
                        $ref: '#/components/schemas/AiScanTarget'
                    description: Every target in the organization's list, ordered by id.
            required:
                - list_version
                - etag
                - targets
        ListAllowedOriginsResult:
            type: object
            properties:
                allowed_origins:
                    type: array
                    items:
                        $ref: '#/components/schemas/AllowedOrigin'
                    description: The list of allowed origins
            required:
                - allowed_origins
        ListApprovalRequestsResult:
            type: object
            properties:
                requests:
                    type: array
                    items:
                        $ref: '#/components/schemas/ApprovalRequestSummary'
                    description: The list of approval requests
            description: A page of the approval queue.
            required:
                - requests
        ListAssetsResult:
            type: object
            properties:
                assets:
                    type: array
                    items:
                        $ref: '#/components/schemas/Asset'
                    description: The list of assets
            required:
                - assets
        ListAssistantMemoriesResult:
            type: object
            properties:
                memories:
                    type: array
                    items:
                        $ref: '#/components/schemas/AssistantMemory'
                    description: Assistant memories matching the query.
                next_cursor:
                    type: string
                    description: The cursor to be used for the next page of results.
            required:
                - memories
        ListAssistantsResult:
            type: object
            properties:
                assistants:
                    type: array
                    items:
                        $ref: '#/components/schemas/Assistant'
                    description: Assistants for the current project.
            required:
                - assistants
        ListAttributeKeysPayload:
            type: object
            properties:
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
            description: Payload for listing distinct attribute keys available for filtering
            required:
                - from
                - to
        ListAttributeKeysResult:
            type: object
            properties:
                keys:
                    type: array
                    items:
                        type: string
                    description: Distinct attribute keys. User attributes are prefixed with @
            description: Result of listing distinct attribute keys
            required:
                - keys
        ListAudienceOptionsResult:
            type: object
            properties:
                options:
                    type: array
                    items:
                        $ref: '#/components/schemas/AudienceOption'
                    description: Principals that can be given access.
            required:
                - options
        ListAudiencesResult:
            type: object
            properties:
                audiences:
                    type: array
                    items:
                        $ref: '#/components/schemas/PluginAudience'
                    description: Audiences that can be assigned to plugins.
            required:
                - audiences
        ListAuditLogFacetsForm:
            type: object
            properties:
                project_slug:
                    type: string
                    description: Project slug to filter facet values to a specific project.
        ListAuditLogFacetsResult:
            type: object
            properties:
                actions:
                    type: array
                    items:
                        $ref: '#/components/schemas/AuditLogFacetOption'
                    description: Available action facets
                actors:
                    type: array
                    items:
                        $ref: '#/components/schemas/AuditLogFacetOption'
                    description: Available actor facets
                surfaces:
                    type: array
                    items:
                        $ref: '#/components/schemas/AuditLogFacetOption'
                    description: Available acting surface facets
            required:
                - actors
                - actions
                - surfaces
        ListAuditLogsForm:
            type: object
            properties:
                acting_surface:
                    type: string
                    description: Acting surface to filter audit logs to changes made through one surface, e.g. 'platform_mcp' to review agent-driven activity alone.
                action:
                    type: string
                    description: Action to filter audit logs to a specific action.
                actor_id:
                    type: string
                    description: Actor ID to filter audit logs to a specific actor.
                cursor:
                    type: string
                    description: The cursor for paginating through audit logs.
                from:
                    type: string
                    description: Inclusive start of the window to list changes from. Omit for the whole history.
                    format: date-time
                project_slug:
                    type: string
                    description: Project slug to filter audit logs to a specific project.
                subject_id:
                    type: string
                    description: Subject ID to filter audit logs to a specific subject (e.g. a single assistant).
                subject_ids:
                    type: array
                    items:
                        type: string
                    description: Subject IDs to filter audit logs to a set of subjects at once, e.g. a resource together with the child resources whose events name the child as the subject. Matches any listed subject of any subject type, except that assistant activity events stay excluded unless subject_type is 'assistant'; combine with subject_type to pin the kind. Blank entries are ignored.
                    maxItems: 200
                subject_type:
                    type: string
                    description: Subject type to filter audit logs to a specific kind of subject. When omitted, assistant activity events are excluded; pass 'assistant' to list them.
                to:
                    type: string
                    description: Exclusive end of the window to list changes from. Omit for the whole history.
                    format: date-time
        ListAuditLogsResult:
            type: object
            properties:
                logs:
                    type: array
                    items:
                        $ref: '#/components/schemas/AuditLog'
                    description: List of audit logs
                next_cursor:
                    type: string
                    description: The cursor to be used for the next page of results.
            required:
                - logs
        ListBindingsResponseBody:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/PrincipalRemoteSessionBinding'
            required:
                - items
        ListBuiltinExclusionsResult:
            type: object
            properties:
                categories:
                    type: array
                    items:
                        $ref: '#/components/schemas/BuiltinExclusionCategory'
                    description: The library grouped by category.
                version:
                    type: string
                    description: Catalog checksum/version, for provenance.
            required:
                - version
                - categories
        ListBusinessMemoriesResponseBody:
            type: object
            properties:
                memories:
                    type: array
                    items:
                        $ref: '#/components/schemas/BusinessMemory'
                next_cursor:
                    type: string
            required:
                - memories
        ListBusinessMemoryContentScopesResponseBody:
            type: object
            properties:
                nodes:
                    type: array
                    items:
                        $ref: '#/components/schemas/BusinessMemoryContentScopeNode'
                    description: Namespace and exact-tag nodes in lexical order.
                total_memories:
                    type: integer
                    description: Total number of active memories, including memories without a content scope.
                    format: int64
            required:
                - nodes
                - total_memories
        ListCatalogResponseBody:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Pagination cursor for the next page
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalMCPServerEntry'
                    description: List of available MCP servers
            required:
                - servers
        ListChallengeBucketsResult:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChallengeBucket'
                    description: The challenge buckets.
                total:
                    type: integer
                    description: Total number of matching buckets for pagination.
                    format: int64
            required:
                - buckets
                - total
        ListChallengesResult:
            type: object
            properties:
                challenges:
                    type: array
                    items:
                        $ref: '#/components/schemas/AuthzChallenge'
                    description: The challenge events.
                total:
                    type: integer
                    description: Total number of matching challenges for pagination.
                    format: int64
            required:
                - challenges
                - total
        ListChatsResult:
            type: object
            properties:
                chats:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChatOverview'
                    description: The list of chats
                total:
                    type: integer
                    description: Total number of chats (before pagination)
                    format: int64
            required:
                - chats
                - total
        ListCimdClientPresetsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/CimdClientPreset'
            description: Result type for listing the CIMD preset catalog.
            required:
                - items
        ListCustomDetectionRulesResult:
            type: object
            properties:
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskCustomDetectionRule'
                    description: The list of custom detection rules.
            required:
                - rules
        ListCustomDomainMcpEndpointsResult:
            type: object
            properties:
                mcp_endpoints:
                    type: array
                    items:
                        $ref: '#/components/schemas/CustomDomainMcpEndpoint'
            description: Result of listing the MCP endpoints registered under an organization's custom domain.
            required:
                - mcp_endpoints
        ListCustomDomainsResult:
            type: object
            properties:
                dns_config:
                    $ref: '#/components/schemas/DomainDNSConfig'
                domains:
                    type: array
                    items:
                        $ref: '#/components/schemas/CustomDomain'
            description: Result of listing an organization's custom domains.
            required:
                - domains
                - dns_config
        ListDashboardsResult:
            type: object
            properties:
                built_in:
                    type: array
                    items:
                        $ref: '#/components/schemas/BuiltInDashboard'
                    description: The dashboards Speakeasy ships, the same in every project
                dashboards:
                    type: array
                    items:
                        $ref: '#/components/schemas/Dashboard'
                    description: Dashboards in the project, most recently updated first
            required:
                - dashboards
                - built_in
        ListDataExportRoutesResult:
            type: object
            properties:
                routes:
                    type: array
                    items:
                        $ref: '#/components/schemas/DataExportRoute'
                    description: Active data export routes in the selected project.
            required:
                - routes
        ListDataExportsForOrgResult:
            type: object
            properties:
                destinations:
                    type: array
                    items:
                        $ref: '#/components/schemas/Destination'
                    description: Active data export destinations across the active organization.
                routes:
                    type: array
                    items:
                        $ref: '#/components/schemas/DataExportRoute'
                    description: Active data export routes across the active organization.
            required:
                - destinations
                - routes
        ListDefinitionsResponseBody:
            type: object
            properties:
                definitions:
                    type: array
                    items:
                        $ref: '#/components/schemas/PlatformKillswitchDefinition'
            required:
                - definitions
        ListDeploymentForm:
            type: object
            properties:
                cursor:
                    type: string
                    description: The cursor to fetch results from
        ListDeploymentResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeploymentSummary'
                    description: A list of deployments
                next_cursor:
                    type: string
                    description: The cursor to fetch results from
                    example: 01jp3f054qc02gbcmpp0qmyzed
            required:
                - items
        ListDestinationsResult:
            type: object
            properties:
                destinations:
                    type: array
                    items:
                        $ref: '#/components/schemas/Destination'
                    description: Active data export destinations in the selected project.
            required:
                - destinations
        ListDeviceIntegrationProvidersResult:
            type: object
            properties:
                providers:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeviceIntegrationProvider'
                    description: Every available provider, sorted by id.
            required:
                - providers
        ListDeviceIntegrationSchedulesResult:
            type: object
            properties:
                organization_id:
                    type: string
                    description: Organization the schedules belong to.
                provider:
                    type: string
                    description: Provider identifier.
                schedules:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeviceIntegrationScheduleState'
                    description: State for each of the provider's sync schedules.
            description: Sync schedules for one provider integration. Empty when no config is set for the provider.
            required:
                - organization_id
                - provider
                - schedules
        ListDirectoryPeopleResult:
            type: object
            properties:
                counts:
                    $ref: '#/components/schemas/DirectoryPeopleStateCounts'
                next_cursor:
                    type: string
                    description: Cursor for the next page. Absent on the last page.
                people:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryPerson'
                    description: One page of directory profiles, ordered by profile ID.
            required:
                - people
                - counts
        ListDirectoryReviewItemsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryReviewItem'
                    description: Pending items, oldest first.
            required:
                - items
        ListDirectoryRoleMappingsResult:
            type: object
            properties:
                attributes:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryAttributeOption'
                    description: Distinct attribute values set on active directory users.
                groups:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryGroupOption'
                    description: Active directory groups in the organization.
                mappings:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryRoleMapping'
                    description: Live directory role mappings.
            required:
                - groups
                - attributes
                - mappings
        ListDistributionPluginsResult:
            type: object
            properties:
                plugins:
                    type: array
                    items:
                        $ref: '#/components/schemas/DistributionPlugin'
            required:
                - plugins
        ListEMAServicesResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/EMAService'
            description: Every service identity chaining reaches in the organization.
            required:
                - items
        ListEnvironmentsResult:
            type: object
            properties:
                environments:
                    type: array
                    items:
                        $ref: '#/components/schemas/Environment'
            description: Result type for listing environments
            required:
                - environments
        ListEventLogPayload:
            type: object
            properties:
                cursor:
                    type: string
                    description: Opaque cursor for pagination
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                kinds:
                    type: array
                    items:
                        type: string
                        enum:
                            - log
                            - span
                    description: Optional signal kind filter. Empty means both logs and spans.
                limit:
                    type: integer
                    description: Number of events to return (1-200)
                    default: 50
                    format: int64
                    minimum: 1
                    maximum: 200
                names:
                    type: array
                    items:
                        type: string
                    description: Optional event/span name filter. Values are ORed.
                search:
                    type: string
                    description: Optional case-insensitive substring match over event body and name
                sources:
                    type: array
                    items:
                        type: string
                    description: Optional source filter (canonicalized service names). Values are ORed.
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-26T10:00:00Z"
                    format: date-time
            description: Payload for listing org-scoped OpenTelemetry events
            required:
                - from
                - to
        ListEventLogResult:
            type: object
            properties:
                events:
                    type: array
                    items:
                        $ref: '#/components/schemas/EventLogEntry'
                    description: Events ordered newest first
                next_cursor:
                    type: string
                    description: Cursor for next page
                total_count:
                    type: integer
                    description: Number of events matching the filters, capped at 10000
                    format: int64
                total_count_capped:
                    type: boolean
                    description: True when total_count hit the cap and the true count is higher
            description: Result of listing org-scoped OpenTelemetry events
            required:
                - events
                - total_count
                - total_count_capped
        ListExternalCredentialsResult:
            type: object
            properties:
                credentials:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalCredentialSummary'
                    description: The organization's external credentials.
            required:
                - credentials
        ListExternalKeysResult:
            type: object
            properties:
                keys:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalKeySummary'
                    description: The organization's external keys.
            required:
                - keys
        ListFilterOptionsPayload:
            type: object
            properties:
                event_source:
                    type: string
                    description: Optional event source filter for the option list
                filter_type:
                    type: string
                    description: Type of filter to list options for
                    enum:
                        - api_key
                        - user
                        - internal_user
                        - agent
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
            description: Payload for listing filter options
            required:
                - from
                - to
                - filter_type
        ListFilterOptionsResult:
            type: object
            properties:
                options:
                    type: array
                    items:
                        $ref: '#/components/schemas/FilterOption'
                    description: List of filter options
            description: Result of listing filter options
            required:
                - options
        ListGlobalRemoteSessionIssuersResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/GlobalRemoteSessionIssuer'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for the platform-administrator global issuer listing.
            required:
                - items
        ListHooksTracesPayload:
            type: object
            properties:
                cursor:
                    type: string
                    description: Cursor for pagination (trace_id)
                filters:
                    type: array
                    items:
                        $ref: '#/components/schemas/LogFilter'
                    description: Filter conditions for the search query
                from:
                    type: string
                    description: Start time in ISO 8601 format (e.g., '2025-12-19T10:00:00Z')
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                limit:
                    type: integer
                    description: Number of items to return (1-1000)
                    default: 50
                    format: int64
                    minimum: 1
                    maximum: 1000
                sort:
                    type: string
                    description: Sort order
                    default: desc
                    enum:
                        - asc
                        - desc
                to:
                    type: string
                    description: End time in ISO 8601 format (e.g., '2025-12-19T11:00:00Z')
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
                types_to_include:
                    type: array
                    items:
                        type: string
                        enum:
                            - mcp
                            - local
                            - skill
                    description: Hook types to include (mcp, local, skill). If empty or not provided, includes all types.
                    example:
                        - mcp
                        - skill
            description: Payload for listing hook traces
            required:
                - from
                - to
        ListHooksTracesResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for next page
                traces:
                    type: array
                    items:
                        $ref: '#/components/schemas/HookTraceSummary'
                    description: List of hook trace summaries
            description: Result of listing hook traces
            required:
                - traces
        ListIdentityAccessResult:
            type: object
            properties:
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AccessibleMCPServer'
                    description: MCP servers accessible to this identity.
                skills:
                    type: array
                    items:
                        $ref: '#/components/schemas/AccessibleSkill'
                    description: Skills accessible to this identity.
            required:
                - servers
                - skills
        ListIdentityProviderConnectionApplicationsResult:
            type: object
            properties:
                applications:
                    type: array
                    items:
                        $ref: '#/components/schemas/IdentityProviderConnectionApplication'
                    description: Applications ordered by label, live rows first. Capped at 2000 rows, the same cap a run applies.
                last_run:
                    $ref: '#/components/schemas/IdentityProviderConnectionReconcileRun'
                sync:
                    $ref: '#/components/schemas/IdentityProviderConnectionApplicationsSync'
            required:
                - applications
                - sync
        ListInstancesResponseBody:
            type: object
            properties:
                instances:
                    type: array
                    items:
                        $ref: '#/components/schemas/LiteLLMInstance'
            required:
                - instances
        ListIntegrationsForm:
            type: object
            properties:
                keywords:
                    type: array
                    items:
                        type: string
                        maxLength: 20
                    description: Keywords to filter integrations by
        ListIntegrationsResult:
            type: object
            properties:
                integrations:
                    type: array
                    items:
                        $ref: '#/components/schemas/IntegrationEntry'
                    description: List of available third-party integrations
        ListInvitesResult:
            type: object
            properties:
                invitations:
                    type: array
                    items:
                        $ref: '#/components/schemas/OrganizationInvitation'
                    description: Pending invitations for the organization only; accepted, expired, and revoked invitations are omitted.
            required:
                - invitations
        ListIssuerConvergenceCandidatesResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/IssuerConvergenceCandidate'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for the platform-administrator convergence-candidate listing.
            required:
                - items
        ListJSONWebKeySetsResult:
            type: object
            properties:
                sets:
                    type: array
                    items:
                        $ref: '#/components/schemas/JSONWebKeySet'
                    description: The organization's JSON Web Key Sets.
            required:
                - sets
        ListJSONWebKeysResult:
            type: object
            properties:
                keys:
                    type: array
                    items:
                        $ref: '#/components/schemas/JSONWebKey'
                    description: The set's published keys.
            required:
                - keys
        ListKeysResponseBody:
            type: object
            properties:
                keys:
                    type: array
                    items:
                        $ref: '#/components/schemas/ModelProviderKey'
                    description: The model provider keys configured for the project.
            required:
                - keys
        ListKeysResponseBody2:
            type: object
            properties:
                keys:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOpenRouterKey'
                    description: Every live platform OpenRouter key, ordered by organization slug then key type.
            required:
                - keys
        ListKeysResult:
            type: object
            properties:
                keys:
                    type: array
                    items:
                        $ref: '#/components/schemas/Key'
            required:
                - keys
        ListMCPPlatformToolsetsResult:
            type: object
            properties:
                toolsets:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskMCPPlatformToolset'
                    description: The available Platform MCP policy scope targets.
            required:
                - toolsets
        ListManagedDevicesResult:
            type: object
            properties:
                devices:
                    type: array
                    items:
                        $ref: '#/components/schemas/ManagedDevice'
                    description: Devices, newest first.
                next_cursor:
                    type: string
                    description: Cursor for the next page. Omitted on the last page.
            required:
                - devices
        ListMcpEndpointsResult:
            type: object
            properties:
                mcp_endpoints:
                    type: array
                    items:
                        $ref: '#/components/schemas/McpEndpoint'
            description: Result type for listing MCP endpoints
            required:
                - mcp_endpoints
        ListMcpServersResult:
            type: object
            properties:
                mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/McpServer'
            description: Result type for listing MCP servers
            required:
                - mcp_servers
        ListMembersResponseBody:
            type: object
            properties:
                members:
                    type: array
                    items:
                        $ref: '#/components/schemas/SlackDirectoryMember'
                sort_as_of:
                    type: string
                    description: Time the mapping-state sort used. Pass it back to keep the order stable across pages and edits.
                    format: date-time
                total:
                    type: integer
                    description: Matching retained membership rows.
                    format: int64
            required:
                - members
                - total
                - sort_as_of
        ListMembersResult:
            type: object
            properties:
                members:
                    type: array
                    items:
                        $ref: '#/components/schemas/AccessMember'
                    description: The members in your organization.
            required:
                - members
        ListMetaMcpMembersResult:
            type: object
            properties:
                members:
                    type: array
                    items:
                        $ref: '#/components/schemas/MetaMcpMember'
            description: Result type for listing meta MCP members
            required:
                - members
        ListMetaMcpServersResult:
            type: object
            properties:
                meta_mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/MetaMcpServer'
            description: Result type for listing meta MCP servers
            required:
                - meta_mcp_servers
        ListOktaResourceConnectionsResult:
            type: object
            properties:
                agent_recorded:
                    type: boolean
                    description: Whether the connection has an AI agent recorded; every server needs one first.
                connection_id:
                    type: string
                    description: The organization's identity provider connection.
                    format: uuid
                deep_link:
                    type: string
                    description: Link to the add-resource-connection form of the AI agent in the identity provider console. Omitted until an agent is recorded or when the org uses a custom domain.
                pending_count:
                    type: integer
                    description: Servers that still need a step.
                    format: int64
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/OktaResourceConnectionServer'
                    description: Pending servers first, then by name. By default only servers with a step left; include_all adds connected, verified and not-applicable ones.
                total_count:
                    type: integer
                    description: Eligible servers before filtering.
                    format: int64
                undiscovered_count:
                    type: integer
                    description: Servers left out because their authorization server metadata has not been fetched yet.
                    format: int64
            required:
                - servers
                - pending_count
                - total_count
                - undiscovered_count
                - agent_recorded
        ListOktaServerSuggestionsResult:
            type: object
            properties:
                connection_id:
                    type: string
                    description: The organization's identity provider connection the snapshot came from.
                    format: uuid
                open_count:
                    type: integer
                    description: Suggestions the administrator has not acted on.
                    format: int64
                snapshot_at:
                    type: string
                    description: When the applications snapshot was last synced; the suggestions are only as fresh as it.
                    format: date-time
                suggestions:
                    type: array
                    items:
                        $ref: '#/components/schemas/OktaServerSuggestion'
                    description: Open suggestions first, then by server name. By default only open ones; include_all adds dismissed and installed.
                total_count:
                    type: integer
                    description: Matching entries before filtering.
                    format: int64
            required:
                - suggestions
                - open_count
                - total_count
        ListOrganizationMcpServersResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/OrganizationMcpServer'
            description: Result type for the MCP servers attached to a remote_session_client.
            required:
                - items
        ListOrganizationRemoteSessionClientsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/OrganizationRemoteSessionClient'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for the organization-administrator client listing for a single issuer.
            required:
                - items
        ListOrganizationRemoteSessionIssuersResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/OrganizationRemoteSessionIssuer'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for the organization-administrator issuer listing — organizational and project-specific issuers across the org.
            required:
                - items
        ListOrganizationRemoteSessionsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/RemoteSession'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for the remote_sessions minted against a remote_session_client.
            required:
                - items
        ListOrganizationUserSessionIssuersResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionIssuer'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for listing the user_session_issuers in an organization.
            required:
                - items
        ListPackagesResult:
            type: object
            properties:
                packages:
                    type: array
                    items:
                        $ref: '#/components/schemas/Package'
                    description: The list of packages
            required:
                - packages
        ListPersonAccountsResponseBody:
            type: object
            properties:
                accounts:
                    type: array
                    items:
                        $ref: '#/components/schemas/SlackPersonAccount'
                    description: Up to 50 current mappings, one entry per workspace membership.
                next_cursor:
                    type: string
                    description: Cursor for the next page, when present.
            required:
                - accounts
        ListPluginsResult:
            type: object
            properties:
                plugins:
                    type: array
                    items:
                        $ref: '#/components/schemas/Plugin'
                    description: The plugins in the organization.
            required:
                - plugins
        ListPrescriptionsResponseBody:
            type: object
            properties:
                next_after_id:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
                prescriptions:
                    type: array
                    items:
                        $ref: '#/components/schemas/PlatformKillswitchPrescription'
            required:
                - prescriptions
        ListProjectsPayload:
            type: object
            properties:
                apikey_token:
                    type: string
                organization_id:
                    type: string
                    description: The ID of the organization to list projects for
                session_token:
                    type: string
            required:
                - organization_id
        ListProjectsResult:
            type: object
            properties:
                projects:
                    type: array
                    items:
                        $ref: '#/components/schemas/ProjectEntry'
                    description: The list of projects
            required:
                - projects
        ListPromptTemplatesResult:
            type: object
            properties:
                templates:
                    type: array
                    items:
                        $ref: '#/components/schemas/PromptTemplate'
                    description: The created prompt template
            required:
                - templates
        ListRegistriesResponseBody:
            type: object
            properties:
                registries:
                    type: array
                    items:
                        $ref: '#/components/schemas/MCPRegistry'
                    description: List of MCP registries
            required:
                - registries
        ListRemoteSessionClientsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/RemoteSessionClient'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for listing remote_session_clients.
            required:
                - items
        ListRemoteSessionIssuersResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/RemoteSessionIssuer'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for listing remote_session_issuers.
            required:
                - items
        ListRemoteSessionsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/RemoteSession'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for listing remote_sessions.
            required:
                - items
        ListResourcesResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: The cursor to fetch results from
                resources:
                    type: array
                    items:
                        $ref: '#/components/schemas/Resource'
                    description: The list of resources
            required:
                - resources
        ListResponseBody:
            type: object
            properties:
                authorization_configured:
                    type: boolean
                    description: Whether the deployment can start Slack OAuth.
                connections:
                    type: array
                    items:
                        $ref: '#/components/schemas/SlackDirectoryConnection'
                    description: Workspace connections in creation order.
            required:
                - connections
                - authorization_configured
        ListRiskEvalReviewsResult:
            type: object
            properties:
                reviews:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskPolicyEvalReview'
                    description: The active review set for the policy.
            required:
                - reviews
        ListRiskExclusionsResult:
            type: object
            properties:
                exclusions:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskExclusion'
                    description: The list of risk exclusions.
            required:
                - exclusions
        ListRiskPoliciesResult:
            type: object
            properties:
                policies:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskPolicy'
                    description: The list of risk policies.
            required:
                - policies
        ListRiskPolicyBypassRequestsResult:
            type: object
            properties:
                requests:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskPolicyBypassRequest'
                    description: Current risk policy bypass request records.
            required:
                - requests
        ListRiskResultsByChatResult:
            type: object
            properties:
                chats:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskChatSummary'
                    description: Risk results grouped by chat.
                next_cursor:
                    type: string
                    description: Cursor for the next page of results.
            required:
                - chats
        ListRiskResultsForAgentResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for the next page of results.
                results:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskResultRedacted'
                    description: The list of risk results with match content redacted to opaque fingerprints.
                total_count:
                    type: integer
                    description: Total number of findings matching the filters across all non-deleted policies.
                    format: int64
            required:
                - results
                - total_count
        ListRiskResultsResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for the next page of results.
                results:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskResult'
                    description: The list of risk results.
                total_count:
                    type: integer
                    description: Total number of findings matching the filters across all non-deleted policies.
                    format: int64
            required:
                - results
                - total_count
        ListRoleGrant:
            type: object
            properties:
                direct_selectors:
                    type: array
                    items:
                        $ref: '#/components/schemas/Selector'
                    description: The subset of this scope's selectors granted to the calling user by name rather than through a role or everyone. For allow scopes it holds only selectors naming a concrete resource, which outrank blocks inherited from roles or everyone on that resource. For blocked scopes it holds the caller's own blocks, which always apply. Omitted when empty.
                scope:
                    type: string
                    description: The scope slug this grant applies to.
                    enum:
                        - org:read
                        - org:blocked_read
                        - org:admin
                        - org:blocked_admin
                        - project:read
                        - project:blocked_read
                        - project:write
                        - project:blocked_write
                        - mcp:read
                        - mcp:blocked_read
                        - mcp:write
                        - mcp:blocked_write
                        - mcp:connect
                        - mcp:blocked_connect
                        - mcp:auth
                        - mcp:blocked_auth
                        - environment:read
                        - environment:blocked_read
                        - environment:write
                        - environment:blocked_write
                        - skill:read
                        - skill:blocked_read
                        - skill:write
                        - skill:blocked_write
                        - assistant:read
                        - assistant:blocked_read
                        - assistant:write
                        - assistant:blocked_write
                        - plugin:write
                        - plugin:blocked_write
                        - risk_policy:evaluate
                        - risk_policy:bypass
                        - risk_policy:block
                        - chat:read
                        - chat:write
                        - log:read
                        - agent:read
                        - agent:write
                        - agent:authorize
                        - agent:transfer
                        - workload:read
                        - workload:blocked_read
                        - workload:write
                        - workload:blocked_write
                        - org:device_agent_sync
                        - org:hooks_ingest
                selectors:
                    type: array
                    items:
                        $ref: '#/components/schemas/Selector'
                    description: Selector constraints. Null means unrestricted.
                sub_scopes:
                    type: array
                    items:
                        type: string
                        enum:
                            - org:read
                            - org:blocked_read
                            - org:admin
                            - org:blocked_admin
                            - project:read
                            - project:blocked_read
                            - project:write
                            - project:blocked_write
                            - mcp:read
                            - mcp:blocked_read
                            - mcp:write
                            - mcp:blocked_write
                            - mcp:connect
                            - mcp:blocked_connect
                            - mcp:auth
                            - mcp:blocked_auth
                            - environment:read
                            - environment:blocked_read
                            - environment:write
                            - environment:blocked_write
                            - skill:read
                            - skill:blocked_read
                            - skill:write
                            - skill:blocked_write
                            - assistant:read
                            - assistant:blocked_read
                            - assistant:write
                            - assistant:blocked_write
                            - plugin:write
                            - plugin:blocked_write
                            - risk_policy:evaluate
                            - risk_policy:bypass
                            - risk_policy:block
                            - chat:read
                            - chat:write
                            - log:read
                            - agent:read
                            - agent:write
                            - agent:authorize
                            - agent:transfer
                            - workload:read
                            - workload:blocked_read
                            - workload:write
                            - workload:blocked_write
                            - org:device_agent_sync
                            - org:hooks_ingest
                    description: The inherited scopes the primary scope grants.
            required:
                - scope
        ListRolesResult:
            type: object
            properties:
                roles:
                    type: array
                    items:
                        $ref: '#/components/schemas/Role'
                    description: The roles in your organization.
            required:
                - roles
        ListRootMcpServersResponseBody:
            type: object
            properties:
                mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/RootMcpServerOption'
            required:
                - mcp_servers
        ListScopesResult:
            type: object
            properties:
                scopes:
                    type: array
                    items:
                        $ref: '#/components/schemas/ScopeDefinition'
                    description: The scopes available in access control.
            required:
                - scopes
        ListServerClientAssociationsResult:
            type: object
            properties:
                associations:
                    type: array
                    items:
                        $ref: '#/components/schemas/ServerClientAssociation'
                    description: The server's associated upstream OAuth clients, oldest first.
            required:
                - associations
        ListServerHeadersResult:
            type: object
            properties:
                headers:
                    type: array
                    items:
                        $ref: '#/components/schemas/RemoteMcpServerHeader'
            description: Result type for listing the headers of a remote MCP server
            required:
                - headers
        ListServersResult:
            type: object
            properties:
                remote_mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/RemoteMcpServer'
            description: Result type for listing remote MCP servers
            required:
                - remote_mcp_servers
        ListSessionLinksResult:
            type: object
            properties:
                links:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChatSessionLink'
                    description: Links touching the requested chats, newest first.
            required:
                - links
        ListSessionQuarantinesResult:
            type: object
            properties:
                quarantines:
                    type: array
                    items:
                        $ref: '#/components/schemas/SessionQuarantine'
                    description: Active session quarantines.
            required:
                - quarantines
        ListSessionsPayload:
            type: object
            properties:
                cursor:
                    type: string
                    description: Opaque cursor for pagination
                filters:
                    type: array
                    items:
                        $ref: '#/components/schemas/QueryFilter'
                    description: Optional filters; all filters are ANDed together.
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                limit:
                    type: integer
                    description: Number of sessions to return (1-1000)
                    default: 50
                    format: int64
                    minimum: 1
                    maximum: 1000
                sort_by:
                    type: string
                    description: Measure used to rank sessions. Defaults to total_cost.
                    default: total_cost
                    enum:
                        - total_cost
                        - total_tokens
                        - total_input_tokens
                        - total_output_tokens
                        - tool_call_count
                        - message_count
                        - duration_seconds
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-26T10:00:00Z"
                    format: date-time
            description: Payload for listing org-scoped chat sessions
            required:
                - from
                - to
        ListSessionsResponseBody:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/AgentSession'
                next_cursor:
                    type: string
            required:
                - items
        ListSessionsResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for next page
                sessions:
                    type: array
                    items:
                        $ref: '#/components/schemas/SessionSummary'
                    description: List of chat session summaries
            description: Result of listing org-scoped chat sessions
            required:
                - sessions
        ListSetupTasksResult:
            type: object
            properties:
                tasks:
                    type: array
                    items:
                        $ref: '#/components/schemas/SetupTask'
                    description: Setup tasks in catalog order. A group precedes the cards under it.
            required:
                - tasks
        ListShadowMCPInventoryResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for the next page of results.
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/ShadowMCPInventoryServer'
            required:
                - servers
        ListShadowMCPInventoryUsersResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for the next page of results.
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/ShadowMCPInventoryUser'
            required:
                - users
        ListSigintSensorsResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Final returned sensor ID when another page exists
                    format: uuid
                sensors:
                    type: array
                    items:
                        $ref: '#/components/schemas/SigintSensor'
                    description: Sensors in this page
            required:
                - sensors
        ListSigintSignalsResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Final returned signal ID when another page exists
                    format: uuid
                signals:
                    type: array
                    items:
                        $ref: '#/components/schemas/SigintSignal'
                    description: Signals in this page
            required:
                - signals
        ListSignupOffersResponseBody:
            type: object
            properties:
                offers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminSignupOffer'
            required:
                - offers
        ListSkillDistributionsResult:
            type: object
            properties:
                distributions:
                    type: array
                    items:
                        $ref: '#/components/schemas/PluginSkillDistribution'
                    description: The active plugin skill distributions in this page.
                next_cursor:
                    type: string
                    description: Cursor for the next page; absent when exhausted.
            description: A page of active plugin skill distributions for the current project.
            required:
                - distributions
        ListSkillFeedbackResult:
            type: object
            properties:
                counts:
                    $ref: '#/components/schemas/SkillFeedbackCounts'
                feedback:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillFeedback'
                metrics:
                    $ref: '#/components/schemas/SkillFeedbackMetrics'
                next_cursor:
                    type: string
                    description: Cursor for the next page; absent when exhausted.
                timeline:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillFeedbackTimelinePoint'
            description: Outcome counts, collection metrics, a 30-day timeline, and a newest-first page of feedback for a skill.
            required:
                - counts
                - metrics
                - timeline
                - feedback
        ListSkillSuggestionFeedbackResult:
            type: object
            properties:
                feedback:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillFeedback'
                    description: The feedback records linked to the suggestion.
            description: The agent feedback a suggestion was generated from, newest first.
            required:
                - feedback
        ListSkillSuggestionsResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for the next page; absent when exhausted.
                suggestions:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillEditSuggestion'
                    description: The open suggestions in this page.
                total_open_count:
                    type: integer
                    description: The total number of matching open suggestions, independent of pagination.
                    format: int64
            description: A page of open skill edit suggestions.
            required:
                - suggestions
                - total_open_count
        ListSkillTagsResult:
            type: object
            properties:
                tags:
                    type: array
                    items:
                        type: string
                    description: Distinct tags used by active skills in the project, sorted lexicographically.
            required:
                - tags
        ListSkillVersionsResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for the next page; absent when exhausted.
                versions:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillVersion'
                    description: The skill versions in this page.
            description: A page of immutable skill versions.
            required:
                - versions
        ListSkillsResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for the next page; absent when exhausted.
                skills:
                    type: array
                    items:
                        $ref: '#/components/schemas/Skill'
                    description: The active skills in this page.
                total_count:
                    type: integer
                    description: The total number of active skills matching the filters.
                    format: int64
            description: A page of active project skills.
            required:
                - skills
                - total_count
        ListSourcesResult:
            type: object
            properties:
                sources:
                    type: array
                    items:
                        type: string
                    description: The distinct agent sources present in this project's chats (raw source strings such as 'claude-code', 'Codex', 'playground').
            required:
                - sources
        ListSpendRuleEventsResult:
            type: object
            properties:
                events:
                    type: array
                    items:
                        $ref: '#/components/schemas/SpendRuleEvent'
                    description: The list of budget rule events, most recent first.
                next_cursor:
                    type: string
                    description: Cursor for the next page of events.
            required:
                - events
        ListSpendRulesResult:
            type: object
            properties:
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/SpendRule'
                    description: The list of budget rules.
            required:
                - rules
        ListSyncedUsersResult:
            type: object
            properties:
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/SyncedAgentUser'
                    description: Emails seen syncing the device agent, most recently active first.
            required:
                - users
        ListToolFiltersResult:
            type: object
            properties:
                excluded:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolFilterTool'
                    description: 'Tools whose effective tag set is empty: reachable only without a ?tags= filter.'
                filtering_enabled:
                    type: boolean
                    description: Whether tool filtering is enabled, i.e. the resolution chain (mcp_servers then toolsets) yields a non-null tool variations group. When false, scopes and excluded are empty. A project-default (source-level) variations group is not treated as filtering here.
                scopes:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolFilterScope'
                    description: The available filter scopes (tags), each with its member tools. Union of effective tags across the server's tools.
                tool_variations_group_id:
                    type: string
                    description: The ID of the resolved tool variations group, if filtering is enabled.
                    format: uuid
                tool_variations_group_name:
                    type: string
                    description: The name of the resolved tool variations group, if filtering is enabled.
            description: 'The tool filtering configuration in effect for an MCP server: the resolved tool variations group, the available filter scopes (tags), and the tools excluded from all filters. Read-only. Filtering is reported as enabled only when an explicit tool variations group is configured on the MCP server or its toolset; the per-group effective-tag derivation matches the runtime ?tags= filter for that group.'
            required:
                - filtering_enabled
                - scopes
                - excluded
        ListToolMetadataResult:
            type: object
            properties:
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolMetadata'
                    description: The stored tool metadata for the MCP server
            description: Result type for listing tool metadata
            required:
                - tools
        ListToolSchemaStaticValuesResult:
            type: object
            properties:
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolSchemaStaticValues'
                    description: Per-tool static values for tools whose input schemas contain at least one matching keyword
            required:
                - tools
        ListToolUsageTracesPayload:
            type: object
            properties:
                account_type:
                    type: string
                    description: Optional account type filter ('team' or 'personal'). 'team' includes unclassified traces.
                client_keys:
                    type: array
                    items:
                        type: string
                    description: MCP client keys (lowercased self-reported client names; 'unattributed' selects calls Speakeasy never saw an initialize handshake for) to include
                cursor:
                    type: string
                    description: Cursor for pagination
                filters:
                    type: array
                    items:
                        $ref: '#/components/schemas/LogFilter'
                    description: Arbitrary attribute filter conditions from the af URL param
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                hook_sources:
                    type: array
                    items:
                        type: string
                    description: Hook plugin sources to include. Direct hosted MCP calls have no hook source and are excluded when this filter is set.
                hosted_toolset_slugs:
                    type: array
                    items:
                        type: string
                    description: Hosted MCP toolset slugs to include
                limit:
                    type: integer
                    description: Number of traces to return
                    default: 100
                    format: int64
                    minimum: 1
                    maximum: 1000
                meta_mcp_server_ids:
                    type: array
                    items:
                        type: string
                    description: 'Gateway (meta MCP server) ids to include: calls dispatched through the gateway to its members plus calls observed against the gateway itself'
                query:
                    type: string
                    description: Free-text attribute search string from the q URL param. Matches useful identifier attributes such as Speakeasy URN, conversation ID, and trigger instance ID.
                shadow_server_names:
                    type: array
                    items:
                        type: string
                    description: Shadow MCP server names to include
                sort:
                    type: string
                    description: Sort order
                    default: desc
                    enum:
                        - asc
                        - desc
                statuses:
                    type: array
                    items:
                        type: string
                        description: Tool usage trace outcome
                        enum:
                            - error
                            - success
                            - blocked
                            - pending
                    description: Trace outcomes to include (error, success, blocked, pending). Empty means all.
                target_types:
                    type: array
                    items:
                        type: string
                        description: Tool usage target type
                        enum:
                            - hosted_mcp_server
                            - tunneled_mcp_server
                            - meta_mcp_server
                            - shadow_mcp_server
                            - local_tool
                            - skill
                    description: Target types to include. Empty means all target types.
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
                user_filters:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageUserFilter'
                    description: Typed user identities to include
            description: Payload for listing target-aware MCP and tool usage traces
            required:
                - from
                - to
        ListToolUsageTracesResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for next page
                traces:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsageTraceSummary'
                    description: Target-aware tool usage trace rows
            description: Result of listing target-aware MCP and tool usage traces
            required:
                - traces
        ListToolVariationGroupsResult:
            type: object
            properties:
                groups:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolVariationGroup'
            required:
                - groups
        ListToolsResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: The cursor to fetch results from
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/Tool'
                    description: The list of tools (polymorphic union of HTTP tools and prompt templates)
            required:
                - tools
        ListToolsetSummariesResult:
            type: object
            properties:
                toolsets:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolsetSummary'
                    description: The list of toolset summaries
            required:
                - toolsets
        ListToolsetsResult:
            type: object
            properties:
                toolsets:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolsetEntry'
                    description: The list of toolsets
            required:
                - toolsets
        ListTriggerDefinitionsResult:
            type: object
            properties:
                definitions:
                    type: array
                    items:
                        $ref: '#/components/schemas/TriggerDefinition'
                    description: The available trigger definitions.
            required:
                - definitions
        ListTriggerEventsResult:
            type: object
            properties:
                events:
                    type: array
                    items:
                        $ref: '#/components/schemas/TriggerEvent'
                    description: The dispatch events for the trigger instance, most recent first.
            required:
                - events
        ListTriggerInstancesResult:
            type: object
            properties:
                triggers:
                    type: array
                    items:
                        $ref: '#/components/schemas/TriggerInstance'
                    description: The trigger instances for the current project.
            required:
                - triggers
        ListTunneledMcpServersResult:
            type: object
            properties:
                tunneled_mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/TunneledMcpServer'
            description: Result type for listing tunneled MCP servers
            required:
                - tunneled_mcp_servers
        ListUnknownSkillActivationsResult:
            type: object
            properties:
                activations:
                    type: array
                    items:
                        $ref: '#/components/schemas/UnknownSkillActivation'
                    description: Unknown activations in this page.
                next_cursor:
                    type: string
                    description: Cursor for the next page; absent when exhausted.
            description: A page of terminal skill activations without exact version attribution.
            required:
                - activations
        ListUnproxiedMcpServersResult:
            type: object
            properties:
                unproxied_mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/UnproxiedMcpServer'
            description: Result type for listing unproxied MCP servers
            required:
                - unproxied_mcp_servers
        ListUserGrantsResult:
            type: object
            properties:
                grants:
                    type: array
                    items:
                        $ref: '#/components/schemas/ListRoleGrant'
                    description: The user's effective grants in this organization.
            required:
                - grants
        ListUserSessionClientsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionClient'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for listing user_session_clients.
            required:
                - items
        ListUserSessionConsentsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionConsent'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for listing user_session_consents.
            required:
                - items
        ListUserSessionFacetsResult:
            type: object
            properties:
                clients:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionFacetOption'
                    description: Connecting client facets.
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionFacetOption'
                    description: Issuer/server facets.
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionFacetOption'
                    description: Subject (user) facets.
            required:
                - clients
                - users
                - servers
        ListUserSessionIssuerCimdClientsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionIssuerCimdClient'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for listing an issuer's custom CIMD document URLs.
            required:
                - items
        ListUserSessionIssuerMcpServersResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionIssuerMcpServer'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for listing the MCP servers attached to a user_session_issuer.
            required:
                - items
        ListUserSessionIssuersResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionIssuer'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for listing user_session_issuers.
            required:
                - items
        ListUserSessionsResult:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSession'
                next_cursor:
                    type: string
                    description: Cursor for the next page; empty when exhausted.
            description: Result type for listing user_sessions.
            required:
                - items
        ListUsersResult:
            type: object
            properties:
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/OrganizationUser'
                    description: Users linked to the organization in Speakeasy.
            required:
                - users
        ListVariationsResult:
            type: object
            properties:
                variations:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolVariation'
            required:
                - variations
        ListVersionsForm:
            type: object
            properties:
                name:
                    type: string
                    description: The name of the package
            required:
                - name
        ListVersionsResult:
            type: object
            properties:
                package:
                    $ref: '#/components/schemas/Package'
                versions:
                    type: array
                    items:
                        $ref: '#/components/schemas/PackageVersion'
            required:
                - package
                - versions
        ListWidgetsResult:
            type: object
            properties:
                widgets:
                    type: array
                    items:
                        $ref: '#/components/schemas/Widget'
                    description: Widgets in the project, most recently updated first
            required:
                - widgets
        LiteLLMInstance:
            type: object
            properties:
                active:
                    type: boolean
                created_at:
                    type: string
                    format: date-time
                created_by_user_id:
                    type: string
                diagnostics:
                    $ref: '#/components/schemas/LiteLLMInstanceDiagnostics'
                failure_posture:
                    type: string
                    description: How LiteLLM behaves when Speakeasy cannot evaluate a request.
                    enum:
                        - fail_closed
                        - fail_open
                id:
                    type: string
                    format: uuid
                key_prefix:
                    type: string
                last_used_at:
                    type: string
                    format: date-time
                name:
                    type: string
                organization_id:
                    type: string
                project:
                    $ref: '#/components/schemas/ProjectEntry'
                updated_at:
                    type: string
                    format: date-time
            description: A provisioned LiteLLM integration and its project-bound ingestion credential metadata.
            required:
                - id
                - organization_id
                - project
                - name
                - failure_posture
                - key_prefix
                - created_by_user_id
                - created_at
                - updated_at
                - active
                - diagnostics
        LiteLLMInstanceDiagnostics:
            type: object
            properties:
                last_error_at:
                    type: string
                    format: date-time
                last_error_kind:
                    type: string
                    description: Safe category for the latest observed ingest error.
                    enum:
                        - auth_failure
                        - decode_failure
                        - limit_exceeded
                last_guardrail_event_at:
                    type: string
                    format: date-time
                last_otel_event_at:
                    type: string
                    format: date-time
                platform_user_pct_24h:
                    type: number
                    description: Percentage of model requests in the last 24 hours that resolved to a Speakeasy user.
                    format: double
                    minimum: 0
                    maximum: 100
                reported_litellm_version:
                    type: string
                    maxLength: 128
                status:
                    type: string
                    description: Derived health of a LiteLLM integration's latest ingest activity.
                    enum:
                        - pending
                        - success
                        - failed
                virtual_key_email_pct_24h:
                    type: number
                    description: Percentage of model requests in the last 24 hours that supplied a virtual-key email.
                    format: double
                    minimum: 0
                    maximum: 100
            description: Health and identity-attribution diagnostics for a LiteLLM integration. No prompt, credential, or identity values are returned.
            required:
                - status
        LiteLLMRequestData:
            type: object
            properties:
                user_api_key_alias:
                    type: string
                user_api_key_end_user_id:
                    type: string
                user_api_key_hash:
                    type: string
                user_api_key_org_id:
                    type: string
                user_api_key_team_alias:
                    type: string
                user_api_key_team_id:
                    type: string
                user_api_key_user_email:
                    type: string
                user_api_key_user_id:
                    type: string
            description: Sanitized metadata bound to the LiteLLM virtual key and request.
        LiteLLMStructuredMessage:
            type: object
            properties:
                content: {}
                role:
                    type: string
            description: A message supplied to LiteLLM for the guarded model request.
            required:
                - role
        LitellmIngestResult:
            type: object
            properties:
                action:
                    enum:
                        - BLOCKED
                        - NONE
                        - GUARDRAIL_INTERVENED
                    type: string
                    x-speakeasy-name-override: LiteLLMGuardrailAction
                blocked_reason:
                    type: string
                images:
                    type: array
                    items:
                        type: string
                stream_holdback_chars:
                    type: array
                    items:
                        type: integer
                        format: int64
                texts:
                    type: array
                    items:
                        type: string
                tools:
                    type: array
                    items: {}
            description: LiteLLM Generic Guardrail decision.
            required:
                - action
        LitellmInstanceKeyResult:
            type: object
            properties:
                instance:
                    $ref: '#/components/schemas/LiteLLMInstance'
                key:
                    type: string
            description: A LiteLLM instance and its newly minted plaintext key. The key is shown only once.
            required:
                - instance
                - key
        LogFilter:
            type: object
            properties:
                operator:
                    type: string
                    description: Comparison operator
                    default: eq
                    enum:
                        - eq
                        - not_eq
                        - contains
                        - exists
                        - not_exists
                        - in
                path:
                    type: string
                    description: Attribute path. Use @ prefix for custom attributes (e.g. '@user.region'), or bare path for system attributes (e.g. 'http.route').
                    example: '@user.region'
                    pattern: ^@?[a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z_][a-zA-Z0-9_]*)*$
                    minLength: 1
                    maxLength: 256
                values:
                    type: array
                    items:
                        type: string
                    description: Values to compare against. Pass one value for single-value operators (eq, not_eq, contains) and multiple for 'in'. Ignored for 'exists' and 'not_exists'.
                    maxItems: 256
            description: A single filter condition for a log search query.
            required:
                - path
        MCPRegistry:
            type: object
            properties:
                id:
                    type: string
                    description: Registry ID
                    format: uuid
                name:
                    type: string
                    description: Display name for the registry
                url:
                    type: string
                    description: URL of the registry
            description: An MCP registry
            required:
                - id
                - name
                - url
        MCPSetupGuide:
            type: object
            properties:
                add_server_flow:
                    type: string
                    description: How the server is meant to be added in Speakeasy, when the guide states one (e.g., 'catalog', 'custom-remote')
                aliases:
                    type: array
                    items:
                        type: string
                    description: Registry identifiers the guide is also published under
                external_markdown:
                    type: string
                    description: Markdown instructions for the setup work that happens in the upstream provider
                match_kind:
                    type: string
                    description: How the lookup matched this guide. The most specific kind, when both lookup keys matched it.
                    enum:
                        - endpoint
                        - alias
                matched_remote_id:
                    type: string
                    description: ID of the documented endpoint the lookup matched. Absent when the lookup identified the guide and not a specific endpoint, which is always the case for an 'alias' match.
                    example: hosted
                remotes:
                    type: array
                    items:
                        $ref: '#/components/schemas/MCPSetupGuideRemote'
                    description: Endpoints documented by the guide
                slug:
                    type: string
                    description: Stable identifier of the guide
                    example: box
                speakeasy_markdown:
                    type: string
                    description: Markdown instructions for the setup work that happens in Speakeasy
                summary:
                    type: string
                    description: One-line summary of what the guide covers
                title:
                    type: string
                    description: Display title of the guide
                    example: Box
            description: Published setup documentation for an upstream MCP server
            required:
                - slug
                - title
                - summary
                - aliases
                - remotes
                - match_kind
                - external_markdown
                - speakeasy_markdown
        MCPSetupGuideRemote:
            type: object
            properties:
                id:
                    type: string
                    description: Stable identifier of the endpoint within the guide
                    example: hosted
                tenanted:
                    type: boolean
                    description: Whether the endpoint URL is customer-specific and has to be filled in per tenant
                transport_type:
                    type: string
                    description: Transport type as published by the guide (e.g., 'streamable-http', 'sse')
                    example: streamable-http
                url:
                    type: string
                    description: URL of the endpoint
                    format: uri
            description: An MCP server endpoint documented by a setup guide
            required:
                - id
                - url
                - transport_type
                - tenanted
        ManagedAgent:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    format: uuid
                lifecycle:
                    type: string
                    enum:
                        - active
                        - suspended
                        - revoked
                name:
                    type: string
                owner_profile:
                    $ref: '#/components/schemas/AgentOwnerProfile'
                owner_reassignment_reason:
                    type: string
                    description: Stable reason that explicit reassignment is required
                owner_reassignment_required_at:
                    type: string
                    description: When owner loss durably blocked this agent
                    format: date-time
                owner_user_id:
                    type: string
                permissions:
                    $ref: '#/components/schemas/AgentPermissions'
                project_id:
                    type: string
                    description: The optional project this agent is scoped to; absent for an organization-wide agent
                    format: uuid
                updated_at:
                    type: string
                    format: date-time
            required:
                - id
                - owner_user_id
                - name
                - lifecycle
                - permissions
                - created_at
                - updated_at
        ManagedDevice:
            type: object
            properties:
                agent_last_seen_at:
                    type: string
                    description: 'The device-agent heartbeat that classified this device: the machine''s own under device-level matching, otherwise its assigned user''s. Omitted when no agent has ever synced.'
                    format: date-time
                coverage_bucket:
                    type: string
                    description: Coverage classification for the device. What agent_active attests depends on the org's matching mode and on whether this device matched by serial or by assigned-user email.
                    enum:
                        - agent_active
                        - agent_stale
                        - agent_other_device
                        - no_agent
                        - no_email
                        - unresolved_email
                        - missing
                external_id:
                    type: string
                    description: The MDM's identifier for the device.
                first_seen_at:
                    type: string
                    format: date-time
                hostname:
                    type: string
                    description: Device hostname.
                id:
                    type: string
                    description: Device row ID.
                last_seen_at:
                    type: string
                    format: date-time
                mdm_last_check_in_at:
                    type: string
                    description: Last device check-in as reported by the MDM.
                    format: date-time
                missing_since:
                    type: string
                    description: When the device went absent from the MDM inventory. Omitted while present.
                    format: date-time
                os_name:
                    type: string
                    description: Operating system name.
                os_version:
                    type: string
                    description: Operating system version.
                provider:
                    type: string
                    description: Provider the device was synced from.
                serial_number:
                    type: string
                    description: Hardware serial number as reported by the MDM.
                user_email:
                    type: string
                    description: Assigned user's email exactly as the MDM reported it. Omitted when the MDM has no assignment.
                user_id:
                    type: string
                    description: Resolved Speakeasy user for the assigned email. Omitted when the email is missing or does not resolve to an org member.
            description: 'One device from a connected MDM''s inventory, annotated with its agent-coverage bucket. What that bucket attests depends on the organization''s matching mode: under device-level matching a device may be classified by its own hardware serial (this machine ran the agent) or, when no serial heartbeat exists for it, by its assigned-user email (only that user ran the agent somewhere). Under user-level matching only the latter applies.'
            required:
                - id
                - provider
                - external_id
                - coverage_bucket
                - first_seen_at
                - last_seen_at
        MarkEnterpriseTrialConvertedRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: Organization ID.
                    minLength: 1
            required:
                - id
        MarkEnterpriseTrialConvertedResult:
            type: object
            properties:
                converted_at:
                    type: string
                    description: The time at which the enterprise trial was recorded as converted.
                    format: date-time
                organization_id:
                    type: string
                    description: The converted organization ID.
            description: Privacy-minimal result of recording an enterprise trial conversion.
            required:
                - organization_id
                - converted_at
        MarkRiskResultsFalsePositiveRequestBody:
            type: object
            properties:
                reason:
                    type: string
                    description: Optional free-text reason for the dismissal.
                result_ids:
                    type: array
                    items:
                        type: string
                    description: IDs of the risk results to mark as false positive.
                    minItems: 1
                    maxItems: 500
            required:
                - result_ids
        MarketplaceSettingsResult:
            type: object
            properties:
                default_name:
                    type: string
                    description: The default marketplace name used when no override is configured.
                effective_name:
                    type: string
                    description: The marketplace name that will be used at publish time (override if set, otherwise default).
                marketplace_name:
                    type: string
                    description: User-provided override for the marketplace name. Absent when no override is configured.
                observability_enabled:
                    type: boolean
                    description: Whether this project's observability plugin is included in the published marketplace and installed by the device agent. Defaults to true when unset.
            required:
                - default_name
                - effective_name
                - observability_enabled
        McpEndpoint:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the MCP endpoint was created
                    format: date-time
                custom_domain_id:
                    type: string
                    description: The ID of the custom domain this endpoint slug is registered under. Null for platform-domain endpoints.
                    format: uuid
                id:
                    type: string
                    description: The ID of the MCP endpoint
                    format: uuid
                is_domain_root:
                    type: boolean
                    description: Whether this endpoint is mapped to its custom-domain root
                mcp_server_id:
                    type: string
                    description: The ID of the MCP server this endpoint addresses. Null for meta-MCP-backed endpoints.
                    format: uuid
                meta_mcp_server_id:
                    type: string
                    description: The ID of the meta MCP server this endpoint addresses. Null for MCP-server-backed endpoints.
                    format: uuid
                project_id:
                    type: string
                    description: The project ID this MCP endpoint belongs to
                    format: uuid
                slug:
                    type: string
                    description: A url-friendly label (up to 128 characters) that addresses an MCP server through a slug-based URL. Platform-domain slugs (no custom domain) must be prefixed with the organization slug.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 128
                updated_at:
                    type: string
                    description: When the MCP endpoint was last updated
                    format: date-time
            description: 'An MCP endpoint: a url-friendly slug identifier that addresses an MCP server or a meta MCP server. Exactly one of mcp_server_id and meta_mcp_server_id is set.'
            required:
                - id
                - project_id
                - slug
                - is_domain_root
                - created_at
                - updated_at
        McpEnvironmentConfig:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the config was created
                    format: date-time
                header_display_name:
                    type: string
                    description: Custom display name for the variable in MCP headers
                id:
                    type: string
                    description: The ID of the environment config
                provided_by:
                    type: string
                    description: 'How the variable is provided: ''user'', ''system'', or ''none'''
                updated_at:
                    type: string
                    description: When the config was last updated
                    format: date-time
                variable_name:
                    type: string
                    description: The name of the environment variable
            description: Represents an environment variable configured for an MCP server.
            required:
                - id
                - variable_name
                - provided_by
                - created_at
                - updated_at
        McpEnvironmentConfigInput:
            type: object
            properties:
                header_display_name:
                    type: string
                    description: Custom display name for the variable in MCP headers
                provided_by:
                    type: string
                    description: 'How the variable is provided: ''user'', ''system'', or ''none'''
                variable_name:
                    type: string
                    description: The name of the environment variable
            description: Input for configuring an environment variable for an MCP server.
            required:
                - variable_name
                - provided_by
        McpExport:
            type: object
            properties:
                authentication:
                    $ref: '#/components/schemas/McpExportAuthentication'
                description:
                    type: string
                    description: Description of the MCP server
                documentation_url:
                    type: string
                    description: Link to external documentation
                instructions:
                    type: string
                    description: Server instructions for users
                logo_url:
                    type: string
                    description: URL to the server logo
                name:
                    type: string
                    description: The MCP server name
                server_url:
                    type: string
                    description: The MCP server URL
                slug:
                    type: string
                    description: The MCP server slug
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/McpExportTool'
                    description: Available tools on this MCP server
            description: Complete MCP server export for documentation and integration
            required:
                - name
                - slug
                - server_url
                - tools
                - authentication
        McpExportAuthHeader:
            type: object
            properties:
                display_name:
                    type: string
                    description: User-friendly display name (e.g., API Key)
                name:
                    type: string
                    description: The HTTP header name (e.g., Authorization)
            description: An authentication header required by the MCP server
            required:
                - name
                - display_name
        McpExportAuthentication:
            type: object
            properties:
                headers:
                    type: array
                    items:
                        $ref: '#/components/schemas/McpExportAuthHeader'
                    description: Required authentication headers
                required:
                    type: boolean
                    description: Whether authentication is required
            description: Authentication requirements for the MCP server
            required:
                - required
                - headers
        McpExportTool:
            type: object
            properties:
                description:
                    type: string
                    description: Description of what the tool does
                input_schema:
                    description: JSON Schema for the tool's input parameters
                name:
                    type: string
                    description: The tool name
            description: A tool definition in the MCP export
            required:
                - name
                - description
                - input_schema
        McpMetadata:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the metadata entry was created
                    format: date-time
                default_environment_id:
                    type: string
                    description: The default environment to load variables from
                    format: uuid
                environment_configs:
                    type: array
                    items:
                        $ref: '#/components/schemas/McpEnvironmentConfig'
                    description: The list of environment variables configured for this MCP
                external_documentation_text:
                    type: string
                    description: A blob of text for the button on the MCP server page
                external_documentation_url:
                    type: string
                    description: A link to external documentation for the MCP install page
                    format: uri
                id:
                    type: string
                    description: The ID of the metadata record
                installation_override_url:
                    type: string
                    description: URL to redirect to instead of showing the default installation page
                    format: uri
                instructions:
                    type: string
                    description: Server instructions returned in the MCP initialize response
                logo_asset_id:
                    type: string
                    description: The asset ID for the MCP install page logo
                    format: uuid
                mcp_server_id:
                    type: string
                    description: The MCP server associated with this install page metadata. Also set with toolset_id, to the same id, for a hosted MCP server with a live canonical MCP server.
                    format: uuid
                toolset_id:
                    type: string
                    description: The toolset associated with this install page metadata. Also set with mcp_server_id, to the same id, for a hosted MCP server with a live canonical MCP server.
                    format: uuid
                updated_at:
                    type: string
                    description: When the metadata entry was last updated
                    format: date-time
            description: Metadata used to configure the MCP install page. toolset_id or mcp_server_id identifies which backend the metadata belongs to; a hosted MCP server with a live canonical MCP server carries both, set to the same id.
            required:
                - id
                - created_at
                - updated_at
        McpNetworkTrafficPoint:
            type: object
            properties:
                bucket_start:
                    type: string
                    description: Start of the UTC hour
                    format: date-time
                private_requests:
                    type: integer
                    description: Observed private requests
                    format: int64
                public_requests:
                    type: integer
                    description: Observed public requests
                    format: int64
            required:
                - bucket_start
                - public_requests
                - private_requests
        McpServer:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the MCP server was created
                    format: date-time
                environment_id:
                    type: string
                    description: The ID of the environment associated with the server
                    format: uuid
                has_endpoint:
                    type: boolean
                    description: Whether any endpoint routes to this server, including one on a custom domain that is not live yet. Absent when it could not be read.
                id:
                    type: string
                    description: The ID of the MCP server
                    format: uuid
                name:
                    type: string
                    description: A human-readable display name for the server
                network_access_mode:
                    type: string
                    description: The network surfaces through which a Speakeasy-hosted MCP server may be reached.
                    enum:
                        - public_only
                        - dual
                        - private_only
                platform_endpoint_slug:
                    type: string
                    description: The slug of this server's primary platform endpoint, the oldest one. Absent when no platform endpoint exists; never a custom-domain slug.
                primary_endpoint_id:
                    type: string
                    description: 'The ID of the endpoint that stands for this server when a single address must be chosen: domain-root custom-domain endpoints first, then other custom-domain endpoints, then platform endpoints. Absent when the server has no addressable endpoint.'
                    format: uuid
                primary_endpoint_url:
                    type: string
                    description: The public MCP URL of the primary endpoint. Absent when the server has no addressable endpoint.
                project_id:
                    type: string
                    description: The project ID this MCP server belongs to
                    format: uuid
                remote_mcp_server_id:
                    type: string
                    description: The ID of the remote MCP server used as the backend
                    format: uuid
                slug:
                    type: string
                    description: A URL-safe, project-unique slug derived server-side from the name and ID
                tool_variations_group_id:
                    type: string
                    description: The ID of the tool variations group enabling MCP tool filtering for this server, if any.
                    format: uuid
                toolset:
                    $ref: '#/components/schemas/McpServerToolsetSummary'
                toolset_id:
                    type: string
                    description: The ID of the toolset used as the backend
                    format: uuid
                tunneled_mcp_server_id:
                    type: string
                    description: The ID of the tunneled MCP server used as the backend
                    format: uuid
                unproxied_mcp_server_id:
                    type: string
                    description: The ID of the unproxied MCP server used as the backend, if any. A server backed by an unproxied MCP server is never proxied by Speakeasy.
                    format: uuid
                updated_at:
                    type: string
                    description: When the MCP server was last updated
                    format: date-time
                user_session_issuer_id:
                    type: string
                    description: The ID of the user session issuer that gates OAuth-based MCP client authentication for this server, if any.
                    format: uuid
                visibility:
                    type: string
                    description: The visibility of an MCP server
                    enum:
                        - disabled
                        - private
                        - public
            description: 'An MCP server configuration: authentication, environment, and backend selection for an MCP server.'
            required:
                - id
                - project_id
                - visibility
                - network_access_mode
                - created_at
                - updated_at
        McpServerActivity:
            type: object
            properties:
                last_tool_call_at:
                    type: string
                    description: ISO 8601 timestamp of the most recent tool call
                    format: date-time
                recent_tool_calls:
                    type: integer
                    description: Number of tool calls observed inside the recent-activity window
                    format: int64
                target_id:
                    type: string
                    description: 'Stable target identifier: toolset slug for hosted servers, MCP server slug for tunneled/remote servers, meta MCP server id for gateways'
                target_label:
                    type: string
                    description: User-facing label for the target. Gateway rows carry the gateway name, falling back to the meta MCP server id when the gateway no longer exists
                target_type:
                    type: string
                    description: MCP server activity target type. Only the server-backed kinds this endpoint reports are valid, unlike the broader tool-usage target types.
                    enum:
                        - hosted_mcp_server
                        - tunneled_mcp_server
                        - meta_mcp_server
                total_tool_calls:
                    type: integer
                    description: Number of tool calls observed across the whole lookback window
                    format: int64
            description: Tool-call activity for one MCP server, keyed by the same target identifier used elsewhere (toolset slug for hosted servers, MCP server slug for tunneled/remote servers, meta MCP server id for gateways)
            required:
                - target_type
                - target_id
                - target_label
                - total_tool_calls
                - recent_tool_calls
        McpServerToolsetSummary:
            type: object
            properties:
                description:
                    type: string
                    description: The toolset's description, if any
                external_mcp_proxy_only:
                    type: boolean
                    description: Whether every configured tool is an external MCP proxy tool, so the real tool count is unknown until a user signs in
                external_mcp_slugs:
                    type: array
                    items:
                        type: string
                    description: The distinct slugs of the external MCP sources the toolset's configured tools come from, sorted
                external_oauth_server_id:
                    type: string
                    description: The ID of the external OAuth server attached to the toolset, if any
                    format: uuid
                id:
                    type: string
                    description: The ID of the toolset
                    format: uuid
                name:
                    type: string
                    description: The name of the toolset
                registry_specifier:
                    type: string
                    description: The registry specifier the toolset originated from, if any
                slug:
                    type: string
                    description: The slug of the toolset
                tool_count:
                    type: integer
                    description: 'Number of tools the toolset serves: deployment-backed tools (HTTP, function, external MCP) that resolve in the project''s latest completed deployment, plus its prompt templates and registered platform tools. External MCP proxy tools are excluded.'
                    format: int64
                tool_selection_mode:
                    type: string
                    description: The toolset's tool selection mode
            description: A summary of the toolset backing a hosted MCP server.
            required:
                - id
                - slug
                - name
                - tool_count
                - tool_selection_mode
                - external_mcp_slugs
                - external_mcp_proxy_only
        MetaMcpDiscoveryFunnel:
            type: object
            properties:
                describe_server:
                    type: integer
                    description: describe_server calls
                    format: int64
                describe_tools:
                    type: integer
                    description: describe_tools calls
                    format: int64
                execute_tool:
                    type: integer
                    description: Tool executions dispatched through the gateway
                    format: int64
                list_servers:
                    type: integer
                    description: list_servers calls
                    format: int64
            description: Counts of each gateway drill-down stage in the window. Discovery stages come from meta_discovery events; executions from gateway-attributed tool calls.
            required:
                - list_servers
                - describe_server
                - describe_tools
                - execute_tool
        MetaMcpMember:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the membership
                    format: uuid
                mcp_server_id:
                    type: string
                    description: The ID of the member MCP server
                    format: uuid
                mcp_server_name:
                    type: string
                    description: The name of the member MCP server, when configured
                mcp_server_slug:
                    type: string
                    description: The slug of the member MCP server, when configured
                sort_order:
                    type: integer
                    description: The position of the member in the ordered member set
                    format: int64
            description: A membership row linking an MCP server into a meta MCP server's member set.
            required:
                - id
                - mcp_server_id
                - sort_order
        MetaMcpMemberUsage:
            type: object
            properties:
                error_count:
                    type: integer
                    description: Calls that returned an HTTP error status
                    format: int64
                last_called_at:
                    type: string
                    description: ISO 8601 timestamp of the most recent call
                    format: date-time
                mcp_server_id:
                    type: string
                    description: The member's mcp_servers row id
                    format: uuid
                tool_calls:
                    type: integer
                    description: Tool calls dispatched to this member through the gateway
                    format: int64
            description: Gateway-dispatched execution activity for one member server.
            required:
                - mcp_server_id
                - tool_calls
                - error_count
        MetaMcpServer:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the meta MCP server was created
                    format: date-time
                discovery_mode:
                    type: string
                    description: The effective default discovery mode. Unconfigured connections follow this value.
                    enum:
                        - progressive
                        - direct
                id:
                    type: string
                    description: The ID of the meta MCP server
                    format: uuid
                instructions:
                    type: string
                    description: Operator-authored server instructions returned in the gateway's MCP initialize response. Null when the gateway serves Speakeasy's built-in instructions.
                member_count:
                    type: integer
                    description: The number of live members. Only populated by listMetaMcpServers.
                    format: int64
                name:
                    type: string
                    description: The display name of the meta MCP server
                network_access_mode:
                    type: string
                    description: The network surfaces through which a Speakeasy-hosted MCP server may be reached.
                    enum:
                        - public_only
                        - dual
                        - private_only
                organization_id:
                    type: string
                    description: The organization this meta MCP server belongs to
                project_id:
                    type: string
                    description: The project this meta MCP server belongs to
                    format: uuid
                updated_at:
                    type: string
                    description: When the meta MCP server was last updated
                    format: date-time
                user_session_issuer_id:
                    type: string
                    description: The ID of the user session issuer used to authenticate callers. Null when no issuer is attached.
                    format: uuid
                visibility:
                    type: string
                    description: The visibility of a meta MCP server. Disabled refuses traffic; private requires a user session.
                    enum:
                        - disabled
                        - private
            description: 'A meta MCP server: an aggregate server fronting an explicitly managed set of MCP servers. URL addressability lives on its MCP endpoints.'
            required:
                - id
                - organization_id
                - project_id
                - name
                - visibility
                - network_access_mode
                - discovery_mode
                - created_at
                - updated_at
        MeterUsageBreakdown:
            type: object
            properties:
                dimension:
                    type: string
                    description: Selected family-compatible breakdown dimension
                    enum:
                        - total
                        - project
                        - model
                        - provider
                        - billing_mode
                        - assistant
                        - billing_user
                        - division
                        - department
                        - job_title
                        - employee_type
                        - cost_center
                        - directory_group_set
                        - direction
                        - mcp_server
                        - server_type
                        - scanner
                        - policy
                        - judge_model
                        - judge_provider
                        - tool_name
                series:
                    type: array
                    items:
                        $ref: '#/components/schemas/MeterUsageSeries'
                    description: At most six selected facet series plus a remainder
            required:
                - dimension
                - series
        MeterUsageBucket:
            type: object
            properties:
                from:
                    type: string
                    description: Inclusive bucket boundary
                    format: date-time
                to:
                    type: string
                    description: Exclusive bucket boundary
                    format: date-time
                total:
                    type: string
                    description: Exact integer ordinary usage quantity as a decimal string
            required:
                - from
                - to
                - total
        MeterUsageResponse:
            type: object
            properties:
                billing_cycles:
                    type: array
                    items:
                        $ref: '#/components/schemas/MeterUsageWindow'
                    description: Trailing twelve billing-cycle date windows
                breakdown:
                    $ref: '#/components/schemas/MeterUsageBreakdown'
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/MeterUsageBucket'
                    description: Dense UTC daily ordinary usage buckets, including in-progress days
                family:
                    type: string
                    enum:
                        - agent_session_storage
                        - mcp_bandwidth
                        - risk_content_scans
                measurement_method:
                    type: string
                queried_at:
                    type: string
                    description: Retrieval timestamp, not an ingestion watermark
                    format: date-time
                total:
                    type: string
                    description: Exact integer ordinary usage period total as a decimal string
                unit:
                    type: string
                    enum:
                        - stokens
                        - bytes
                window:
                    $ref: '#/components/schemas/MeterUsageWindow'
            required:
                - family
                - window
                - billing_cycles
                - unit
                - measurement_method
                - total
                - buckets
                - breakdown
                - queried_at
        MeterUsageSeries:
            type: object
            properties:
                key:
                    type: string
                    description: Canonical identity; present for value series and omitted for unset and remainder
                kind:
                    type: string
                    description: Identity kind for this series
                    enum:
                        - value
                        - unset
                        - remainder
                label:
                    type: string
                    description: Display label, never chart identity
                total:
                    type: string
                    description: Exact integer ordinary usage series total as a decimal string
                values:
                    type: array
                    items:
                        type: string
                    description: Exact integer ordinary usage values aligned one-for-one with buckets
            required:
                - kind
                - label
                - total
                - values
        MeterUsageWindow:
            type: object
            properties:
                from:
                    type: string
                    description: Inclusive UTC midnight window boundary
                    format: date-time
                to:
                    type: string
                    description: Exclusive UTC midnight window boundary
                    format: date-time
            required:
                - from
                - to
        MigrateExternalMcpServersRequestBody:
            type: object
            properties:
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminExternalMcpMigrationRequest'
                    description: Servers to migrate or delete, in order.
                    minItems: 1
                    maxItems: 100
            required:
                - servers
        MigrateIssuerRequestBody:
            type: object
            properties:
                source_id:
                    type: string
                    description: The remote_session_issuer to migrate away from; soft-deleted on success.
                    format: uuid
                target_id:
                    type: string
                    description: The remote_session_issuer to migrate onto; survives and adopts the source's clients.
                    format: uuid
            required:
                - source_id
                - target_id
        MigrateIssuerRequestBody2:
            type: object
            properties:
                confirmed_warnings_fingerprint:
                    type: string
                    description: The exact warnings_fingerprint returned by the latest preflight. Required when that preflight reports warnings.
                source_id:
                    type: string
                    description: The user_session_issuer to migrate away from; soft-deleted on success.
                    format: uuid
                target_id:
                    type: string
                    description: The surviving user_session_issuer.
                    format: uuid
            required:
                - source_id
                - target_id
        MigrateOrganizationRemoteSessionIssuerResult:
            type: object
            properties:
                clients_migrated:
                    type: integer
                    description: Number of remote_session_clients re-pointed from the source issuer to the target issuer. Zero when the source had no active clients.
                    format: int64
                issuer:
                    $ref: '#/components/schemas/RemoteSessionIssuer'
                source_deleted:
                    type: boolean
                    description: TRUE when the source issuer was soft-deleted.
            description: 'Outcome of consolidating a source remote_session_issuer onto a target issuer: the surviving target issuer, how many clients were re-pointed, and whether the source was soft-deleted.'
            required:
                - issuer
                - clients_migrated
                - source_deleted
        MigrateOrganizationUserSessionIssuerResult:
            type: object
            properties:
                cimd_clients_migrated:
                    type: integer
                    description: CIMD allowlist entries moved or merged.
                    format: int64
                clients_migrated:
                    type: integer
                    description: Clients re-pointed to the target.
                    format: int64
                consents_migrated:
                    type: integer
                    description: Consents normalized to the target scope.
                    format: int64
                issuer:
                    $ref: '#/components/schemas/UserSessionIssuer'
                remote_sessions_migrated:
                    type: integer
                    description: Remote-session credentials whose provenance moved.
                    format: int64
                sessions_migrated:
                    type: integer
                    description: User sessions re-pointed to the target.
                    format: int64
                source_deleted:
                    type: boolean
                    description: True when the source issuer was soft-deleted.
            description: Outcome of consolidating a source user_session_issuer onto a target issuer.
            required:
                - issuer
                - clients_migrated
                - sessions_migrated
                - consents_migrated
                - cimd_clients_migrated
                - remote_sessions_migrated
                - source_deleted
        MigrateRemoteSessionIssuerRequestBody:
            type: object
            properties:
                source_id:
                    type: string
                    description: The organization- or project-level remote_session_issuer to migrate away from; soft-deleted on success.
                    format: uuid
                target_id:
                    type: string
                    description: The global remote_session_issuer to migrate onto; survives and adopts the source's clients.
                    format: uuid
            required:
                - source_id
                - target_id
        MigrateRemoteSessionIssuerResult:
            type: object
            properties:
                clients_migrated:
                    type: integer
                    description: Number of remote_session_clients re-pointed from the source issuer to the target issuer. Zero when the source had no active clients.
                    format: int64
                issuer:
                    $ref: '#/components/schemas/RemoteSessionIssuer'
                source_deleted:
                    type: boolean
                    description: TRUE when the source issuer was soft-deleted.
            description: 'Outcome of consolidating a tenant remote_session_issuer onto a global issuer: the surviving global issuer, how many clients were re-pointed, and whether the source was soft-deleted.'
            required:
                - issuer
                - clients_migrated
                - source_deleted
        MintUserSessionRequestBody:
            type: object
            properties:
                discovery_mode:
                    type: string
                    description: An explicit discovery mode for a gateway Inspect connection. Valid only with meta_mcp_server_id. Omit to follow the gateway default.
                    enum:
                        - progressive
                        - direct
                mcp_server_id:
                    type: string
                    description: Bind the JWT to this MCP server's user_session_issuer audience (any issuer-gated backend, hosted servers included). Mutually exclusive with the other targets; exactly one must be set. Must be issuer-gated and live in the caller's project.
                    format: uuid
                meta_mcp_server_id:
                    type: string
                    description: Bind the JWT to this meta MCP server's user_session_issuer audience. Mutually exclusive with the other targets; exactly one must be set. Must be issuer-gated and live in the caller's project.
                    format: uuid
                toolset_id:
                    type: string
                    description: Bind the JWT to this toolset's audience. When the toolset has an mcp_servers wrapper the mint resolves to that server (identical to passing its mcp_server_id); otherwise the JWT is bound to the legacy toolset audience. Mutually exclusive with the other targets; exactly one must be set. Must be issuer-gated and live in the caller's project.
                    format: uuid
        MintUserSessionResponseBody:
            type: object
            properties:
                access_token:
                    type: string
                    description: 'The minted user-session JWT. Send as `Authorization: Bearer` on MCP requests to the bound /mcp/{slug} surface.'
                expires_in:
                    type: integer
                    description: Lifetime of the access token in seconds.
                    format: int64
            required:
                - access_token
                - expires_in
        ModelProviderKey:
            type: object
            properties:
                created_at:
                    type: string
                    description: ISO 8601 timestamp when the key was created.
                    format: date-time
                enabled:
                    type: boolean
                    description: Whether the key participates in key resolution.
                id:
                    type: string
                    description: The ID of the key
                    format: uuid
                project_id:
                    type: string
                    description: The project the key belongs to
                    format: uuid
                provider:
                    type: string
                    description: The model provider the key authenticates with. Supported values include openrouter.
                slot:
                    type: string
                    description: The responsibility slot the key applies to. The 'default' slot covers every slot without a dedicated override.
                updated_at:
                    type: string
                    description: ISO 8601 timestamp of the most recent change.
                    format: date-time
            description: A customer-supplied model provider API key bound to a project and responsibility slot. Key material is write-only and never returned.
            required:
                - id
                - project_id
                - slot
                - provider
                - enabled
                - created_at
                - updated_at
        ModelUsage:
            type: object
            properties:
                count:
                    type: integer
                    description: Number of times used
                    format: int64
                name:
                    type: string
                    description: Model name
            description: Model usage statistics
            required:
                - name
                - count
        MoveIssuerRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The remote_session_issuer id.
                    format: uuid
                project_id:
                    type: string
                    description: Target owning project id; the project must belong to the caller's organization. Omit to make the issuer organization-level.
                    format: uuid
            required:
                - id
        NetworkIngress:
            type: object
            properties:
                connected_since:
                    type: string
                    format: date-time
                created_at:
                    type: string
                    format: date-time
                credentials_configured:
                    type: boolean
                    description: Whether provider credentials are stored; credential values are never returned
                custom_domain_id:
                    type: string
                    description: Pinned custom-domain ID when endpoint_namespace_kind is custom_domain
                    format: uuid
                dns_name:
                    type: string
                    description: Observed private DNS name
                enabled:
                    type: boolean
                    description: Whether desired-state reconciliation may keep the ingress online
                endpoint_namespace_kind:
                    type: string
                    description: Pinned endpoint namespace
                    enum:
                        - platform
                        - custom_domain
                health_checked_at:
                    type: string
                    format: date-time
                hostname:
                    type: string
                    description: Private DNS label advertised by the provider
                id:
                    type: string
                    description: Network ingress ID
                    format: uuid
                identity_required:
                    type: boolean
                    description: Whether an attributable provider identity is required
                last_error:
                    type: string
                    description: Latest redacted error code
                organization_id:
                    type: string
                    description: Owning organization ID
                provider:
                    type: string
                    description: Private-network provider
                    enum:
                        - tailscale
                status:
                    type: string
                    description: Latest redacted lifecycle status
                updated_at:
                    type: string
                    format: date-time
            required:
                - id
                - organization_id
                - provider
                - hostname
                - endpoint_namespace_kind
                - enabled
                - identity_required
                - credentials_configured
                - status
                - created_at
                - updated_at
        NetworkIngressDeleteImpact:
            type: object
            properties:
                mcp_servers_dual:
                    type: integer
                    format: int64
                mcp_servers_private_only:
                    type: integer
                    format: int64
                meta_mcp_servers_dual:
                    type: integer
                    format: int64
                meta_mcp_servers_private_only:
                    type: integer
                    format: int64
            required:
                - mcp_servers_dual
                - mcp_servers_private_only
                - meta_mcp_servers_dual
                - meta_mcp_servers_private_only
        NetworkIngressResult:
            type: object
            properties:
                ingress:
                    $ref: '#/components/schemas/NetworkIngress'
            description: The organization's active private network ingress, when configured.
        NewClientCallbackURLResult:
            type: object
            properties:
                callback_url:
                    type: string
                    description: The redirect URI to register on the upstream provider's OAuth app.
                    format: uri
            description: The redirect URI a newly created remote_session_client registers.
            required:
                - callback_url
        NotModified:
            type: object
            properties:
                location:
                    type: string
            required:
                - location
        OAuthEnablementMetadata:
            type: object
            properties:
                oauth2_security_count:
                    type: integer
                    description: Count of security variables that are OAuth2 supported
                    format: int64
            required:
                - oauth2_security_count
        OTELAttribute:
            type: object
            properties:
                key:
                    type: string
                    description: Attribute key
                value:
                    $ref: '#/components/schemas/OTELAttributeValue'
            description: OTEL log attribute with key and typed value
            required:
                - key
        OTELAttributeValue:
            type: object
            properties:
                arrayValue:
                    description: Array value (passed through)
                boolValue:
                    type: boolean
                    description: Boolean value
                bytesValue:
                    type: string
                    description: Bytes value (base64-encoded per OTLP/JSON)
                doubleValue:
                    type: number
                    description: Double value
                    format: double
                intValue:
                    description: Integer value (string-encoded per OTLP/JSON, or raw number)
                kvlistValue:
                    description: Key-value list value (passed through)
                stringValue:
                    type: string
                    description: String value
            description: OTEL attribute value - any of the OTLP/JSON value kinds
        OTELLogBody:
            type: object
            properties:
                stringValue:
                    type: string
                    description: String body value
            description: OTEL log body
        OTELLogRecord:
            type: object
            properties:
                attributes:
                    type: array
                    items:
                        $ref: '#/components/schemas/OTELAttribute'
                    description: Log attributes
                body:
                    $ref: '#/components/schemas/OTELLogBody'
                droppedAttributesCount:
                    type: integer
                    description: Number of dropped attributes
                    format: int64
                observedTimeUnixNano:
                    type: string
                    description: Observed timestamp in nanoseconds
                spanId:
                    type: string
                    description: Span ID
                timeUnixNano:
                    type: string
                    description: Timestamp in nanoseconds since Unix epoch
                traceId:
                    type: string
                    description: Trace ID
            description: Individual OTEL log record
        OTELLogsPayload:
            type: object
            properties:
                resourceLogs:
                    type: array
                    items:
                        $ref: '#/components/schemas/OTELResourceLog'
                    description: Array of resource logs
            description: OTEL logs export payload
        OTELMetric:
            type: object
            properties:
                description:
                    type: string
                    description: Metric description
                exponentialHistogram:
                    description: ExponentialHistogram metric data (passed through)
                gauge:
                    description: Gauge metric data (passed through)
                histogram:
                    description: Histogram metric data (passed through)
                name:
                    type: string
                    description: Metric name
                sum:
                    $ref: '#/components/schemas/OTELSum'
                summary:
                    description: Summary metric data (passed through)
                unit:
                    type: string
                    description: Metric unit
            description: OTEL metric
        OTELMetricsPayload:
            type: object
            properties:
                resourceMetrics:
                    type: array
                    items:
                        $ref: '#/components/schemas/OTELResourceMetrics'
                    description: Array of resource metrics
            description: OTEL metrics export payload
        OTELNumberDataPoint:
            type: object
            properties:
                asDouble:
                    type: number
                    description: Value as double
                    format: double
                asInt:
                    description: Value as integer (string-encoded per OTLP/JSON, or raw number)
                attributes:
                    type: array
                    items:
                        $ref: '#/components/schemas/OTELAttribute'
                    description: Data point attributes
                startTimeUnixNano:
                    type: string
                    description: Start timestamp in nanoseconds
                timeUnixNano:
                    type: string
                    description: Timestamp in nanoseconds
            description: OTEL number data point
        OTELResource:
            type: object
            properties:
                attributes:
                    type: array
                    items:
                        $ref: '#/components/schemas/OTELResourceAttribute'
                    description: Resource attributes
                droppedAttributesCount:
                    type: integer
                    description: Number of dropped attributes
                    format: int64
            description: OTEL resource information
        OTELResourceAttribute:
            type: object
            properties:
                key:
                    type: string
                    description: Resource attribute key
                value:
                    $ref: '#/components/schemas/OTELAttributeValue'
            description: OTEL resource attribute
            required:
                - key
        OTELResourceLog:
            type: object
            properties:
                resource:
                    $ref: '#/components/schemas/OTELResource'
                scopeLogs:
                    type: array
                    items:
                        $ref: '#/components/schemas/OTELScopeLog'
                    description: Array of scope logs
            description: OTEL resource logs container
        OTELResourceMetrics:
            type: object
            properties:
                resource:
                    $ref: '#/components/schemas/OTELResource'
                scopeMetrics:
                    type: array
                    items:
                        $ref: '#/components/schemas/OTELScopeMetrics'
                    description: Array of scope metrics
            description: OTEL resource metrics container
        OTELScope:
            type: object
            properties:
                name:
                    type: string
                    description: Scope name
                version:
                    type: string
                    description: Scope version
            description: OTEL instrumentation scope
        OTELScopeLog:
            type: object
            properties:
                logRecords:
                    type: array
                    items:
                        $ref: '#/components/schemas/OTELLogRecord'
                    description: Array of log records
                scope:
                    $ref: '#/components/schemas/OTELScope'
            description: OTEL scope logs container
        OTELScopeMetrics:
            type: object
            properties:
                metrics:
                    type: array
                    items:
                        $ref: '#/components/schemas/OTELMetric'
                    description: Array of metrics
                scope:
                    $ref: '#/components/schemas/OTELScope'
            description: OTEL scope metrics container
        OTELSum:
            type: object
            properties:
                aggregationTemporality:
                    description: Aggregation temporality (number or enum string)
                dataPoints:
                    type: array
                    items:
                        $ref: '#/components/schemas/OTELNumberDataPoint'
                    description: Data points
                isMonotonic:
                    type: boolean
                    description: Whether the sum is monotonic
            description: OTEL sum metric
        ObservabilitySummary:
            type: object
            properties:
                avg_latency_ms:
                    type: number
                    description: Average tool latency in milliseconds
                    format: double
                avg_resolution_time_ms:
                    type: number
                    description: Average time to resolution in milliseconds
                    format: double
                avg_session_duration_ms:
                    type: number
                    description: Average session duration in milliseconds
                    format: double
                cache_creation_input_tokens:
                    type: integer
                    description: Sum of cache creation input tokens
                    format: int64
                cache_read_input_tokens:
                    type: integer
                    description: Sum of cache read input tokens
                    format: int64
                failed_chats:
                    type: integer
                    description: Number of failed chat sessions
                    format: int64
                failed_tool_calls:
                    type: integer
                    description: Number of failed tool calls
                    format: int64
                resolved_chats:
                    type: integer
                    description: Number of resolved chat sessions
                    format: int64
                total_chats:
                    type: integer
                    description: Total number of chat sessions
                    format: int64
                total_cost:
                    type: number
                    description: Total cost of all requests
                    format: double
                total_input_tokens:
                    type: integer
                    description: Sum of input tokens used
                    format: int64
                total_output_tokens:
                    type: integer
                    description: Sum of output tokens used
                    format: int64
                total_tokens:
                    type: integer
                    description: Sum of all tokens used
                    format: int64
                total_tool_calls:
                    type: integer
                    description: Total number of tool calls
                    format: int64
            description: Aggregated summary metrics for a time period
            required:
                - total_chats
                - resolved_chats
                - failed_chats
                - avg_session_duration_ms
                - avg_resolution_time_ms
                - total_input_tokens
                - total_output_tokens
                - total_tokens
                - cache_read_input_tokens
                - cache_creation_input_tokens
                - total_cost
                - total_tool_calls
                - failed_tool_calls
                - avg_latency_ms
        OktaIdentityProviderConnection:
            type: object
            properties:
                active_key:
                    $ref: '#/components/schemas/IdentityProviderConnectionActiveKey'
                agent_app_id:
                    type: string
                    description: Admin-entered Okta application ID the AI agent is bound to. Display only.
                agent_id:
                    type: string
                    description: Admin-entered Okta AI agent ID. Display only.
                applications_sync:
                    $ref: '#/components/schemas/IdentityProviderConnectionApplicationsSync'
                checklist:
                    type: array
                    items:
                        $ref: '#/components/schemas/IdentityProviderConnectionChecklistItem'
                    description: Console steps for the connection's listing mode, in order.
                client_id:
                    type: string
                    description: Okta application client ID. Omitted until submitted.
                client_id_submitted:
                    type: boolean
                    description: Whether the real Okta client ID has replaced the provisioning placeholder.
                created_at:
                    type: string
                    format: date-time
                dpop_required:
                    type: boolean
                    description: Whether Okta issued a DPoP-bound token at the last verification.
                granted_scopes:
                    type: array
                    items:
                        type: string
                    description: Scopes Okta granted at the last verification.
                id:
                    type: string
                    description: Connection ID.
                    format: uuid
                issuer_url:
                    type: string
                    description: Discovered authorization server issuer. Equal to org_url by construction.
                jwks_url:
                    type: string
                    description: Public JWKS URL the Okta app is configured to trust for private_key_jwt. Omitted for connections installed from the Okta Integration Network, which authenticate with a client secret.
                last_error:
                    type: string
                    description: 'Why the last verification did not complete: Okta rejected the credential, or could not be reached. Omitted when it completed.'
                    enum:
                        - credential_rejected
                        - okta_unreachable
                last_verified_at:
                    type: string
                    description: ISO 8601 timestamp of the last verification that found every required scope granted. Omitted until then.
                    format: date-time
                listing_mode:
                    type: string
                    description: 'Which checklist template applies: custom_app when the admin creates the API Services app by hand, oin when the Speakeasy OIN listing is added from the catalog.'
                    enum:
                        - custom_app
                        - oin
                missing_scopes:
                    type: array
                    items:
                        type: string
                    description: Required scopes Okta did not grant at the last verification.
                org_url:
                    type: string
                    description: Okta org URL, for example https://example.okta.com.
                organization_id:
                    type: string
                    description: Organization the connection belongs to.
                provider:
                    type: string
                    description: Identity provider; always okta.
                    enum:
                        - okta
                remote_session_issuer_id:
                    type: string
                    description: Organization remote session issuer that backs this connection. Omitted until the managed client is provisioned.
                    format: uuid
                required_scopes:
                    type: array
                    items:
                        type: string
                    description: Okta API scopes the integration needs.
                status:
                    type: string
                    description: Connection state. pending until the client ID is submitted and verified; verified when every required scope is granted over DPoP; degraded when verification found gaps (see verification_reasons); revoked once the credential was withdrawn.
                    enum:
                        - pending
                        - verified
                        - degraded
                        - revoked
                updated_at:
                    type: string
                    format: date-time
                verification_reasons:
                    type: array
                    items:
                        type: string
                        enum:
                            - missing_scope
                            - missing_role
                            - dpop_not_bound
                            - key_not_fetched
                            - secret_rejected
                            - read_failed:okta.apps.read
                            - read_failed:okta.users.read
                            - read_failed:okta.groups.read
                    description: Typed reasons recorded by the last verification; empty when verified or not yet verified. missing_role is reserved for a later release.
            description: 'An organization''s Okta connection: the service application Speakeasy authenticates to the Okta Management API with, its verification state, and the console checklist. Never carries key material or tokens.'
            required:
                - id
                - organization_id
                - provider
                - status
                - org_url
                - issuer_url
                - listing_mode
                - client_id_submitted
                - dpop_required
                - required_scopes
                - granted_scopes
                - missing_scopes
                - verification_reasons
                - checklist
                - applications_sync
                - created_at
                - updated_at
        OktaResourceConnectionConfirmation:
            type: object
            properties:
                audience:
                    type: string
                    description: The issuer URL entered on the resource app's Cross App Access settings; the identity assertion audience. Must be an https URL without query or fragment.
                    format: uri
                    pattern: ^https://[^?#]+$
                    maxLength: 512
                mcp_server_id:
                    type: string
                    description: Server whose upstream was connected.
                    format: uuid
                okta_application_id:
                    type: string
                    description: The identity provider app instance picked for this upstream, from the applications snapshot.
                    maxLength: 64
            description: One server the administrator connected in the identity provider console, with the values they configured there.
            required:
                - mcp_server_id
                - audience
        OktaResourceConnectionServer:
            type: object
            properties:
                audience:
                    type: string
                    description: The resource app's Cross App Access issuer URL as configured in the identity provider; the audience of the identity assertion. Present once confirmed.
                authorization_server_issuer:
                    type: string
                    description: The server's authorization server issuer; the Issuer URL to enter when enabling Cross App Access on a resource app. Omitted when unknown.
                broken_reason:
                    type: string
                    description: 'Present when state is broken. audience_mismatch: legacy value, no longer emitted; the administrator-confirmed Okta audience may differ from the server''s authorization server issuer; scope_not_allowed: the connection does not allow the requested scopes; client_auth_failed: the identity provider rejected the agent app''s client authentication; downstream_rejected: the identity provider issued the assertion but the server''s authorization server refused it.'
                    enum:
                        - audience_mismatch
                        - scope_not_allowed
                        - client_auth_failed
                        - downstream_rejected
                client_binding:
                    type: string
                    description: 'bound: an explicit identity chaining binding selects the client; single: the one client attached to the authorization server; ambiguous: more than one candidate and no single binding; missing: no client registered yet.'
                    enum:
                        - bound
                        - single
                        - ambiguous
                        - missing
                client_id:
                    type: string
                    description: Speakeasy's client ID at the server's authorization server. Omitted when no client is bound yet.
                confirmed_at:
                    type: string
                    description: When the administrator confirmed the connection for this server's upstream.
                    format: date-time
                deep_link:
                    type: string
                    description: Link to the add-resource-connection form of the AI agent in the identity provider console. Omitted until an agent is recorded or when the org uses a custom domain.
                issuer_id:
                    type: string
                    description: The upstream authorization server ID. Together with the resource indicator, identifies the shared readiness confirmation; independent of the confirmed identity assertion audience.
                    format: uuid
                mcp_server_id:
                    type: string
                    description: MCP server ID.
                    format: uuid
                not_applicable_reason:
                    type: string
                    description: 'no_idjag: the server''s authorization server metadata does not advertise the identity assertion grant.'
                    enum:
                        - no_idjag
                observed_at:
                    type: string
                    description: When the exchange behind observed_result started.
                    format: date-time
                observed_result:
                    type: string
                    description: What the latest identity chaining exchange since confirmation showed. connection_missing is inferred from the identity provider's invalid_target error.
                    enum:
                        - verified
                        - downstream_rejected
                        - connection_missing
                        - scope_not_allowed
                        - client_auth_failed
                okta_application_id:
                    type: string
                    description: The identity provider app instance the administrator picked for this upstream, when recorded.
                okta_application_label:
                    type: string
                    description: Label of that app instance in the latest applications snapshot; omitted when the instance is no longer there.
                pending:
                    type: boolean
                    description: Whether the administrator still has a step to do for this server.
                project_id:
                    type: string
                    description: Project the server belongs to.
                    format: uuid
                project_slug:
                    type: string
                resource_indicator:
                    type: string
                    description: 'The resource indicator to enter on the connection: the server''s RFC 9728 resource identifier when known, otherwise its URL.'
                scopes:
                    type: array
                    items:
                        type: string
                    description: Scopes Speakeasy requests at the resource.
                server_name:
                    type: string
                    description: Server display name; admin-editable, never a key.
                server_slug:
                    type: string
                state:
                    type: string
                    description: 'Derived readiness. not_applicable: see not_applicable_reason; needs_agent: no AI agent recorded on the connection; needs_connection: the agent-to-resource connection has not been confirmed for this server''s upstream, or an exchange since confirmation found it missing; broken: confirmed but known not to work, see broken_reason; connected: the administrator confirmed it and no conclusive exchange has run since; verified: an exchange since confirmation succeeded.'
                    enum:
                        - not_applicable
                        - needs_agent
                        - needs_connection
                        - broken
                        - connected
                        - verified
            description: One MCP server and the Okta resource connection recorded for its upstream, with the derived Cross App Access state and the exact values the administrator enters in the identity provider console. Servers that share an upstream resource share one Okta resource connection.
            required:
                - mcp_server_id
                - project_id
                - project_slug
                - server_name
                - server_slug
                - state
                - pending
                - resource_indicator
                - scopes
                - client_binding
        OktaServerSuggestion:
            type: object
            properties:
                description:
                    type: string
                dismissed_at:
                    type: string
                    description: When the suggestion was dismissed; present while a dismissal is recorded, whatever the state.
                    format: date-time
                documentation_url:
                    type: string
                    description: Public documentation URL when the entry has one.
                icon_url:
                    type: string
                    description: HTTPS URL of the entry's icon when it has one.
                    format: uri
                installed_urls:
                    type: array
                    items:
                        type: string
                    description: The entry URLs the organization already fronts with a live MCP server.
                okta_applications:
                    type: array
                    items:
                        $ref: '#/components/schemas/OktaServerSuggestionApplication'
                    description: Matching Okta application instances, by label.
                registry_entry_id:
                    type: string
                    description: Catalog entry id; the key for dismiss and restore.
                    format: uuid
                remotes:
                    type: array
                    items:
                        $ref: '#/components/schemas/OktaServerSuggestionRemote'
                    description: Remote endpoints in catalog order.
                server_name:
                    type: string
                    description: Catalog server name, for example io.example/linear; also the registry specifier for catalog lookups.
                state:
                    type: string
                    description: 'open: not yet acted on; dismissed: an administrator dismissed it; installed: a live MCP server in one of the organization''s projects fronts one of the entry''s URLs (trailing slashes ignored; legacy deployment attachments are not consulted). Installed outranks dismissed.'
                    enum:
                        - open
                        - dismissed
                        - installed
                supports_dcr:
                    type: boolean
                    description: Whether the catalog records that the server's authorization server supports OAuth dynamic client registration; install flows default to per-user OAuth when true.
                title:
                    type: string
                    description: Catalog display title when the entry has one.
                xaa_issuer:
                    type: string
                    description: Vendor Issuer URL for Cross App Access when the catalog knows it.
            description: A Speakeasy-owned catalog entry whose Okta mapping matches at least one active, assigned application in the organization's Okta snapshot. Suggest only; nothing is created until the administrator accepts through the remote MCP install flow.
            required:
                - registry_entry_id
                - server_name
                - description
                - remotes
                - okta_applications
                - state
                - installed_urls
                - supports_dcr
        OktaServerSuggestionApplication:
            type: object
            properties:
                group_assignments:
                    type: integer
                    description: Live group assignments.
                    format: int64
                label:
                    type: string
                    description: Admin-facing label. Admin-editable; never a key.
                name:
                    type: string
                    description: Okta application template name; the key that matched the catalog entry.
                okta_app_id:
                    type: string
                    description: Okta application id.
                sign_on_mode:
                    type: string
                user_assignments:
                    type: integer
                    description: Live direct and group-derived user assignments.
                    format: int64
                xaa_supported:
                    type: boolean
                    description: Whether this instance's sign-on mode supports Cross App Access. False for password-vault (SWA) and bookmark instances.
            description: One synced Okta application instance that maps to the suggested server.
            required:
                - okta_app_id
                - label
                - name
                - sign_on_mode
                - xaa_supported
                - user_assignments
                - group_assignments
        OktaServerSuggestionRemote:
            type: object
            properties:
                headers:
                    type: array
                    items:
                        $ref: '#/components/schemas/OktaServerSuggestionRemoteHeader'
                    description: Headers the endpoint expects, in catalog order.
                type:
                    type: string
                    description: Transport type, for example streamable-http.
                url:
                    type: string
                    description: Endpoint URL to create the remote MCP server with.
                    format: uri
            description: One remote endpoint of the suggested server, as the catalog entry lists it. The administrator picks one when there are several.
            required:
                - type
                - url
                - headers
        OktaServerSuggestionRemoteHeader:
            type: object
            properties:
                description:
                    type: string
                is_required:
                    type: boolean
                is_secret:
                    type: boolean
                name:
                    type: string
                    description: Header name.
            description: A header the remote endpoint expects, as the catalog entry lists it; the install flow collects required ones from the administrator.
            required:
                - name
                - is_required
                - is_secret
        OnboardingHookEvent:
            type: object
            properties:
                chat_id:
                    type: string
                    description: Speakeasy chat/session ID that owns this event, when present.
                event_name:
                    type: string
                    description: Hook event name (e.g. PreToolUse, SessionStart).
                project_slug:
                    type: string
                    description: Slug of the Speakeasy project that received the event.
                source:
                    type: string
                    description: 'Hook source: claude_code, cursor, or codex.'
                status:
                    type: string
                    description: 'Outcome status: allowed, blocked, failure, or pending.'
                time_unix_nano:
                    type: string
                    description: Event timestamp in nanoseconds since unix epoch. Stringified to preserve int64 precision.
                tool_name:
                    type: string
                    description: Tool invoked by the hook, if any.
                user_email:
                    type: string
                    description: Email of the user whose session produced the event, when present in hook attributes.
            required:
                - time_unix_nano
                - source
                - project_slug
        OnboardingStatusResult:
            type: object
            properties:
                domain_verified:
                    type: boolean
                    description: Whether the organization has at least one verified domain in WorkOS. Single sign-on cannot be set up until one is verified.
                dsync_configured:
                    type: boolean
                    description: Whether the organization has at least one linked directory sync in WorkOS.
                sso_configured:
                    type: boolean
                    description: Whether the organization has at least one active SSO connection in WorkOS.
                verified_domains:
                    type: array
                    items:
                        type: string
                    description: Domains WorkOS has verified for the organization. Single sign-on only works for users on these domains.
            required:
                - sso_configured
                - dsync_configured
                - domain_verified
                - verified_domains
        OpenAPIv3AffectedToolset:
            type: object
            properties:
                affected_tool_count:
                    type: integer
                    description: The number of those tools with breaking changes or changes that need attention.
                    format: int64
                id:
                    type: string
                    description: The ID of the toolset.
                mcp_enabled:
                    type: boolean
                    description: Whether the toolset is served as an MCP server.
                mcp_slug:
                    type: string
                    description: The MCP slug of the toolset, when it is served as an MCP server.
                name:
                    type: string
                    description: The name of the toolset.
                oauth_configured:
                    type: boolean
                    description: Whether the MCP server has OAuth configured.
                slug:
                    type: string
                    description: The slug of the toolset.
                tool_count:
                    type: integer
                    description: The number of tools from this source in the toolset.
                    format: int64
            required:
                - id
                - name
                - slug
                - mcp_enabled
                - oauth_configured
                - tool_count
                - affected_tool_count
        OpenAPIv3DeploymentAsset:
            type: object
            properties:
                asset_id:
                    type: string
                    description: The ID of the uploaded asset.
                id:
                    type: string
                    description: The ID of the deployment asset.
                name:
                    type: string
                    description: The name to give the document as it will be displayed in UIs.
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - id
                - asset_id
                - name
                - slug
        OpenAPIv3DocumentSnapshot:
            type: object
            properties:
                default_security:
                    type: string
                    description: The document-level security requirement.
                security_schemes:
                    type: array
                    items:
                        $ref: '#/components/schemas/OpenAPIv3SecuritySchemeSummary'
                    description: The security schemes tools can use.
                server_url:
                    type: string
                    description: The default server URL tools call.
                skipped_operation_count:
                    type: integer
                    description: The number of operations that cannot be turned into tools.
                    format: int64
                tool_count:
                    type: integer
                    description: The number of tools the document produces.
                    format: int64
            required:
                - tool_count
                - skipped_operation_count
                - security_schemes
                - default_security
        OpenAPIv3Evaluation:
            type: object
            properties:
                affected_toolsets:
                    type: array
                    items:
                        $ref: '#/components/schemas/OpenAPIv3AffectedToolset'
                    description: Toolsets (MCP servers) that include tools from this source.
                asset_id:
                    type: string
                    description: The asset ID of the evaluated document. Absent when the source was removed.
                base:
                    $ref: '#/components/schemas/OpenAPIv3DocumentSnapshot'
                base_asset_id:
                    type: string
                    description: The asset ID of the deployed document. Absent for a new source.
                breaking_count:
                    type: integer
                    description: The number of breaking changes.
                    format: int64
                changes:
                    type: array
                    items:
                        $ref: '#/components/schemas/OpenAPIv3EvaluationChange'
                    description: Every change found, most severe first.
                info_count:
                    type: integer
                    description: The number of informational changes.
                    format: int64
                name:
                    type: string
                    description: The display name of the OpenAPI source.
                next:
                    $ref: '#/components/schemas/OpenAPIv3DocumentSnapshot'
                slug:
                    type: string
                    description: The slug of the OpenAPI source.
                status:
                    type: string
                    description: Whether the source is new, changed, unchanged or removed.
                    enum:
                        - new
                        - changed
                        - unchanged
                        - removed
                warning_count:
                    type: integer
                    description: The number of changes that need attention.
                    format: int64
            description: The changes an OpenAPI document introduces compared with the deployed version of the same source.
            required:
                - slug
                - name
                - status
                - changes
                - breaking_count
                - warning_count
                - info_count
                - affected_toolsets
        OpenAPIv3EvaluationChange:
            type: object
            properties:
                category:
                    type: string
                    description: The part of the MCP an OpenAPI change affects.
                    enum:
                        - security
                        - tools
                        - server
                code:
                    type: string
                    description: A stable identifier for the kind of change.
                details:
                    type: array
                    items:
                        type: string
                    description: Supporting lines, such as before and after values.
                severity:
                    type: string
                    description: How likely an OpenAPI change is to break existing MCP servers.
                    enum:
                        - breaking
                        - warning
                        - info
                title:
                    type: string
                    description: A one-line summary of the change.
                tools:
                    type: array
                    items:
                        type: string
                    description: The names of the tools the change affects.
            required:
                - severity
                - category
                - code
                - title
                - details
                - tools
        OpenAPIv3SecuritySchemeSummary:
            type: object
            properties:
                env_variables:
                    type: array
                    items:
                        type: string
                    description: The environment variables that supply credentials for the scheme.
                key:
                    type: string
                    description: The name of the scheme under components.securitySchemes.
                summary:
                    type: string
                    description: A short description of the scheme.
                type:
                    type: string
                    description: The OpenAPI security scheme type.
            required:
                - key
                - type
                - summary
                - env_variables
        Organization:
            type: object
            properties:
                account_type:
                    type: string
                    description: The account type of the organization
                created_at:
                    type: string
                    description: The creation date of the organization.
                    format: date-time
                id:
                    type: string
                    description: The ID of the organization
                name:
                    type: string
                    description: The name of the organization
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                updated_at:
                    type: string
                    description: The last update date of the organization.
                    format: date-time
                webhooks_enabled:
                    type: boolean
                    description: Whether webhooks are enabled for the organization
                webhooks_onboarded:
                    type: boolean
                    description: Whether webhooks support is initialized for the organization
            required:
                - id
                - name
                - slug
                - account_type
                - webhooks_onboarded
                - webhooks_enabled
                - created_at
                - updated_at
        OrganizationClientDelegationStatus:
            type: object
            properties:
                observations:
                    type: array
                    items:
                        $ref: '#/components/schemas/DelegationStatusCount'
                status:
                    type: string
                    description: unknown means no current observations; observed means matching observations exist; configuration_failure means the current delegation configuration is known to be invalid, not a per-human observation.
                    enum:
                        - unknown
                        - observed
                        - configuration_failure
                window_start:
                    type: string
                    description: Inclusive observation window start.
                    format: date-time
            description: Latest per-human observations for the current client configuration within 30 days. Unknown when no matching observations exist. A known invalid delegation configuration, including a missing active signing key, reports configuration_failure with no observations. Credential presence does not guarantee future renewal.
            required:
                - status
                - window_start
                - observations
        OrganizationClientDeletePreflight:
            type: object
            properties:
                blocking_reason:
                    type: string
                    description: Stable reason deletion is blocked. Present when can_delete is false.
                    enum:
                        - identity_provider_login
                        - identity_chaining
                can_delete:
                    type: boolean
                    description: Whether the client can be deleted now.
                ema_binding_count:
                    type: integer
                    description: Active identity-chaining bindings that must be explicitly unlinked before deletion.
                    format: int64
                mcp_server_names:
                    type: array
                    items:
                        type: string
                    description: Display names of MCP servers this client is attached to.
                session_count:
                    type: integer
                    description: Number of non-deleted remote_sessions minted against this client.
                    format: int64
                trusted_user_session_issuers:
                    type: array
                    items:
                        $ref: '#/components/schemas/TrustedClientUserSessionIssuerReference'
                    description: Organization-owned user-session issuers that use this client for identity-provider login and block deletion.
            description: Authoritative impact summary for deleting a remote_session_client, including identity-provider login references that block deletion.
            required:
                - session_count
                - mcp_server_names
                - trusted_user_session_issuers
                - can_delete
                - ema_binding_count
        OrganizationEntry:
            type: object
            properties:
                id:
                    type: string
                name:
                    type: string
                projects:
                    type: array
                    items:
                        $ref: '#/components/schemas/ProjectEntry'
                scim_enabled:
                    type: boolean
                    description: Whether SCIM directory sync is enabled for this organization (synced from WorkOS)
                slug:
                    type: string
                sso_enabled:
                    type: boolean
                    description: Whether SSO is enabled for this organization (synced from WorkOS)
                user_workspace_slugs:
                    type: array
                    items:
                        type: string
            required:
                - id
                - name
                - slug
                - projects
        OrganizationGateway:
            type: object
            properties:
                available:
                    type: boolean
                    description: Whether the organization is served a gateway.
                unavailable_reason:
                    type: string
                    description: Why the gateway is not served. Set only when not available.
                    enum:
                        - no_organization_issuer
                        - multiple_organization_issuers
                        - custom_domain_only
                        - organization_disabled
                        - turned_off
                url:
                    type: string
                    description: The gateway's MCP URL. Set only when available.
            description: The active organization's gateway, or why it is not served.
            required:
                - available
        OrganizationInvitation:
            type: object
            properties:
                accepted_at:
                    type: string
                    description: When the invitation was accepted.
                    format: date-time
                created_at:
                    type: string
                    format: date-time
                email:
                    type: string
                    description: Invitee email address.
                expires_at:
                    type: string
                    description: When the invitation expires.
                    format: date-time
                id:
                    type: string
                    description: WorkOS invitation ID.
                inviter_user_id:
                    type: string
                    description: Speakeasy user ID of the inviter, when known.
                revoked_at:
                    type: string
                    description: When the invitation was revoked.
                    format: date-time
                role_slug:
                    type: string
                    description: WorkOS role slug assigned when the invite is accepted.
                state:
                    type: string
                    description: Invitation lifecycle state.
                    enum:
                        - pending
                        - accepted
                        - expired
                        - revoked
                updated_at:
                    type: string
                    format: date-time
            required:
                - id
                - email
                - state
                - created_at
                - updated_at
        OrganizationInvitationAccept:
            type: object
            properties:
                accept_invitation_url:
                    type: string
                    description: URL to complete acceptance in WorkOS (may be empty when not actionable).
                email:
                    type: string
                    description: Invitee email address.
                organization_name:
                    type: string
                    description: Speakeasy organization display name when the org is linked in Speakeasy; empty if unknown.
                state:
                    type: string
                    description: Invitation lifecycle state.
                    enum:
                        - pending
                        - accepted
                        - expired
                        - revoked
            required:
                - email
                - state
                - organization_name
                - accept_invitation_url
        OrganizationIssuerDeletePreflight:
            type: object
            properties:
                client_count:
                    type: integer
                    description: Number of non-deleted remote_session_clients registered with this issuer.
                    format: int64
                ema_binding_count:
                    type: integer
                    description: Active identity-chaining bindings that must be explicitly unlinked before deletion.
                    format: int64
                mcp_server_names:
                    type: array
                    items:
                        type: string
                    description: Display names of MCP servers attached to this issuer's clients.
                trusted_user_session_issuers:
                    type: array
                    items:
                        $ref: '#/components/schemas/TrustedUserSessionIssuerReference'
                    description: Organization-owned user_session_issuers that trust this issuer and block deletion.
            description: 'Authoritative impact summary for deleting a remote_session_issuer: its client, trusted user-session-issuer, and active identity-chaining binding references.'
            required:
                - client_count
                - mcp_server_names
                - trusted_user_session_issuers
                - ema_binding_count
        OrganizationIssuerMigratePreflight:
            type: object
            properties:
                can_migrate:
                    type: boolean
                    description: 'TRUE when the migration would succeed: no active identity-chaining bindings, endpoint mismatches, conflicting MCP-server bindings, or user-session issuers that trust the source.'
                client_count:
                    type: integer
                    description: Number of non-deleted remote_session_clients that would be re-pointed from the source issuer to the target issuer.
                    format: int64
                conflicting_mcp_server_names:
                    type: array
                    items:
                        type: string
                    description: Display names of MCP servers where both the source and the target issuer already have a client bound. Non-empty blocks the migration; detach one client per listed server and retry.
                ema_binding_count:
                    type: integer
                    description: Number of active identity-chaining bindings on the source. Non-zero blocks migration; explicitly unlink these bindings before migration, then prepare new bindings for the target.
                    format: int64
                endpoint_mismatches:
                    type: array
                    items:
                        $ref: '#/components/schemas/IssuerFieldMismatch'
                    description: The authorization-server metadata fields (issuer, token_endpoint, authorization_endpoint) that differ between source and target, with both sides' values. Non-empty blocks the migration.
                mcp_server_names:
                    type: array
                    items:
                        type: string
                    description: Display names of MCP servers attached to the source issuer's clients.
                trusted_user_session_issuers:
                    type: array
                    items:
                        $ref: '#/components/schemas/TrustedUserSessionIssuerReference'
                    description: User-session issuers that trust the source and block migration until explicitly unlinked or re-linked.
                warnings:
                    type: array
                    items:
                        $ref: '#/components/schemas/IssuerFieldMismatch'
                    description: Non-blocking divergences (oidc, passthrough, scopes_supported), with both sides' values. The target issuer's values become authoritative for the migrated clients.
            description: 'Authoritative impact summary for migrating a remote_session_issuer''s clients onto another issuer: how many clients move, which MCP servers are affected, and every blocker that would make the migration fail.'
            required:
                - ema_binding_count
                - client_count
                - mcp_server_names
                - endpoint_mismatches
                - conflicting_mcp_server_names
                - warnings
                - trusted_user_session_issuers
                - can_migrate
        OrganizationMcpServer:
            type: object
            properties:
                id:
                    type: string
                    description: The mcp_server id.
                    format: uuid
                name:
                    type: string
                    description: The MCP server name; empty when unset (display falls back to the URL).
                project_id:
                    type: string
                    description: The owning project id.
                    format: uuid
                project_slug:
                    type: string
                    description: The owning project's slug, for linking to the MCP server in its project.
                slug:
                    type: string
                    description: The MCP server slug.
                url:
                    type: string
                    description: The remote MCP server URL; empty for non-remote (toolset-backed) servers.
            description: An MCP server attached to a remote_session_client, with the fields the org-admin UI needs to display and link to it.
            required:
                - id
                - project_id
        OrganizationRemoteSessionClient:
            type: object
            properties:
                active_session_count:
                    type: integer
                    description: Number of non-deleted (active) remote_sessions minted against this client.
                    format: int64
                client:
                    $ref: '#/components/schemas/RemoteSessionClient'
                mcp_server_count:
                    type: integer
                    description: Number of non-deleted MCP servers attached to this client (via user_session_issuers).
                    format: int64
            description: 'An organization-administrator view of a remote_session_client: the client plus the number of MCP servers it is attached to and the number of active sessions minted against it.'
            required:
                - client
                - mcp_server_count
                - active_session_count
        OrganizationRemoteSessionIssuer:
            type: object
            properties:
                client_count:
                    type: integer
                    description: Number of non-deleted remote_session_clients registered with this issuer.
                    format: int64
                issuer:
                    $ref: '#/components/schemas/RemoteSessionIssuer'
                project_name:
                    type: string
                    description: The owning project's name. Empty for organizational (project_id NULL) issuers.
            description: 'An organization-administrator view of a remote_session_issuer: the issuer plus its associated client count and (for project-specific issuers) the owning project''s name.'
            required:
                - issuer
                - client_count
        OrganizationUser:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                email:
                    type: string
                    description: User email address.
                id:
                    type: string
                    description: Speakeasy relationship row ID.
                last_login:
                    type: string
                    description: Timestamp of the user's most recent login.
                    format: date-time
                name:
                    type: string
                    description: User display name.
                organization_id:
                    type: string
                    description: Speakeasy organization ID.
                photo_url:
                    type: string
                    description: User photo URL.
                updated_at:
                    type: string
                    format: date-time
                user_id:
                    type: string
                    description: Speakeasy user ID.
                workos_membership_id:
                    type: string
                    description: WorkOS organization membership ID when known.
            required:
                - id
                - organization_id
                - user_id
                - name
                - email
                - created_at
                - updated_at
        OrganizationUserSessionIssuerDeletePreflight:
            type: object
            properties:
                can_delete:
                    type: boolean
                    description: True when no live MCP server, toolset, or active identity-chaining binding references the issuer.
                client_count:
                    type: integer
                    description: Number of non-deleted user_session_clients registered with the issuer.
                    format: int64
                ema_binding_count:
                    type: integer
                    description: Active identity-chaining bindings that must be explicitly unlinked before deletion.
                    format: int64
                live_session_count:
                    type: integer
                    description: Number of non-deleted, unexpired user_sessions issued by the issuer.
                    format: int64
                mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/OrganizationUserSessionIssuerReference'
                    description: Live MCP servers that block deletion.
                toolsets:
                    type: array
                    items:
                        $ref: '#/components/schemas/OrganizationUserSessionIssuerReference'
                    description: Live toolsets that block deletion.
                withdraws_organization_gateway:
                    type: boolean
                    description: True when this is the organization's only organization-level issuer, so deleting it stops serving the organization gateway its members sign in to. Does not block deletion.
            description: Authoritative impact summary for deleting an organization-owned user_session_issuer.
            required:
                - client_count
                - live_session_count
                - mcp_servers
                - toolsets
                - can_delete
                - ema_binding_count
                - withdraws_organization_gateway
        OrganizationUserSessionIssuerMigratePreflight:
            type: object
            properties:
                can_migrate:
                    type: boolean
                    description: True when no hard blocker is present.
                cimd_client_count:
                    type: integer
                    description: Custom CIMD allowlist entries that would move or merge.
                    format: int64
                client_count:
                    type: integer
                    description: Clients that would move.
                    format: int64
                conflicting_client_ids:
                    type: array
                    items:
                        type: string
                    description: Active OAuth client ids already present on both issuers. Non-empty blocks migration.
                consent_count:
                    type: integer
                    description: User-session consents that would move.
                    format: int64
                ema_binding_conflict_count:
                    type: integer
                    description: Enterprise-managed authorization bindings already present on the target. Non-zero blocks migration.
                    format: int64
                platform_owned:
                    type: boolean
                    description: Whether a Platform MCP catalog registration owns either issuer. True blocks migration.
                principal_binding_conflict_count:
                    type: integer
                    description: Active principal bindings that would violate target uniqueness. Non-zero blocks migration.
                    format: int64
                remote_session_count:
                    type: integer
                    description: Remote-session credentials whose issuer provenance would move.
                    format: int64
                session_count:
                    type: integer
                    description: User sessions that would move.
                    format: int64
                warnings:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionIssuerFieldMismatch'
                    description: 'Configuration differences that do not block the migration. The target''s values become authoritative for future authorization; existing sessions and refresh tokens are unaffected. Besides the issuer settings, this reports authorization_server_mode, use_authentication_host, and issuer_url (the shared authorization server''s issuer identifier, empty when not served) whenever they differ: repointed MCP servers then direct clients to a different authorization server, so anything configured with the source''s values, such as an identity provider or a federated platform, must be updated.'
                warnings_fingerprint:
                    type: string
                    description: Stable fingerprint of the current warnings. Empty when there are no warnings; otherwise pass this exact value to migrateIssuer to confirm them.
            description: Authoritative impact summary for consolidating one user_session_issuer onto another.
            required:
                - client_count
                - session_count
                - consent_count
                - cimd_client_count
                - remote_session_count
                - conflicting_client_ids
                - principal_binding_conflict_count
                - ema_binding_conflict_count
                - platform_owned
                - warnings
                - warnings_fingerprint
                - can_migrate
        OrganizationUserSessionIssuerReference:
            type: object
            properties:
                id:
                    type: string
                    description: The referencing resource id.
                    format: uuid
                name:
                    type: string
                    description: The referencing resource display name.
                project_id:
                    type: string
                    description: The owning project id.
                    format: uuid
                project_name:
                    type: string
                    description: The owning project name.
            description: A live project resource that references an organization-owned user_session_issuer.
            required:
                - id
                - name
                - project_id
                - project_name
        OtelDestination:
            type: object
            properties:
                endpoint_url:
                    type: string
                    description: OTEL collector endpoint URL. Transport-specific paths may be appended during delivery.
                    format: uri
                headers:
                    type: array
                    items:
                        $ref: '#/components/schemas/OtelDestinationHeader'
                    description: Configured HTTP header names. Header values are never returned.
            description: OTEL-specific destination configuration.
            required:
                - endpoint_url
                - headers
        OtelDestinationHeader:
            type: object
            properties:
                has_value:
                    type: boolean
                    description: Whether a non-empty encrypted value is stored for this header.
                name:
                    type: string
                    description: Header name.
            description: A write-only HTTP header configured on an OTEL destination.
            required:
                - name
                - has_value
        Package:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the package
                    format: date-time
                deleted_at:
                    type: string
                    description: The deletion date of the package
                    format: date-time
                description:
                    type: string
                    description: The description of the package. This contains HTML content.
                description_raw:
                    type: string
                    description: The unsanitized, user-supplied description of the package. Limited markdown syntax is supported.
                id:
                    type: string
                    description: The ID of the package
                image_asset_id:
                    type: string
                    description: The asset ID of the image to show for this package
                keywords:
                    type: array
                    items:
                        type: string
                    description: The keywords of the package
                latest_version:
                    type: string
                    description: The latest version of the package
                name:
                    type: string
                    description: The name of the package
                organization_id:
                    type: string
                    description: The ID of the organization that owns the package
                project_id:
                    type: string
                    description: The ID of the project that owns the package
                summary:
                    type: string
                    description: The summary of the package
                title:
                    type: string
                    description: The title of the package
                updated_at:
                    type: string
                    description: The last update date of the package
                    format: date-time
                url:
                    type: string
                    description: External URL for the package owner
            required:
                - id
                - name
                - project_id
                - organization_id
                - created_at
                - updated_at
        PackageVersion:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the package version
                    format: date-time
                deployment_id:
                    type: string
                    description: The ID of the deployment that the version belongs to
                id:
                    type: string
                    description: The ID of the package version
                package_id:
                    type: string
                    description: The ID of the package that the version belongs to
                semver:
                    type: string
                    description: The semantic version value
                visibility:
                    type: string
                    description: The visibility of the package version
            required:
                - id
                - package_id
                - deployment_id
                - visibility
                - semver
                - created_at
        PaygBillingSummary:
            type: object
            properties:
                estimated_total_usd:
                    type: string
                    description: Exact estimated current-cycle total in USD through recorded_through
                other_inference_spend_usd:
                    type: string
                    description: Exact durable customer-billable OpenRouter inference spend in USD through recorded_through
                period_end:
                    type: string
                    description: End of the live paid Stripe service period (exclusive)
                    format: date-time
                period_start:
                    type: string
                    description: Start of the live paid Stripe service period
                    format: date-time
                recorded_through:
                    type: string
                    description: Most recent completed durable UTC spend day included in the estimate
                    format: date
                tum_cost_usd:
                    type: string
                    description: Exact estimated tokens-under-management cost in USD
                tum_tokens:
                    type: integer
                    description: Tokens under management in the live paid service period
                    format: int64
                tum_unit_price_usd:
                    type: string
                    description: Exact flat USD price per token under management
            required:
                - period_start
                - period_end
                - tum_tokens
                - tum_unit_price_usd
                - tum_cost_usd
                - other_inference_spend_usd
                - estimated_total_usd
        PeriodUsage:
            type: object
            properties:
                actual_enabled_server_count:
                    type: integer
                    description: The number of servers enabled at the time of the request
                    format: int64
                credits:
                    type: integer
                    description: The number of credits used. Only populated for platform admins.
                    format: int64
                has_active_subscription:
                    type: boolean
                    description: Whether the project has an active subscription
                included_credits:
                    type: integer
                    description: The number of credits included in the tier. Only populated for platform admins.
                    format: int64
                included_servers:
                    type: integer
                    description: The number of servers included in the tier
                    format: int64
                included_tool_calls:
                    type: integer
                    description: The number of tool calls included in the tier
                    format: int64
                servers:
                    type: integer
                    description: The number of servers used, according to the Polar meter
                    format: int64
                tool_calls:
                    type: integer
                    description: The number of tool calls used
                    format: int64
            required:
                - tool_calls
                - included_tool_calls
                - servers
                - included_servers
                - actual_enabled_server_count
                - has_active_subscription
        PlacementInput:
            type: object
            properties:
                h:
                    type: integer
                    description: Height in rows; each chart type also has a minimum
                    format: int64
                    minimum: 1
                    maximum: 10000
                id:
                    type: string
                    description: The placement being moved or resized
                    format: uuid
                w:
                    type: integer
                    description: Width in columns; each chart type also has a minimum, so x + w stays within 12
                    format: int64
                    minimum: 1
                    maximum: 12
                widget_id:
                    type: string
                    format: uuid
                x:
                    type: integer
                    description: Column the card starts at, on a 12-column grid
                    format: int64
                    minimum: 0
                    maximum: 11
                "y":
                    type: integer
                    description: Row the card starts at
                    format: int64
                    minimum: 0
                    maximum: 9999
            description: Where a card sits in a layout being saved. It names an existing placement, which is moved or resized; a new card is added with addWidget.
            required:
                - id
                - widget_id
                - x
                - "y"
                - w
                - h
        PlatformKillswitchDefinition:
            type: object
            properties:
                default_external_note:
                    type: string
                enforcement_owner:
                    type: string
                failure_policy:
                    type: string
                identity_contract:
                    type: string
                key:
                    type: string
                principal_kinds:
                    type: array
                    items:
                        type: string
                resource_kinds:
                    type: array
                    items:
                        type: string
                surfaces:
                    type: array
                    items:
                        type: string
                transport_adapters:
                    type: array
                    items:
                        type: string
            required:
                - key
                - principal_kinds
                - resource_kinds
                - failure_policy
                - default_external_note
                - enforcement_owner
                - identity_contract
                - surfaces
                - transport_adapters
        PlatformKillswitchMutationResult:
            type: object
            properties:
                prescription_id:
                    type: string
                    format: uuid
                replayed:
                    type: boolean
                state:
                    type: string
                version:
                    type: integer
                    format: int64
            required:
                - prescription_id
                - version
                - state
                - replayed
        PlatformKillswitchPrescription:
            type: object
            properties:
                activated_at:
                    type: string
                    format: date-time
                definition:
                    type: string
                expires_at:
                    type: string
                    format: date-time
                external_note:
                    type: string
                id:
                    type: string
                    format: uuid
                internal_note:
                    type: string
                organization_id:
                    type: string
                principal_key:
                    type: string
                principal_kind:
                    type: string
                resource_kind:
                    type: string
                resource_scope:
                    type: string
                selected_resource_keys:
                    type: array
                    items:
                        type: string
                starts_at:
                    type: string
                    format: date-time
                state:
                    type: string
                superseded_at:
                    type: string
                    format: date-time
                version:
                    type: integer
                    format: int64
            required:
                - id
                - organization_id
                - definition
                - principal_kind
                - principal_key
                - resource_kind
                - version
                - state
                - resource_scope
                - selected_resource_keys
                - starts_at
                - internal_note
                - external_note
        PlatformMCPOnboardingSetupHandoff:
            type: object
            properties:
                dashboard_setup_url:
                    type: string
                    description: Server-owned same-origin dashboard Inspect URL for the persisted browser Catalogue registration.
                handoff:
                    type: string
                    description: One-time opaque local-fixture setup handoff.
            description: Secure setup continuation returned only to the immediate session-authenticated dashboard caller. Browser Catalogue entries return a server-owned Inspect URL; the local synthetic fixture returns a one-time handoff. Neither is part of the onboarding projection.
        PlatformMCPOnboardingState:
            type: object
            properties:
                agent_configuration_copied:
                    type: boolean
                    description: Whether the user copied Platform MCP configuration or completed an equivalent supported agent-setup action in this workflow.
                catalog_explored:
                    type: boolean
                    description: Whether the active workflow observed a successful reviewed MCP Catalog search through Platform MCP.
                client_family:
                    type: string
                    description: Selected manual-install client family when a workflow is active.
                connection_auth_state:
                    type: string
                    description: Bounded authorization state for the authenticated user's latest Platform MCP connection.
                    enum:
                        - not_connected
                        - active
                        - reauthorization_required
                connection_authorized:
                    type: boolean
                    description: Whether the authenticated user has a current authorized Platform MCP connection.
                connection_ready:
                    type: boolean
                    description: Whether the authenticated user's current connection has completed authenticated discovery.
                distribution_attached:
                    type: boolean
                    description: Whether the selected MCP is currently attached to the selected project's existing Default plugin.
                distribution_expected_version:
                    type: string
                    description: Opaque server-issued version token required by distribute, remove, or publication-repair mutations. It binds the selected project and authenticated user without exposing internal IDs or counters.
                distribution_publication_state:
                    type: string
                    description: Bounded package-publication state for the selected project's Default plugin after a distribution change.
                    enum:
                        - ""
                        - pending
                        - current
                        - repair_required
                distribution_state:
                    type: string
                    description: Bounded lifecycle state for the selected MCP's existing-Default-plugin distribution.
                    enum:
                        - ""
                        - attached
                        - removed
                distribution_tool_succeeded:
                    type: boolean
                    description: Whether Platform MCP successfully added the workflow-bound MCP to the selected project's existing Default plugin.
                enabled:
                    type: boolean
                    description: Whether the active organization currently has the Platform MCP product feature enabled.
                mcp_url:
                    type: string
                    description: Canonical Platform MCP endpoint URL supplied by the server.
                organization_setup_complete:
                    type: boolean
                    description: Whether the organization already has a durable Platform MCP value outcome or an attached distribution.
                readiness_freshness:
                    type: string
                    description: Whether selected-registration readiness is currently fresh.
                    enum:
                        - ""
                        - fresh
                        - stale
                        - unavailable
                readiness_state:
                    type: string
                    description: Bounded current readiness state for the selected registration.
                    enum:
                        - ""
                        - ready
                        - needs_provider_setup
                        - needs_gram_authorization
                        - needs_configuration
                        - auth_failed
                        - unreachable
                        - unsupported
                        - unauthorized
                        - guide_unavailable
                        - degraded
                readiness_verified:
                    type: boolean
                    description: Whether Platform MCP observed a successful ready status check for the workflow-bound MCP.
                reauthorization_reason:
                    type: string
                    description: Bounded reason why interactive Platform MCP authorization is required again.
                    enum:
                        - ""
                        - idle_expired
                        - authorization_expired
                        - refresh_invalidated
                        - authorization_changed
                        - revoked
                        - security_reset
                registration_complete:
                    type: boolean
                    description: Whether the server-owned local candidate is registered for the selected project.
                repair_action:
                    type: string
                    description: A bounded next action when the workflow cannot progress.
                    enum:
                        - ""
                        - enable_platform_mcp
                        - authorize_platform_mcp
                        - select_project
                        - start_setup
                        - continue_dashboard_setup
                        - retry_readiness
                        - retry_registration
                        - contact_support
                        - distribute_to_default_plugin
                        - repair_publication
                selected_project_name:
                    type: string
                    description: Display name of the workflow-bound project, when one has been selected.
                selected_project_slug:
                    type: string
                    description: Slug of the workflow-bound project, when one has been selected.
                selected_use_verified:
                    type: boolean
                    description: Whether the server observed a successful normal Remote MCP tool call for the currently attached selected distribution version.
                stage:
                    type: string
                    description: Current server-derived onboarding stage.
                    enum:
                        - not_started
                        - install_instructions
                        - authorized
                        - connection_ready
                workflow_active:
                    type: boolean
                    description: Whether the authenticated user has an active onboarding workflow in this organization.
            description: Safe, session-authenticated Platform MCP onboarding projection. It contains no provider URLs, credentials, OAuth values, setup handoffs, or internal resource identifiers.
            required:
                - enabled
                - stage
                - mcp_url
                - workflow_active
                - organization_setup_complete
                - client_family
                - agent_configuration_copied
                - connection_authorized
                - connection_auth_state
                - reauthorization_reason
                - connection_ready
                - catalog_explored
                - selected_project_name
                - selected_project_slug
                - registration_complete
                - readiness_state
                - readiness_freshness
                - distribution_state
                - distribution_attached
                - distribution_tool_succeeded
                - readiness_verified
                - distribution_publication_state
                - selected_use_verified
                - distribution_expected_version
                - repair_action
        PlatformToolDefinition:
            type: object
            properties:
                annotations:
                    $ref: '#/components/schemas/ToolAnnotations'
                canonical:
                    $ref: '#/components/schemas/CanonicalToolAttributes'
                canonical_name:
                    type: string
                    description: The canonical name of the tool. Will be the same as the name if there is no variation.
                confirm:
                    type: string
                    description: Confirmation mode for the tool
                confirm_prompt:
                    type: string
                    description: Prompt for the confirmation
                created_at:
                    type: string
                    description: The creation date of the tool.
                    format: date-time
                description:
                    type: string
                    description: Description of the tool
                id:
                    type: string
                    description: The ID of the tool
                name:
                    type: string
                    description: The name of the tool
                owner_id:
                    type: string
                    description: Optional owning entity ID
                owner_kind:
                    type: string
                    description: The entity kind that owns this tool's lifecycle
                project_id:
                    type: string
                    description: The ID of the project
                schema:
                    type: string
                    description: JSON schema for the request
                schema_version:
                    type: string
                    description: Version of the schema
                source_slug:
                    type: string
                    description: 'The backing platform tool source (for example: logs)'
                summarizer:
                    type: string
                    description: Summarizer for the tool
                tool_urn:
                    type: string
                    description: The URN of this tool
                updated_at:
                    type: string
                    description: The last update date of the tool.
                    format: date-time
                variation:
                    $ref: '#/components/schemas/ToolVariation'
            description: A platform-owned tool served directly by the platform
            required:
                - source_slug
                - id
                - project_id
                - name
                - canonical_name
                - description
                - schema
                - tool_urn
                - created_at
                - updated_at
        Plugin:
            type: object
            properties:
                agent_plugins_v1_compatible:
                    type: boolean
                    description: Whether the plugin's complete current intended state can be published as an Agent Plugins 1.0 package.
                assignment_count:
                    type: integer
                    description: Number of role/user assignments.
                    format: int64
                assignments:
                    type: array
                    items:
                        $ref: '#/components/schemas/PluginAssignment'
                    description: Role/user assignments.
                auto_created:
                    type: boolean
                    description: Whether automatic role distribution created this plugin. Read-only; preserved after edits and reuse.
                created_at:
                    type: string
                    format: date-time
                description:
                    type: string
                    description: Optional description.
                id:
                    type: string
                    description: Unique plugin identifier.
                    format: uuid
                is_default:
                    type: boolean
                    description: Whether this is the project's fallback plugin that new servers attach to.
                name:
                    type: string
                    description: Display name.
                server_count:
                    type: integer
                    description: Number of active servers in this plugin.
                    format: int64
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/PluginServer'
                    description: Servers included in this plugin.
                skill_count:
                    type: integer
                    description: Number of active skills in this plugin.
                    format: int64
                slug:
                    type: string
                    description: URL-safe identifier, unique per org.
                updated_at:
                    type: string
                    format: date-time
            required:
                - id
                - name
                - slug
                - auto_created
                - agent_plugins_v1_compatible
                - created_at
                - updated_at
        PluginAssignment:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    description: Unique assignment identifier.
                    format: uuid
                install_mode:
                    type: string
                    description: 'How the device agent installs the plugin for this audience. `required`: installed, and the user can''t turn it off. `default`: installed, and the user can turn it off. `available`: not installed until the user turns it on.'
                    enum:
                        - required
                        - default
                        - available
                principal_urn:
                    type: string
                    description: Principal URN (e.g. role:organization:<uuid>, user:id, or *).
            required:
                - id
                - principal_urn
                - install_mode
                - created_at
        PluginAudience:
            type: object
            properties:
                display_name:
                    type: string
                    description: Display name for the audience.
                kind:
                    type: string
                    description: Audience kind.
                    enum:
                        - everyone
                        - role
                        - directory_group
                        - directory_attribute
                member_count:
                    type: integer
                    description: Number of current members, when the audience has an enumerable membership.
                    format: int64
                principal_urn:
                    type: string
                    description: Principal URN used to assign the audience to a plugin.
            required:
                - kind
                - display_name
                - principal_urn
        PluginServer:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                display_name:
                    type: string
                    description: Display name shown in generated plugin config.
                id:
                    type: string
                    description: Unique plugin server identifier.
                    format: uuid
                mcp_server_id:
                    type: string
                    description: Speakeasy MCP server ID. A hosted MCP server with a live canonical MCP server sets toolset_id and mcp_server_id to the same id; otherwise exactly one backend ID is set.
                    format: uuid
                meta_mcp_server_id:
                    type: string
                    description: MCP gateway ID. When set, no other backend ID is set.
                    format: uuid
                policy:
                    type: string
                    description: Whether this server is required or optional.
                    enum:
                        - required
                        - optional
                sort_order:
                    type: integer
                    description: Ordering within the plugin.
                    format: int32
                toolset_id:
                    type: string
                    description: Speakeasy toolset ID. A hosted MCP server with a live canonical MCP server sets toolset_id and mcp_server_id to the same id; otherwise exactly one backend ID is set.
                    format: uuid
            required:
                - id
                - display_name
                - policy
                - sort_order
                - created_at
        PluginSkillDistribution:
            type: object
            properties:
                channel:
                    type: string
                    description: The distribution channel.
                    enum:
                        - plugin
                created_at:
                    type: string
                    description: When the distribution was created.
                    format: date-time
                created_by_user_id:
                    type: string
                    description: The user that created the distribution.
                id:
                    type: string
                    description: The distribution ID.
                    format: uuid
                pinned_version_id:
                    type: string
                    description: The pinned version, absent when tracking the latest valid version.
                    format: uuid
                plugin_id:
                    type: string
                    description: The plugin that carries the skill.
                    format: uuid
                plugin_name:
                    type: string
                    description: The name of the plugin that carries the skill.
                project_id:
                    type: string
                    description: The project that owns the distribution.
                    format: uuid
                resolved_version_id:
                    type: string
                    description: The version currently targeted by this distribution.
                    format: uuid
                skill_display_name:
                    type: string
                    description: The display name of the distributed skill.
                skill_id:
                    type: string
                    description: The distributed skill ID.
                    format: uuid
                skill_name:
                    type: string
                    description: The canonical name of the distributed skill.
                updated_at:
                    type: string
                    description: When the distribution configuration last changed.
                    format: date-time
            description: An active plugin distribution of a project skill.
            required:
                - id
                - project_id
                - skill_id
                - skill_name
                - skill_display_name
                - plugin_id
                - plugin_name
                - resolved_version_id
                - channel
                - created_by_user_id
                - created_at
                - updated_at
        PolicyBypassRedemption:
            type: object
            properties:
                id:
                    type: string
                    description: The id of the created or refreshed request.
                kind:
                    type: string
                    description: The kind of request the token redeemed into.
                    enum:
                        - approval_request
                        - bypass_request
                status:
                    type: string
                    description: The request's current status.
            description: 'What a redeemed block-link token turned into: an MCP access request when the approval workflow handles the server, or a legacy policy bypass request otherwise.'
            required:
                - kind
                - id
                - status
        PrepareEMARequestBody:
            type: object
            properties:
                client_id:
                    type: string
                    description: Explicit selected client row ID; never inferred.
                    format: uuid
                confirm_grants:
                    type: array
                    items:
                        type: string
                    description: Administrator-declared grants, not provider verification.
                expected_generation:
                    type: integer
                    description: Optimistic binding generation.
                    format: int64
                    minimum: 0
                mechanism:
                    type: string
                    default: manual
                    enum:
                        - manual
                        - cimd
                        - dcr
                remote_session_issuer_id:
                    type: string
                    format: uuid
                resource:
                    type: string
                    description: Canonical intended resource URI.
                    format: uri
                    minLength: 1
                    maxLength: 2048
                resource_metadata:
                    type: object
                    properties:
                        authorization_servers:
                            type: array
                            items:
                                type: string
                        resource:
                            type: string
                    description: Optional caller-declared resource/authorization-server consistency hints, not provider-verified RFC 9728 discovery evidence. May be omitted for explicit manual configuration. Matching values do not establish trust, consent, or user access.
                    required:
                        - resource
                        - authorization_servers
                scopes:
                    type: array
                    items:
                        type: string
                        pattern: ^[!#-[\]-~]+$
                        maxLength: 128
                    description: The scopes this preparation request supplies, which a DCR registration always asks for. Turning identity chaining on records the server connection's scopes (what an interactive sign-in through the selected client requests) and ignores these, unless the client is not linked to the user session issuer, no single remote MCP server signing in directly through it serves the resource (a gateway member qualified through another sign-in issuer is not resolved), or the connection names only OpenID Connect scopes while these name others; then these are recorded, and a scope outside the client's registered scope reports manual_setup_required. With neither naming a scope, nothing is recorded and identity chaining requests no scope.
                token_endpoint_auth_method:
                    type: string
                    description: Explicit DCR authentication method.
                    enum:
                        - client_secret_basic
                        - client_secret_post
                user_session_issuer_id:
                    type: string
                    format: uuid
            required:
                - expected_generation
                - user_session_issuer_id
                - remote_session_issuer_id
                - resource
        PreviewExternalMcpMigrationRequestBody:
            type: object
            properties:
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminExternalMcpMigrationRequest'
                    description: Servers to migrate or delete, in order.
                    minItems: 1
                    maxItems: 100
            required:
                - servers
        PreviewSpendRuleRequestBody:
            type: object
            properties:
                limit_usd:
                    type: number
                    description: Per-person budget in USD used to compute usage percentages.
                    format: double
                    minimum: 0
                target:
                    $ref: '#/components/schemas/SpendRuleTargetCondition'
                warn_at_pct:
                    type: integer
                    description: Percentage of the limit at which a warning event is emitted.
                    default: 80
                    format: int64
                    minimum: 1
                    maximum: 100
                window_kind:
                    type: string
                    description: UTC calendar window to compute spend over.
                    enum:
                        - daily
                        - weekly
                        - monthly
            required:
                - target
                - limit_usd
                - window_kind
        PreviewSpendRuleResult:
            type: object
            properties:
                actors:
                    type: array
                    items:
                        $ref: '#/components/schemas/SpendRuleActorUsage'
                    description: Matched actors with their current-window spend, ordered by spend descending. Capped at 50 entries.
                matched_count:
                    type: integer
                    description: Total number of organization members the target expression matches.
                    format: int64
                window_end:
                    type: string
                    description: Exclusive end of the current window used for spend.
                    format: date-time
                window_start:
                    type: string
                    description: Inclusive start of the current window used for spend.
                    format: date-time
            required:
                - matched_count
                - window_start
                - window_end
                - actors
        PrincipalRemoteSessionBinding:
            type: object
            properties:
                id:
                    type: string
                    format: uuid
                principal_id:
                    type: string
                    format: uuid
                remote_session:
                    $ref: '#/components/schemas/RemoteSession'
                remote_session_client_id:
                    type: string
                    format: uuid
                remote_session_id:
                    type: string
                    format: uuid
                user_session_issuer_id:
                    type: string
                    format: uuid
            required:
                - id
                - principal_id
                - user_session_issuer_id
                - remote_session_client_id
                - remote_session_id
        ProbeURLForm:
            type: object
            properties:
                url:
                    type: string
                    description: The URL of the remote MCP server to probe
                    format: uri
            description: Form for probing a remote MCP server URL
            required:
                - url
        ProbeURLResult:
            type: object
            properties:
                http_status:
                    type: integer
                    description: HTTP status returned by the remote server. Required for invalid_mcp_response and present for HTTP-based unreachable outcomes.
                    format: int64
                outcome:
                    type: string
                    description: Probe outcome.
                    enum:
                        - mcp_available
                        - authentication_required
                        - invalid_mcp_response
                        - unreachable
                protected_resource_metadata_url:
                    type: string
                    description: Absolute HTTP(S) protected resource metadata URL advertised by a WWW-Authenticate challenge. Present only when authentication is required and the advertised URL is valid.
                    format: uri
                reason:
                    type: string
                    description: Stable machine-readable reason code. Present only when outcome is unreachable; currently timeout, rate_limited, server_error, dns_error, tls_error, guardian_rejected, or transport_error.
            description: Structured outcome of probing a remote MCP server URL. Variant-specific fields are populated only when applicable.
            required:
                - outcome
        ProductFeatures:
            type: object
            properties:
                ai_platform_push_integrations_enabled:
                    type: boolean
                    description: Whether the organization can provision push integrations for AI platforms
                authz_challenge_logging_enabled:
                    type: boolean
                    description: Whether authz challenge logging to ClickHouse is enabled
                custom_model_keys_enabled:
                    type: boolean
                    description: Whether the organization can supply its own model provider API keys (BYOK)
                customer_managed_encryption_keys_enabled:
                    type: boolean
                    description: Whether the organization can manage the external credentials and cloud KMS keys backing customer-managed encryption
                device_agent:
                    type: boolean
                    description: Whether the organization uses the device agent (any device has polled agent.getPlugins). Derived from device-agent syncs, not an admin-settable feature.
                hooks_browser_login_enabled:
                    type: boolean
                    description: Whether generated hook plugins may mint per-user keys via the interactive browser login
                hooks_fail_open_enabled:
                    type: boolean
                    description: Whether hooks fail open when the Speakeasy control plane is unreachable or erroring — blocking policies are not enforced for the duration of the outage
                logs_enabled:
                    type: boolean
                    description: Whether logging is enabled
                network_ingress_enabled:
                    type: boolean
                    description: Whether the organization has the staff-managed private network ingress entitlement
                organization_gateway_disabled:
                    type: boolean
                    description: Whether an organization admin turned the organization gateway off, so its routes answer 404
                platform_mcp_enabled:
                    type: boolean
                    description: Whether the organization can use the Speakeasy Platform MCP capability
                remote_session_auto_refresh_enabled:
                    type: boolean
                    description: Whether consent screens expose automatic remote-session refresh for the organization
                remote_session_auto_refresh_enforced_enabled:
                    type: boolean
                    description: 'Whether automatic remote-session refresh is enforced as the organization default: forced on for every user, shown locked on consent screens, and applied by the keepalive regardless of per-session preference'
                scim_enabled:
                    type: boolean
                    description: Whether SCIM/directory sync setup is enabled for the organization
                session_capture_enabled:
                    type: boolean
                    description: Whether Claude Code session capture is enabled
                session_portability_enabled:
                    type: boolean
                    description: 'Whether agent session portability is enabled for the organization: session sharing links, move reporting with lineage, and picker title enrichment via the device agent'
                signals_intelligence_enabled:
                    type: boolean
                    description: Whether the organization can configure signals intelligence
                skill_capture_metadata_only:
                    type: boolean
                    description: Whether skill capture stores activation metadata without requesting manifest content
                skills_enabled:
                    type: boolean
                    description: Whether the Skills page is enabled for the organization
                sso_enabled:
                    type: boolean
                    description: Whether SSO setup is enabled for the organization
                tool_io_logs_enabled:
                    type: boolean
                    description: Whether tool I/O logging is enabled
            required:
                - logs_enabled
                - tool_io_logs_enabled
                - session_capture_enabled
                - authz_challenge_logging_enabled
                - sso_enabled
                - scim_enabled
                - hooks_browser_login_enabled
                - hooks_fail_open_enabled
                - custom_model_keys_enabled
                - skills_enabled
                - skill_capture_metadata_only
                - ai_platform_push_integrations_enabled
                - platform_mcp_enabled
                - customer_managed_encryption_keys_enabled
                - remote_session_auto_refresh_enabled
                - remote_session_auto_refresh_enforced_enabled
                - session_portability_enabled
                - network_ingress_enabled
                - signals_intelligence_enabled
                - organization_gateway_disabled
                - device_agent
        Project:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the project.
                    format: date-time
                id:
                    type: string
                    description: The ID of the project
                logo_asset_id:
                    type: string
                    description: The ID of the logo asset for the project
                name:
                    type: string
                    description: The name of the project
                organization_id:
                    type: string
                    description: The ID of the organization that owns the project
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                updated_at:
                    type: string
                    description: The last update date of the project.
                    format: date-time
            required:
                - id
                - name
                - slug
                - organization_id
                - created_at
                - updated_at
        ProjectEntry:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the project
                name:
                    type: string
                    description: The name of the project
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - id
                - name
                - slug
        ProjectOverviewSummary:
            type: object
            properties:
                active_servers_count:
                    type: integer
                    description: Number of MCP servers with at least one tool call in the time period
                    format: int64
                active_users_count:
                    type: integer
                    description: Number of unique users with activity in the time period
                    format: int64
                failed_chats:
                    type: integer
                    description: Number of failed chat sessions
                    format: int64
                failed_tool_calls:
                    type: integer
                    description: Number of failed tool calls
                    format: int64
                llm_client_breakdown:
                    type: array
                    items:
                        $ref: '#/components/schemas/LLMClientUsage'
                    description: Breakdown of messages/activity by LLM client/agent
                resolved_chats:
                    type: integer
                    description: Number of resolved chat sessions
                    format: int64
                top_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/TopServer'
                    description: Top 10 MCP servers by tool call count
                top_users:
                    type: array
                    items:
                        $ref: '#/components/schemas/TopUser'
                    description: Top 10 users by activity (# of messages or tool calls depending on metrics_mode)
                total_chats:
                    type: integer
                    description: Total number of chat sessions
                    format: int64
                total_tool_calls:
                    type: integer
                    description: Total number of tool calls
                    format: int64
            description: Aggregated project-level summary metrics for a time period
            required:
                - total_chats
                - resolved_chats
                - failed_chats
                - total_tool_calls
                - failed_tool_calls
                - active_servers_count
                - active_users_count
                - top_users
                - top_servers
                - llm_client_breakdown
        ProjectSummary:
            type: object
            properties:
                avg_chat_duration_ms:
                    type: number
                    description: Average chat request duration in milliseconds
                    format: double
                avg_chat_resolution_score:
                    type: number
                    description: Average chat resolution score (0-100)
                    format: double
                avg_tokens_per_request:
                    type: number
                    description: Average tokens per chat request
                    format: double
                avg_tool_duration_ms:
                    type: number
                    description: Average tool call duration in milliseconds
                    format: double
                cache_creation_input_tokens:
                    type: integer
                    description: Sum of cache creation input tokens
                    format: int64
                cache_read_input_tokens:
                    type: integer
                    description: Sum of cache read input tokens
                    format: int64
                chat_resolution_abandoned:
                    type: integer
                    description: Chats abandoned by user
                    format: int64
                chat_resolution_failure:
                    type: integer
                    description: Chats that failed to resolve
                    format: int64
                chat_resolution_partial:
                    type: integer
                    description: Chats partially resolved
                    format: int64
                chat_resolution_success:
                    type: integer
                    description: Chats resolved successfully
                    format: int64
                distinct_models:
                    type: integer
                    description: Number of distinct models used (project scope only)
                    format: int64
                distinct_providers:
                    type: integer
                    description: Number of distinct providers used (project scope only)
                    format: int64
                finish_reason_stop:
                    type: integer
                    description: Requests that completed naturally
                    format: int64
                finish_reason_tool_calls:
                    type: integer
                    description: Requests that resulted in tool calls
                    format: int64
                first_seen_unix_nano:
                    type: string
                    description: Earliest activity timestamp in Unix nanoseconds
                last_seen_unix_nano:
                    type: string
                    description: Latest activity timestamp in Unix nanoseconds
                models:
                    type: array
                    items:
                        $ref: '#/components/schemas/ModelUsage'
                    description: List of models used with call counts
                tool_call_failure:
                    type: integer
                    description: Failed tool calls (4xx/5xx status)
                    format: int64
                tool_call_success:
                    type: integer
                    description: Successful tool calls (2xx status)
                    format: int64
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsage'
                    description: List of tools used with success/failure counts
                total_chat_requests:
                    type: integer
                    description: Total number of chat requests
                    format: int64
                total_chats:
                    type: integer
                    description: Number of unique chat sessions (project scope only)
                    format: int64
                total_cost:
                    type: number
                    description: Total cost of all requests
                    format: double
                total_input_tokens:
                    type: integer
                    description: Sum of input tokens used
                    format: int64
                total_output_tokens:
                    type: integer
                    description: Sum of output tokens used
                    format: int64
                total_tokens:
                    type: integer
                    description: Sum of all tokens used
                    format: int64
                total_tool_calls:
                    type: integer
                    description: Total number of tool calls
                    format: int64
            description: Aggregated metrics
            required:
                - first_seen_unix_nano
                - last_seen_unix_nano
                - total_input_tokens
                - total_output_tokens
                - total_tokens
                - cache_read_input_tokens
                - cache_creation_input_tokens
                - total_cost
                - avg_tokens_per_request
                - total_chat_requests
                - avg_chat_duration_ms
                - finish_reason_stop
                - finish_reason_tool_calls
                - total_tool_calls
                - tool_call_success
                - tool_call_failure
                - avg_tool_duration_ms
                - chat_resolution_success
                - chat_resolution_failure
                - chat_resolution_partial
                - chat_resolution_abandoned
                - avg_chat_resolution_score
                - total_chats
                - distinct_models
                - distinct_providers
                - models
                - tools
        PromoteRequestBody:
            type: object
            properties:
                risk_policy_bypass_request_id:
                    type: string
                    description: The bypass request to promote.
            required:
                - risk_policy_bypass_request_id
        PromptGuardrailEvalResult:
            type: object
            properties:
                chat_id:
                    type: string
                    description: The chat session that was replayed.
                    format: uuid
                flagged:
                    type: boolean
                    description: True when the guardrail flagged at least one in-scope message.
                in_scope_message_count:
                    type: integer
                    description: Total number of messages matching the guardrail scope before the replay limit.
                    format: int64
                judged_count:
                    type: integer
                    description: Number of in-scope messages the judge evaluated.
                    format: int64
                message_limit_hit:
                    type: boolean
                    description: True when the replay judged only the first 200 in-scope messages.
                total_cost_usd:
                    type: number
                    description: Total OpenRouter cost across in-scope judge calls, in USD.
                    format: double
                total_latency_ms:
                    type: integer
                    description: Aggregate judge latency overhead across in-scope messages, computed as the sum of per-message judge latencies.
                    format: int64
                verdicts:
                    type: array
                    items:
                        $ref: '#/components/schemas/PromptGuardrailMessageVerdict'
                    description: Per-message verdicts for in-scope messages, ordered by seq.
            description: 'The result of replaying a prompt guardrail against one chat session. Read-only: no findings are persisted.'
            required:
                - chat_id
                - flagged
                - judged_count
                - in_scope_message_count
                - message_limit_hit
                - total_cost_usd
                - total_latency_ms
                - verdicts
        PromptGuardrailMessageVerdict:
            type: object
            properties:
                completion_tokens:
                    type: integer
                    description: Completion tokens billed for this judge call.
                    format: int64
                confidence:
                    type: number
                    description: Judge confidence in [0,1]; 0 when not matched.
                    format: double
                cost_usd:
                    type: number
                    description: OpenRouter cost for judging this message, in USD. Zero when cost was not returned.
                    format: double
                latency_ms:
                    type: integer
                    description: Wall-clock latency for judging this message, in milliseconds.
                    format: int64
                matched:
                    type: boolean
                    description: True when the guardrail flagged this message.
                message_id:
                    type: string
                    description: The chat message ID.
                    format: uuid
                message_type:
                    type: string
                    description: The judged message type (user_message, assistant_message, tool_request, tool_response, prompt_attachment).
                prompt_tokens:
                    type: integer
                    description: Prompt tokens billed for this judge call.
                    format: int64
                rationale:
                    type: string
                    description: One-sentence judge rationale; empty when not matched.
                seq:
                    type: integer
                    description: Message sequence within the chat generation, ascending.
                    format: int64
                tool_name:
                    type: string
                    description: Tool name for a single-call tool_request message; empty otherwise.
                total_tokens:
                    type: integer
                    description: Total tokens billed for this judge call.
                    format: int64
            description: The LLM judge's verdict for one in-scope message in the replayed session.
            required:
                - message_id
                - seq
                - message_type
                - matched
                - confidence
                - rationale
                - latency_ms
                - cost_usd
                - prompt_tokens
                - completion_tokens
                - total_tokens
        PromptTemplate:
            type: object
            properties:
                annotations:
                    $ref: '#/components/schemas/ToolAnnotations'
                canonical:
                    $ref: '#/components/schemas/CanonicalToolAttributes'
                canonical_name:
                    type: string
                    description: The canonical name of the tool. Will be the same as the name if there is no variation.
                confirm:
                    type: string
                    description: Confirmation mode for the tool
                confirm_prompt:
                    type: string
                    description: Prompt for the confirmation
                created_at:
                    type: string
                    description: The creation date of the tool.
                    format: date-time
                description:
                    type: string
                    description: Description of the tool
                engine:
                    type: string
                    description: The template engine
                    enum:
                        - mustache
                history_id:
                    type: string
                    description: The revision tree ID for the prompt template
                id:
                    type: string
                    description: The ID of the tool
                kind:
                    type: string
                    description: The kind of prompt the template is used for
                    enum:
                        - prompt
                        - higher_order_tool
                name:
                    type: string
                    description: The name of the tool
                predecessor_id:
                    type: string
                    description: The previous version of the prompt template to use as predecessor
                project_id:
                    type: string
                    description: The ID of the project
                prompt:
                    type: string
                    description: The template content
                schema:
                    type: string
                    description: JSON schema for the request
                schema_version:
                    type: string
                    description: Version of the schema
                summarizer:
                    type: string
                    description: Summarizer for the tool
                tool_urn:
                    type: string
                    description: The URN of this tool
                tool_urns_hint:
                    type: array
                    items:
                        type: string
                    description: The suggested tool URNS associated with the prompt template
                    maxItems: 20
                tools_hint:
                    type: array
                    items:
                        type: string
                    description: The suggested tool names associated with the prompt template
                    maxItems: 20
                updated_at:
                    type: string
                    description: The last update date of the tool.
                    format: date-time
                variation:
                    $ref: '#/components/schemas/ToolVariation'
            description: A prompt template
            required:
                - id
                - history_id
                - name
                - prompt
                - engine
                - kind
                - tools_hint
                - tool_urn
                - created_at
                - updated_at
                - project_id
                - canonical_name
                - description
                - schema
        PromptTemplateEntry:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the prompt template
                kind:
                    type: string
                    description: The kind of the prompt template
                name:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - id
                - name
        ProtectedResourceMetadata:
            type: object
            properties:
                authorization_servers:
                    type: array
                    items:
                        type: string
                    description: Authorization servers that can issue access tokens for this resource.
                bearer_methods_supported:
                    type: array
                    items:
                        type: string
                    description: Bearer token presentation methods accepted by the resource server.
                resource:
                    type: string
                    description: The resource server's identifier.
                resource_documentation:
                    type: string
                    description: URL of human-readable documentation for the resource server.
                resource_name:
                    type: string
                    description: Human-readable display name of the resource server.
                resource_policy_uri:
                    type: string
                    description: URL of the resource server's data-usage policy.
                resource_tos_uri:
                    type: string
                    description: URL of the resource server's terms of service.
                scopes_supported:
                    type: array
                    items:
                        type: string
                    description: Scopes advertised by the resource server.
            description: RFC 9728 OAuth Protected Resource Metadata advertised by a remote MCP server. Only fields the dashboard renders are typed; the RFC allows additional members.
        ProtectedResourceMetadataDiscovery:
            type: object
            properties:
                available:
                    type: boolean
                    description: True when the upstream advertised an RFC 9728 document. False for any unavailability reason — see the unavailable field for the cause.
                discovery_warnings:
                    type: array
                    items:
                        type: string
                    description: Informational deviations from RFC 9728 detected on a successful probe (e.g. missing resource field, mismatched resource value). Empty when available is false.
                metadata:
                    $ref: '#/components/schemas/ProtectedResourceMetadata'
                unavailable:
                    $ref: '#/components/schemas/ProtectedResourceMetadataUnavailable'
            description: Outcome of an RFC 9728 protected resource metadata probe against a remote MCP server. available=true exposes the parsed metadata; available=false exposes a typed unavailability reason. Always returned with HTTP 200 — probe failures (including 404 from upstream) are not errors at this layer because non-OAuth resource servers are an expected, normal outcome.
            required:
                - available
                - discovery_warnings
        ProtectedResourceMetadataUnavailable:
            type: object
            properties:
                code:
                    type: string
                    description: Machine-readable failure code (e.g. not_found, http_error, transport_error, timeout, malformed, host_blocked, invalid_url). Intentionally a free-form string so adding new failure modes is not a breaking SDK change.
                message:
                    type: string
                    description: Human-readable summary of the unavailability reason, composed by the backend. Dashboards should render verbatim.
            description: Reason an RFC 9728 protected resource metadata probe was unavailable. Surfaced when available is false.
            required:
                - code
                - message
        PublishPackageForm:
            type: object
            properties:
                deployment_id:
                    type: string
                    description: The deployment ID to associate with the package version
                name:
                    type: string
                    description: The name of the package
                version:
                    type: string
                    description: The new semantic version of the package to publish
                visibility:
                    type: string
                    description: The visibility of the package version
                    enum:
                        - public
                        - private
            required:
                - name
                - version
                - deployment_id
                - visibility
        PublishPackageResult:
            type: object
            properties:
                package:
                    $ref: '#/components/schemas/Package'
                version:
                    $ref: '#/components/schemas/PackageVersion'
            required:
                - package
                - version
        PublishPluginsRequestBody:
            type: object
            properties:
                github_usernames:
                    type: array
                    items:
                        type: string
                    description: GitHub usernames to add as collaborators on the repo.
        PublishPluginsResult:
            type: object
            properties:
                repo_url:
                    type: string
                    description: The URL of the published GitHub repository.
            required:
                - repo_url
        PublishStatusResult:
            type: object
            properties:
                claude_observability_plugin:
                    type: string
                    description: Slug of the generated Claude Code observability plugin in the published marketplace — install as `<slug>@<marketplace name>`. Present when connected.
                codex_observability_plugin:
                    type: string
                    description: Slug of the generated Codex observability plugin in the published marketplace — install as `<slug>@<marketplace name>`. Present when connected.
                configured:
                    type: boolean
                    description: Whether GitHub publishing is configured on the server.
                connected:
                    type: boolean
                    description: Whether this project has a GitHub connection.
                cursor_observability_plugin:
                    type: string
                    description: Slug of the generated Cursor observability plugin in the published marketplace — the value to mark required in Cursor's team marketplace. Present when connected.
                has_collaborators:
                    type: boolean
                    description: Whether the repo has at least one directly-added GitHub collaborator (excludes access granted via org membership/teams). Absent when the project is not connected.
                last_published_at:
                    type: string
                    description: When the project was last published to GitHub. Absent when the project is not connected.
                    format: date-time
                live_version:
                    type: string
                    description: Version stamped into the currently published plugin.json manifests (e.g. 0.1.1783692954) — the version plugin clients such as Claude Code report for installed plugins. Absent when the project is not connected or the live version could not be determined.
                marketplace_url:
                    type: string
                    description: Git-based Claude Code marketplace URL — the value to pass to `/plugin marketplace add` or set as the source URL in `extraKnownMarketplaces`. Present once a marketplace token has been minted, which happens automatically on the first publish.
                repo_name:
                    type: string
                    description: GitHub repo name, if connected.
                repo_owner:
                    type: string
                    description: GitHub repo owner, if connected.
                repo_url:
                    type: string
                    description: Full GitHub repository URL, if connected.
                up_to_date:
                    type: boolean
                    description: Whether the project's current plugin state matches what was last published to GitHub. Absent when the project is not connected, or when the connection predates content fingerprinting (freshness can't be determined).
            required:
                - configured
                - connected
        QueryFilter:
            type: object
            properties:
                dimension:
                    type: string
                    description: Dimension to filter on
                    enum:
                        - department_name
                        - job_title
                        - employee_type
                        - division_name
                        - cost_center_name
                        - email
                        - hostname
                        - model
                        - hook_source
                        - account_type
                        - provider
                        - billing_mode
                        - query_source
                        - skill_name
                        - skill_version
                        - agent_name
                        - mcp_server_name
                        - mcp_tool_name
                        - role
                        - group
                        - project_id
                values:
                    type: array
                    items:
                        type: string
                    description: Match if the dimension equals any of these values (IN semantics; for multi-valued dimensions like role/group, matches if any element is present).
                    minItems: 1
            description: A single filter predicate on an allowlisted dimension
            required:
                - dimension
                - values
        QueryMeasures:
            type: object
            properties:
                cache_creation_input_tokens:
                    type: integer
                    description: Sum of cache creation input tokens
                    format: int64
                cache_read_input_tokens:
                    type: integer
                    description: Sum of cache read input tokens
                    format: int64
                scored_cost:
                    type: number
                    description: Total cost in USD of the sessions that carry a work-units score. Divide by total_work_units for cost per unit; using total_cost would overstate it whenever analysis coverage is partial.
                    format: double
                scored_tokens:
                    type: integer
                    description: Total tokens of the sessions that carry a work-units score. Divide by total_work_units for tokens per unit.
                    format: int64
                total_chats:
                    type: integer
                    description: Number of distinct chat sessions
                    format: int64
                total_cost:
                    type: number
                    description: Total cost in USD
                    format: double
                total_input_tokens:
                    type: integer
                    description: Sum of input tokens
                    format: int64
                total_output_tokens:
                    type: integer
                    description: Sum of output tokens
                    format: int64
                total_tokens:
                    type: integer
                    description: Sum of all tokens
                    format: int64
                total_tool_calls:
                    type: integer
                    description: Total number of tool calls
                    format: int64
                total_work_units:
                    type: number
                    description: Total work units delivered by scored sessions (work-units analysis)
                    format: double
            description: Aggregated measure values for a group or time bucket
            required:
                - total_cost
                - total_input_tokens
                - total_output_tokens
                - total_tokens
                - cache_read_input_tokens
                - cache_creation_input_tokens
                - total_tool_calls
                - total_chats
                - total_work_units
                - scored_cost
                - scored_tokens
        QueryPayload:
            type: object
            properties:
                filters:
                    type: array
                    items:
                        $ref: '#/components/schemas/QueryFilter'
                    description: Optional filters; all filters are ANDed together.
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                granularity_seconds:
                    type: integer
                    description: Optional timeseries bucket size in seconds. Defaults to an interval derived from the time range and is floored to 3600 (the source data is bucketed hourly).
                    format: int64
                group_by:
                    type: string
                    description: Optional dimension to break results down by. When omitted, a single aggregate row/series for the whole slice is returned.
                    example: department_name
                    enum:
                        - department_name
                        - job_title
                        - employee_type
                        - division_name
                        - cost_center_name
                        - email
                        - hostname
                        - model
                        - hook_source
                        - account_type
                        - provider
                        - billing_mode
                        - query_source
                        - skill_name
                        - skill_version
                        - agent_name
                        - mcp_server_name
                        - mcp_tool_name
                        - role
                        - group
                        - project_id
                include_dimension_values:
                    type: boolean
                    description: Whether to include distinct values for other dimensions in each table row. When omitted, defaults to true.
                    default: true
                sort_by:
                    type: string
                    description: Measure used to rank groups for top_n. Defaults to total_cost.
                    default: total_cost
                    enum:
                        - total_cost
                        - total_tokens
                        - llm_tokens
                        - total_input_tokens
                        - total_output_tokens
                        - cache_read_input_tokens
                        - cache_creation_input_tokens
                        - total_tool_calls
                        - total_chats
                        - total_work_units
                        - scored_cost
                        - scored_tokens
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-26T10:00:00Z"
                    format: date-time
                top_n:
                    type: integer
                    description: When group_by is set, keep at most this many groups (ranked by sort_by); the remainder are rolled into an 'Other' group. Defaults to 10.
                    default: 10
                    format: int64
                    minimum: 1
            description: Payload for a generic org-scoped analytics query. Queries involving skill_version use raw telemetry retained for 90 days and attribute each whole session to every activated version; timeseries place the whole session in its start-time bucket.
            required:
                - from
                - to
        QueryPoint:
            type: object
            properties:
                bucket_time_unix_nano:
                    type: string
                    description: Bucket start time in Unix nanoseconds (string for JS precision)
                measures:
                    $ref: '#/components/schemas/QueryMeasures'
            description: A single time bucket within a series
            required:
                - bucket_time_unix_nano
                - measures
        QueryResult:
            type: object
            properties:
                group_by:
                    type: string
                    description: Echoes the requested group_by dimension; empty when none was requested.
                interval_seconds:
                    type: integer
                    description: The timeseries bucket interval in seconds.
                    format: int64
                table:
                    type: array
                    items:
                        $ref: '#/components/schemas/QueryRow'
                    description: Grouped totals over the full time range, ordered by sort_by descending.
                timeseries:
                    type: array
                    items:
                        $ref: '#/components/schemas/QuerySeries'
                    description: One series per group value (aligned with table rows), each gap-filled.
            description: 'Result of a generic analytics query: a grouped table and a matching per-group timeseries over the same data slice.'
            required:
                - group_by
                - interval_seconds
                - table
                - timeseries
        QueryRow:
            type: object
            properties:
                dimension_values:
                    type: object
                    description: 'Distinct values of every allowlisted dimension other than the group_by dimension, observed within this group. Keyed by dimension identifier (the same keys used for group_by/filters, e.g. when grouping by department_name: ''email'' -> [...], ''job_title'' -> [...], ''role'' -> [...]). Empty values are omitted and each list is capped.'
                    additionalProperties:
                        type: array
                        items:
                            type: string
                group_value:
                    type: string
                    description: The dimension value for this row. Empty string when no group_by was requested; 'Other' for the rolled-up remainder beyond top_n.
                measures:
                    $ref: '#/components/schemas/QueryMeasures'
            description: 'One row of the grouped table: measures aggregated over the full time range for a single group value.'
            required:
                - group_value
                - measures
                - dimension_values
        QuerySeries:
            type: object
            properties:
                group_value:
                    type: string
                    description: The dimension value for this series. Empty string when no group_by was requested; 'Other' for the rolled-up remainder beyond top_n.
                points:
                    type: array
                    items:
                        $ref: '#/components/schemas/QueryPoint'
                    description: Time buckets in ascending order, gap-filled with zeros.
            description: A gap-filled timeseries for a single group value (one line on the chart).
            required:
                - group_value
                - points
        ReadEMARequestBody:
            type: object
            properties:
                remote_session_issuer_id:
                    type: string
                    format: uuid
                resource:
                    type: string
                    description: Canonical intended resource URI.
                    format: uri
                    minLength: 1
                    maxLength: 2048
                user_session_issuer_id:
                    type: string
                    format: uuid
            required:
                - user_session_issuer_id
                - remote_session_issuer_id
                - resource
        RearmTrialRequestBody:
            type: object
            properties:
                days:
                    type: integer
                    description: Number of days the re-armed trial runs for, counted from now.
                    format: int64
                    minimum: 1
                    maximum: 365
                id:
                    type: string
                    description: Organization ID.
                    minLength: 1
            required:
                - id
                - days
        RecordDashboardCtaEventRequestBody:
            type: object
            properties:
                action:
                    type: string
                    description: CTA action.
                    enum:
                        - impression
                        - selected
                        - dismissed
                surface:
                    type: string
                    description: CTA surface.
                    enum:
                        - sidebar_footer
                        - sources_empty
                        - project_overview_zero_data
                        - organization_home
            required:
                - action
                - surface
        RecordDecisionRequestBody:
            type: object
            properties:
                decision:
                    type: string
                    description: Either approved or denied.
                    enum:
                        - approved
                        - denied
                granted_principal_urns:
                    type: array
                    items:
                        type: string
                    description: Principals the approval covers. Empty for a denial.
                id:
                    type: string
                    description: The approval request ID.
                rationale:
                    type: string
                    description: Why the decision was made. This is the artifact cited when explaining the decision to the requester, so it cannot be blank.
                research_report_id:
                    type: string
                    description: A research report this decision cites. Must belong to the request being decided.
            required:
                - id
                - decision
                - rationale
        RecordIdentityProviderConnectionAgentRequestBody:
            type: object
            properties:
                agent_app_id:
                    type: string
                    description: Okta application ID the agent is bound to. Empty clears it.
                agent_id:
                    type: string
                    description: Okta AI agent ID. Empty clears it.
                id:
                    type: string
                    description: Connection ID.
                    format: uuid
            required:
                - id
        RecordInstallIntentRequestBody:
            type: object
            properties:
                client_family:
                    type: string
                    description: Manual-install client family.
                    enum:
                        - claude_code
                        - claude_cowork
                        - codex
                        - cursor
                        - opencode
                        - other
            required:
                - client_family
        RecordSkillResult:
            type: object
            properties:
                created_skill:
                    type: boolean
                    description: Whether this request created the skill.
                created_version:
                    type: boolean
                    description: Whether this request created a new immutable version rather than resolving to an existing canonical version.
                skill:
                    $ref: '#/components/schemas/Skill'
                version:
                    $ref: '#/components/schemas/SkillVersion'
            description: The result of recording an uploaded skill manifest, including whether the operation created either resource.
            required:
                - skill
                - version
                - created_skill
                - created_version
        RedeemRequestBody:
            type: object
            properties:
                code:
                    type: string
                    description: The opaque one-time code issued by authorize.
                code_verifier:
                    type: string
                    description: The PKCE code verifier whose base64url(sha256(...)) equals the stored code_challenge.
                    minLength: 43
                    maxLength: 128
            required:
                - code
                - code_verifier
        RedeemResponseBody:
            type: object
            properties:
                access_token:
                    type: string
                    description: The raw gram_ API key, carrying the [agent,hooks] scopes. Returned exactly once.
                project_slug:
                    type: string
                    description: Slug of the project the key is scoped to.
                user_email:
                    type: string
                    description: Email of the user the key was minted for.
            required:
                - access_token
                - user_email
                - project_slug
        RedeployRequestBody:
            type: object
            properties:
                deployment_id:
                    type: string
                    description: The ID of the deployment to redeploy.
            required:
                - deployment_id
        RedeployResult:
            type: object
            properties:
                deployment:
                    $ref: '#/components/schemas/Deployment'
        RegisterDeviceRequestBody:
            type: object
            properties:
                hostname:
                    type: string
                    description: The device's hostname, shown to administrators. Self-reported.
                    maxLength: 255
                join_token:
                    type: string
                    description: The join token from createDeviceJoinToken.
                    minLength: 1
                    maxLength: 512
                public_jwk:
                    type: object
                    description: 'The device''s public signing key as a JWK: EC P-256 (ES256) or OKP Ed25519 (EdDSA). Private key material is refused.'
                    additionalProperties: true
                serial:
                    type: string
                    description: The device's serial number, shown to administrators. Self-reported.
                    maxLength: 255
            required:
                - join_token
                - public_jwk
        RegisterRequestBody:
            type: object
            properties:
                org_name:
                    type: string
                    description: The name of the org to register
                partner_code:
                    type: string
                    description: Optional partner signup code.
                    maxLength: 80
            required:
                - org_name
        RegisterWorkloadIssuerForm:
            type: object
            properties:
                allow_wildcard_admission:
                    type: boolean
                    description: Whether subjects under this issuer may be admitted by a wildcard rule. Defaults to true. Checked when a wildcard rule is admitted and again on every lookup, so clearing it makes wildcard rules already written inert immediately.
                description:
                    type: string
                    description: What the platform is and what runs on it, in the operator's words. Trimmed on write; blank is stored as none. At most 500 characters after trimming.
                issuer:
                    type: string
                    description: The issuer identifier the assertion's iss claim must carry. Must be an https URL on a fully qualified domain name, with no query or fragment.
                    format: uri
                jwks_uri:
                    type: string
                    description: Where the issuer publishes the keys its assertions are signed with. Must be an https URL on a fully qualified domain name.
                    format: uri
                name:
                    type: string
                    description: The label an operator works with. Unique within its tier.
                    minLength: 1
                    maxLength: 100
                project_scoped:
                    type: boolean
                    description: Register the issuer for the selected project alone rather than the whole organization. Requires a caller that names a project; a dashboard session does not. Defaults to false.
                    default: false
                tags:
                    type: array
                    items:
                        type: string
                    description: Free-form labels for grouping and filtering trusted platforms. Flat strings, not key/value pairs. Trimmed and de-duplicated on write, then limited to 40 tags of at most 64 characters each.
            description: Form for trusting an external workload issuer.
            required:
                - name
                - issuer
                - jwks_uri
        RegistryDiscoveryError:
            type: object
            properties:
                error:
                    type: string
                name:
                    type: string
            required:
                - name
                - error
        RegistryDiscoveryMetadata:
            type: object
            properties:
                count:
                    type: integer
                    format: int64
                nextCursor:
                    type: string
            required:
                - count
        RegistryDiscoveryPage:
            type: object
            properties:
                metadata:
                    $ref: '#/components/schemas/RegistryDiscoveryMetadata'
                servers:
                    type: array
                    items: {}
                    description: Complete registry record envelopes, including server and _meta extensions
            required:
                - servers
                - metadata
        RegistryDiscoverydiscoverServersResponseBody:
            type: object
            properties:
                error:
                    type: string
            required:
                - error
        RemoteMcpServer:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the remote MCP server was created
                    format: date-time
                id:
                    type: string
                    description: The ID of the remote MCP server
                    format: uuid
                name:
                    type: string
                    description: Optional human-readable name for the remote MCP server
                project_id:
                    type: string
                    description: The project ID this remote MCP server belongs to
                    format: uuid
                slug:
                    type: string
                    description: URL-friendly slug derived from the URL and ID.
                transport_type:
                    type: string
                    description: The transport type for the remote MCP server
                updated_at:
                    type: string
                    description: When the remote MCP server was last updated
                    format: date-time
                url:
                    type: string
                    description: The URL of the remote MCP server
                    format: uri
            description: A remote MCP server configuration
            required:
                - id
                - project_id
                - url
                - transport_type
                - created_at
                - updated_at
        RemoteMcpServerClientScopes:
            type: object
            properties:
                client_id:
                    type: string
                    description: The remote session client's ID.
                    format: uuid
                issuer_name:
                    type: string
                    description: The configured name of the client's authorization server; absent when it has none.
                issuer_url:
                    type: string
                    description: The issuer URL of the client's authorization server.
                pin_would_decide:
                    type: boolean
                    description: 'Whether a pin, if set, decides this client''s request: discovery is on, the client owns the resource, and neither its own scope nor a challenge outranks the pin.'
                requested_scopes:
                    type: array
                    items:
                        type: string
                    description: The scope parameter the login would send; empty sends none.
                scope_source:
                    type: string
                    description: The precedence step that decided the request.
                    enum:
                        - resource_pin
                        - client_scope
                        - challenge_scope
                        - live_resource
                        - cached_resource
                        - issuer_override
                        - issuer_omitted
                        - issuer_catalogue
                        - none
                unadvertised_pinned_scopes:
                    type: array
                    items:
                        type: string
                    description: Pinned scopes the resource does not advertise; sent regardless. Empty when the pin does not decide or the resource's list is unknown.
            description: What a login through one client bound to the MCP server would request now, resolved from cached state.
            required:
                - client_id
                - scope_source
                - requested_scopes
                - unadvertised_pinned_scopes
                - pin_would_decide
        RemoteMcpServerHeader:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the header was created
                    format: date-time
                description:
                    type: string
                    description: Description of the header
                id:
                    type: string
                    description: The ID of the header
                    format: uuid
                is_required:
                    type: boolean
                    description: Whether the header is required
                is_secret:
                    type: boolean
                    description: Whether the header value is a secret
                name:
                    type: string
                    description: The header name
                updated_at:
                    type: string
                    description: When the header was last updated
                    format: date-time
                value:
                    type: string
                    description: The header value (redacted if secret)
                value_from_request_header:
                    type: string
                    description: Name of the inbound request header to pass through
            description: A header configured for a remote MCP server
            required:
                - id
                - name
                - is_required
                - is_secret
                - created_at
                - updated_at
        RemoteMcpServerScopes:
            type: object
            properties:
                advertised_scopes:
                    type: array
                    items:
                        type: string
                    description: The resource's advertised scopes_supported from that read. Absent when unknown or empty; see advertised_scopes_known.
                advertised_scopes_known:
                    type: boolean
                    description: Whether a read of the resource's metadata within the last good window captured an advertised list.
                can_pin:
                    type: boolean
                    description: 'Whether the caller may change the pin: write access to this server and every server in the project with the same upstream URL.'
                challenge_scopes:
                    type: array
                    items:
                        type: string
                    description: The scope parameter of the resource's last WWW-Authenticate challenge; empty when none was seen.
                clients:
                    type: array
                    items:
                        $ref: '#/components/schemas/RemoteMcpServerClientScopes'
                    description: One entry per client bound to the server's user session issuer.
                discovery_enabled:
                    type: boolean
                    description: Whether the organization's logins consult the protected resource (challenge scopes, pin, advertised list). Off, the pin is stored but not applied.
                pinned_scopes:
                    type: array
                    items:
                        type: string
                    description: The operator's scope pin on the protected resource, shared by servers with the same upstream URL; empty when unset.
                resource_url:
                    type: string
                    description: 'The protected resource: the server''s upstream URL.'
                    format: uri
                shared_server_count:
                    type: integer
                    description: How many other live MCP servers in the project share this upstream URL, and so this pin.
                    format: int64
            description: Scope state of the protected resource a remote-backed MCP server's logins are for.
            required:
                - resource_url
                - pinned_scopes
                - advertised_scopes_known
                - challenge_scopes
                - discovery_enabled
                - clients
                - shared_server_count
                - can_pin
        RemoteSession:
            type: object
            properties:
                access_expires_at:
                    type: string
                    description: Upstream access-token expiry. Independent of refresh_expires_at.
                    format: date-time
                created_at:
                    type: string
                    format: date-time
                has_refresh_token:
                    type: boolean
                    description: Whether the session holds an upstream refresh token. Gates the 'Refresh now' action; refresh_expires_at is insufficient because an upstream may issue a non-expiring refresh token. The token itself is never returned.
                id:
                    type: string
                    description: The remote_session id.
                    format: uuid
                identity_source:
                    type: string
                    description: The upstream identity interface that supplied the stored account identity, such as an ID token or userinfo response. Absent when upstream identity is unknown.
                refresh_expires_at:
                    type: string
                    description: Upstream refresh-token expiry. Null when the session has no refresh token.
                    format: date-time
                remote_session_client_id:
                    type: string
                    description: The remote_session_client this session was minted against.
                    format: uuid
                scopes:
                    type: array
                    items:
                        type: string
                    description: Scopes held by this session.
                subject_display_name:
                    type: string
                    description: Resolved display name when the subject is a Speakeasy user. Absent for apikey/anonymous subjects or unresolved users.
                subject_email:
                    type: string
                    description: Resolved email when the subject is a Speakeasy user. Absent for apikey/anonymous subjects or unresolved users.
                subject_urn:
                    type: string
                    description: The session's subject URN (user:<id> | apikey:<uuid> | anonymous:<mcp-session-id>).
                updated_at:
                    type: string
                    format: date-time
                upstream_display_name:
                    type: string
                    description: Stored display name of the account at the upstream provider. Absent when no upstream identity interface supplied it.
                upstream_email:
                    type: string
                    description: Stored email of the account at the upstream provider. Absent when no upstream identity interface supplied it; never inferred from the Speakeasy subject.
                user_session_issuer_id:
                    type: string
                    description: The user_session_issuer this session is bound to.
                    format: uuid
            description: A remote_session record — Speakeasy's upstream OAuth session for a (principal, remote_session_client) pair. access_token_encrypted and refresh_token_encrypted are never returned.
            required:
                - id
                - subject_urn
                - user_session_issuer_id
                - remote_session_client_id
                - access_expires_at
                - has_refresh_token
                - scopes
                - created_at
                - updated_at
        RemoteSessionClient:
            type: object
            properties:
                audience:
                    type: string
                    description: Upstream OAuth audience sent on the authorize redirect and token exchange. Null omits the audience parameter.
                callback_url:
                    type: string
                    description: The redirect URI this client registers with its upstream provider. It never changes after the client is created. Absent on global clients and on clients with credential_owner self, which have no callback.
                    format: uri
                client_id:
                    type: string
                    description: The client_id used to identify this client at the issuer's token and authorization endpoints.
                client_id_issued_at:
                    type: string
                    format: date-time
                client_id_metadata_uri:
                    type: string
                    description: 'When set, the client is in Client ID Metadata Document (CIMD) mode: Speakeasy hosts its OAuth client metadata document at this URL and uses it as the client_id. Null for non-CIMD clients.'
                client_secret_expires_at:
                    type: string
                    description: Null when the secret does not expire.
                    format: date-time
                created_at:
                    type: string
                    format: date-time
                credential_owner:
                    type: string
                    description: Who the upstream access credential belongs to. subject means each caller connects their own upstream account; self means the client holds one credential for itself, obtained with the client_credentials grant, that every caller shares.
                    enum:
                        - subject
                        - self
                federated_callback_url:
                    type: string
                    description: The redirect URI to register in the customer identity provider's app when this client is a user session issuer's trusted sign-in client. Present only on organization-owned clients outside any project and not managed by an identity provider connection, the only clients a user session issuer can trust.
                    format: uri
                grant_types:
                    type: array
                    items:
                        type: string
                    description: Recorded effective registration grants. Null means unknown; an empty array means no recorded grants.
                id:
                    type: string
                    description: The remote_session_client id.
                    format: uuid
                json_web_key_set_id:
                    type: string
                    description: The organization JSON Web Key Set attached to this client, set on create or through attachKeySet and detachKeySet. Null when no key set is attached.
                    format: uuid
                legacy_callback_url:
                    type: boolean
                    description: Whether the client was registered upstream with the legacy callback URL. The authorize leg then sends that URL and a JSON state instead of the current callback. Cleared when the client is rotated.
                organization_id:
                    type: string
                    description: The owning organization id. Empty for legacy rows not yet backfilled and global clients.
                project_id:
                    type: string
                    description: The owning project id. Empty for organization-level and global clients.
                remote_session_issuer_id:
                    type: string
                    description: The owning remote_session_issuer id.
                    format: uuid
                scope:
                    type: array
                    items:
                        type: string
                    description: Explicit upstream OAuth scopes the dance requests for this client. Null falls back to the issuer's scopes_supported.
                token_endpoint_auth_audience_format:
                    type: string
                    description: Identifier used as the aud claim in private_key_jwt assertions. Null resolves to issuer.
                    enum:
                        - issuer
                        - token_endpoint
                token_endpoint_auth_method:
                    type: string
                    description: How the client authenticates at the issuer's token endpoint. Null resolves to client_secret_basic at runtime.
                    enum:
                        - client_secret_basic
                        - client_secret_post
                        - none
                        - private_key_jwt
                updated_at:
                    type: string
                    format: date-time
                upstream_rejected_at:
                    type: string
                    description: When the issuer's token endpoint last answered invalid_client for this client_id, meaning the issuer no longer recognizes the registration. Null while the registration is in good standing; cleared by a successful rotation, a successful refresh, or a replaced secret.
                    format: date-time
                user_session_issuer_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: The user_session_issuers this client is attached to via the join table. Empty for a standalone client with no attachments.
            description: A remote_session_client record. client_secret_encrypted is never returned.
            required:
                - id
                - project_id
                - organization_id
                - remote_session_issuer_id
                - user_session_issuer_ids
                - client_id
                - legacy_callback_url
                - credential_owner
                - created_at
                - updated_at
        RemoteSessionIssuer:
            type: object
            properties:
                authorization_endpoint:
                    type: string
                    description: Upstream authorization endpoint.
                authorization_grant_profiles_supported:
                    type: array
                    items:
                        type: string
                    description: Advertised grant profiles; metadata evidence is not client authorization or user access.
                authorization_response_iss_parameter_supported:
                    type: boolean
                    description: Whether the issuer includes the RFC 9207 iss parameter in authorization responses. Null until discovery captures the field.
                backchannel_logout_supported:
                    type: boolean
                    description: Whether the issuer supports OpenID Connect Back-Channel Logout. Null until discovery captures the field.
                claims_supported:
                    type: array
                    items:
                        type: string
                    description: Claims the issuer can return in ID tokens and from userinfo. Null until discovery captures the field; an empty array means the field was captured and the issuer advertises none.
                client_id_metadata_document_supported:
                    type: boolean
                    description: Whether the issuer accepts a Client ID Metadata Document URL as client_id (OAuth CIMD draft).
                client_setup_documentation_url:
                    type: string
                    description: URL of OAuth client setup documentation shown when creating clients. Manually set, not RFC 8414; null when unset.
                code_challenge_methods_supported:
                    type: array
                    items:
                        type: string
                    description: PKCE code challenge methods advertised by the issuer (RFC 8414 code_challenge_methods_supported). Null when neither discovery nor an operator has captured the field for this issuer yet; an empty array means the field was captured and the issuer advertises no methods.
                created_at:
                    type: string
                    format: date-time
                ema_providers:
                    $ref: '#/components/schemas/EMAProviderOrder'
                grant_types_supported:
                    type: array
                    items:
                        type: string
                id:
                    type: string
                    description: The remote_session_issuer id.
                    format: uuid
                id_token_signing_alg_values_supported:
                    type: array
                    items:
                        type: string
                    description: JWS algorithms the issuer signs ID tokens with. Null until discovery captures the field; an empty array means the field was captured and the issuer advertises none.
                introspection_endpoint:
                    type: string
                    description: RFC 7662 token introspection endpoint. Null when not advertised or not yet captured by discovery.
                introspection_endpoint_auth_methods_supported:
                    type: array
                    items:
                        type: string
                    description: Client authentication methods the introspection endpoint accepts. Null until discovery captures the field; an empty array means the field was captured and the issuer advertises none.
                issuer:
                    type: string
                    description: Issuer URL; matches the iss claim.
                jwks_cache_expires_at:
                    type: string
                    description: When the persisted JWK Set becomes stale under the upstream cache policy. Null until the first successful refresh.
                    format: date-time
                jwks_fetched_at:
                    type: string
                    description: When Speakeasy last successfully fetched or revalidated the JWK Set. Null until the first successful refresh.
                    format: date-time
                jwks_uri:
                    type: string
                    description: Upstream JWKS URI; null when not advertised.
                logo_asset_id:
                    type: string
                    description: Optional logo asset id; null when unset.
                    format: uuid
                name:
                    type: string
                    description: Optional display name; null when unset.
                oidc:
                    type: boolean
                    description: When true, may unlock OIDC-aware behaviour.
                omit_scope_fallback:
                    type: boolean
                    description: When true, a login that would otherwise request the authorization server's whole scopes_supported omits the scope parameter so the server applies its default. Null when unset.
                op_policy_uri:
                    type: string
                    description: RFC 8414 op_policy_uri; the issuer's client data-usage policy. Null when not advertised.
                op_tos_uri:
                    type: string
                    description: RFC 8414 op_tos_uri; the issuer's terms of service. Null when not advertised.
                organization_id:
                    type: string
                    description: The owning organization id. Empty for legacy rows not yet backfilled.
                passthrough:
                    type: boolean
                    description: When true, the MCP client registers and transacts directly with this issuer.
                project_id:
                    type: string
                    description: The owning project id. Empty for organization-level issuers.
                registration_endpoint:
                    type: string
                    description: Upstream RFC 7591 registration endpoint; null for issuers without DCR.
                resource_indicator_supported:
                    type: boolean
                    description: Whether the issuer accepts the RFC 8707 resource parameter, as an operator stated it. Null when unset; false omits the parameter on every grant.
                response_types_supported:
                    type: array
                    items:
                        type: string
                revocation_endpoint:
                    type: string
                    description: Upstream RFC 7009 revocation endpoint; null when the issuer advertises none.
                scope_override:
                    type: array
                    items:
                        type: string
                    description: Operator-pinned scope request, sent verbatim on the upstream authorize redirect in place of the resolved scope set. Null when unset.
                scopes_supported:
                    type: array
                    items:
                        type: string
                service_documentation:
                    type: string
                    description: RFC 8414 service_documentation; developer documentation for the issuer. Null when not advertised.
                slug:
                    type: string
                    description: Project-unique slug.
                token_endpoint:
                    type: string
                    description: Upstream token endpoint.
                token_endpoint_auth_methods_supported:
                    type: array
                    items:
                        type: string
                tunneled_mcp_server_id:
                    type: string
                    description: When set, calls to this issuer's OAuth endpoints ride this MCP tunnel instead of dialing directly.
                    format: uuid
                updated_at:
                    type: string
                    format: date-time
                userinfo_endpoint:
                    type: string
                    description: OpenID Connect userinfo endpoint. Null when not advertised or not yet captured by discovery.
            description: A remote_session_issuer record — upstream Authorization Server identity that Speakeasy speaks OAuth to.
            required:
                - id
                - project_id
                - organization_id
                - slug
                - issuer
                - oidc
                - passthrough
                - client_id_metadata_document_supported
                - created_at
                - updated_at
        RemoteSessionIssuerDraft:
            type: object
            properties:
                authorization_endpoint:
                    type: string
                    description: Upstream authorization endpoint.
                authorization_grant_profiles_supported:
                    type: array
                    items:
                        type: string
                    description: Advertised grant profiles; metadata evidence is not client authorization or user access.
                authorization_response_iss_parameter_supported:
                    type: boolean
                    description: Whether the discovery document advertises the RFC 9207 iss parameter in authorization responses; false when the document omits the field.
                backchannel_logout_supported:
                    type: boolean
                    description: Whether the discovery document advertises OpenID Connect Back-Channel Logout support; false when the document omits the field.
                claims_supported:
                    type: array
                    items:
                        type: string
                    description: Claims the issuer can return in ID tokens and from userinfo. Null when the document omits the field.
                client_id_metadata_document_supported:
                    type: boolean
                    description: Whether the issuer advertises support for a Client ID Metadata Document URL as client_id (OAuth CIMD draft), parsed from the discovery document.
                code_challenge_methods_supported:
                    type: array
                    items:
                        type: string
                    description: PKCE code challenge methods advertised in the discovery document (RFC 8414 code_challenge_methods_supported). Null when the document omits the field.
                discovery_warnings:
                    type: array
                    items:
                        type: string
                    description: Warnings describing any RFC 8414 deviations encountered during discovery.
                grant_types_supported:
                    type: array
                    items:
                        type: string
                id_token_signing_alg_values_supported:
                    type: array
                    items:
                        type: string
                    description: JWS algorithms the issuer signs ID tokens with. Null when the document omits the field.
                introspection_endpoint:
                    type: string
                    description: RFC 7662 token introspection endpoint advertised in the discovery document. Null when not advertised.
                introspection_endpoint_auth_methods_supported:
                    type: array
                    items:
                        type: string
                    description: Client authentication methods the introspection endpoint accepts. Null when the document omits the field.
                issuer:
                    type: string
                    description: Issuer URL; matches the iss claim.
                jwks_uri:
                    type: string
                    description: Upstream JWKS URI; null when not advertised.
                oidc:
                    type: boolean
                    description: When true, may unlock OIDC-aware behaviour.
                op_policy_uri:
                    type: string
                    description: RFC 8414 op_policy_uri; the issuer's client data-usage policy. Null when not advertised or when the advertised value is not an absolute http(s) URL.
                op_tos_uri:
                    type: string
                    description: RFC 8414 op_tos_uri; the issuer's terms of service. Null when not advertised or when the advertised value is not an absolute http(s) URL.
                passthrough:
                    type: boolean
                    description: When true, the MCP client registers and transacts directly with this issuer.
                registration_endpoint:
                    type: string
                    description: Upstream RFC 7591 registration endpoint; null for issuers without DCR.
                resource_indicator_supported:
                    type: boolean
                    description: Whether the issuer accepts the RFC 8707 resource parameter. Never proposed by discovery, so always null on a draft.
                response_types_supported:
                    type: array
                    items:
                        type: string
                revocation_endpoint:
                    type: string
                    description: Upstream RFC 7009 revocation endpoint; null when the issuer advertises none.
                scope_override:
                    type: array
                    items:
                        type: string
                    description: Operator-pinned scope request. Never proposed by discovery, so always null on a draft.
                scopes_supported:
                    type: array
                    items:
                        type: string
                service_documentation:
                    type: string
                    description: RFC 8414 service_documentation; developer documentation for the issuer. Null when not advertised or when the advertised value is not an absolute http(s) URL.
                token_endpoint:
                    type: string
                    description: Upstream token endpoint.
                token_endpoint_auth_methods_supported:
                    type: array
                    items:
                        type: string
                userinfo_endpoint:
                    type: string
                    description: OpenID Connect userinfo endpoint advertised in the discovery document. Null when not advertised.
            description: A draft remote_session_issuer returned by discover. Same shape as RemoteSessionIssuer minus id/project_id/timestamps, plus discovery_warnings describing any RFC 8414 deviations.
            required:
                - issuer
                - oidc
                - passthrough
                - client_id_metadata_document_supported
                - backchannel_logout_supported
                - authorization_response_iss_parameter_supported
                - discovery_warnings
        RemoteSessionIssuerDuplicateMatch:
            type: object
            properties:
                id:
                    type: string
                    description: The matching remote_session_issuer id.
                    format: uuid
                issuer:
                    type: string
                    description: The matching issuer's stored upstream URL. May differ in spelling from the URL that was looked up, since canonicalization is applied to the supplied URL only.
                name:
                    type: string
                    description: The matching issuer's display name. Empty when it has none, in which case a caller should fall back to the slug.
                project_name:
                    type: string
                    description: The owning project's name, for a project-specific match an organization administrator may not otherwise be able to place. Empty for organization-level and platform-level matches, and for project-specific matches returned to a caller already scoped to that project.
                slug:
                    type: string
                    description: The matching issuer's slug.
                tier:
                    type: string
                    description: 'Which tenancy tier owns the match: project-specific, organization-level, or platform-level.'
                    enum:
                        - project-specific
                        - organization-level
                        - platform-level
            description: An existing remote_session_issuer that already describes the upstream authorization server a caller is about to add.
            required:
                - id
                - slug
                - name
                - issuer
                - tier
                - project_name
        RemoteSessionIssuerDuplicatePreflight:
            type: object
            properties:
                matches:
                    type: array
                    items:
                        $ref: '#/components/schemas/RemoteSessionIssuerDuplicateMatch'
                    description: 'The matching issuers in resolution order: project-specific first, then organization-level, then platform-level, and oldest first within a tier. The first entry is therefore the issuer this caller would resolve the URL to today. Empty when nothing describes the URL yet, and empty when the supplied URL is not a usable issuer identifier. Truncated to a fixed cap, since a warning only has to establish that duplicates exist and name a few.'
            description: 'Existing remote_session_issuers that already describe an upstream issuer URL. Advisory: a non-empty result never blocks a create or an update.'
            required:
                - matches
        RemoteSessionIssuerRefresh:
            type: object
            properties:
                discovery_warnings:
                    type: array
                    items:
                        type: string
                    description: Warnings describing any RFC 8414 deviations encountered while re-reading the issuer's metadata document. A refresh that returns warnings still persisted its result; deviations severe enough to distrust the document abort the refresh with an error instead.
                issuer:
                    $ref: '#/components/schemas/RemoteSessionIssuer'
            description: 'Result of refreshMetadata: the stored remote_session_issuer as it now stands, plus any warnings raised while re-reading the upstream RFC 8414 document. Distinct from RemoteSessionIssuerDraft, which describes an issuer that may not exist yet and is never persisted.'
            required:
                - issuer
                - discovery_warnings
        RemoveClientFromMcpServerRequestBody:
            type: object
            properties:
                client_id:
                    type: string
                    description: The remote_session_client id.
                    format: uuid
                mcp_server_id:
                    type: string
                    description: The mcp_server id to detach from.
                    format: uuid
            required:
                - client_id
                - mcp_server_id
        RemoveDashboardWidgetRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The dashboard the card is on
                    format: uuid
                placement_id:
                    type: string
                    description: The card to remove
                    format: uuid
            required:
                - id
                - placement_id
        RenameAgentForm:
            type: object
            properties:
                id:
                    type: string
                    format: uuid
                name:
                    type: string
                    minLength: 1
                    maxLength: 120
            required:
                - id
                - name
        RenderTemplateByIDRequestBody:
            type: object
            properties:
                arguments:
                    type: object
                    description: The input data to render the template with
                    additionalProperties: true
            required:
                - arguments
        RenderTemplateRequestBody:
            type: object
            properties:
                arguments:
                    type: object
                    description: The input data to render the template with
                    additionalProperties: true
                engine:
                    type: string
                    description: The template engine
                    enum:
                        - mustache
                kind:
                    type: string
                    description: The kind of prompt the template is used for
                    enum:
                        - prompt
                prompt:
                    type: string
                    description: The template content to render
            required:
                - prompt
                - arguments
                - engine
                - kind
        RenderTemplateResult:
            type: object
            properties:
                prompt:
                    type: string
                    description: The rendered prompt
            required:
                - prompt
        RepairInferenceKeyRequestBody:
            type: object
            properties:
                confirmation:
                    type: string
                    description: 'Exact staff confirmation: I know what I''m doing'
                    enum:
                        - I know what I'm doing
                key_type:
                    type: string
                    enum:
                        - chat
                        - internal
                organization_id:
                    type: string
                reason:
                    type: string
                    description: Nonblank audit reason, at most 2000 UTF-8 bytes (enforced by the handler).
                    minLength: 1
                remove_causes:
                    type: array
                    items:
                        type: string
                        enum:
                            - admin_lock
                            - trial_demotion
                            - billing_inactive
                    description: Unique known disable causes to remove.
                    minItems: 1
                    maxItems: 3
            required:
                - organization_id
                - key_type
                - remove_causes
                - confirmation
                - reason
        ReplaceIdentityProviderConnectionClientSecretRequestBody:
            type: object
            properties:
                client_secret:
                    type: string
                    description: New client secret from the Speakeasy integration in Okta. Encrypted before persisting and never returned.
                id:
                    type: string
                    description: Connection ID.
                    format: uuid
            required:
                - id
                - client_secret
        ReportAIScanRequestBody:
            type: object
            properties:
                matches:
                    type: array
                    items:
                        $ref: '#/components/schemas/AIScanMatch'
                    description: Detection targets the scan matched. Empty when the device came back clean; the report still lands as a scan receipt.
                    maxItems: 100
                scan_completed_at:
                    type: string
                    description: When the agent completed the scan.
                    format: date-time
                scan_started_at:
                    type: string
                    description: When the agent started the scan.
                    format: date-time
                target_list_version:
                    type: integer
                    description: 'Revision of the scan target catalog the agent scanned with: the list_version it last received from getPlugins, or 0 when it fell back to the list embedded in its binary. Echoed into the scan receipt as reported.'
                    format: int64
                    minimum: 0
                    maximum: 2.147483647e+09
            required:
                - scan_started_at
                - scan_completed_at
                - target_list_version
                - matches
        ReportSessionMovedRequestBody:
            type: object
            properties:
                email:
                    type: string
                    description: Email of the enrolled user. Authoritative when authenticating with an org-scoped agent install key (the MDM zero-touch path); ignored for a per-user key, whose owner is the enrolled user.
                session_id:
                    type: string
                    description: Native harness session identifier of the moved session. Speakeasy derives its chat id from this the same way hook ingest does; the move is recorded even if the session has not been captured yet.
                    maxLength: 256
                source_surface:
                    type: string
                    description: Harness the session originated in, as detected by the agent (e.g. claude-code, codex).
                    maxLength: 64
                target_harness:
                    type: string
                    description: Harness the session was moved to (e.g. cursor, codex, claude-code).
                    maxLength: 64
                target_session_id:
                    type: string
                    description: Native session id minted for the continuation, when the daemon knows it at launch time (claude-code targets today; Cursor mints ids server-side so moves there omit it). Lets Speakeasy link the original session and its continuation.
                    maxLength: 256
            required:
                - session_id
                - target_harness
        RequestAccessForm:
            type: object
            properties:
                message:
                    type: string
                    description: Optional message from the requester explaining why they need access.
                    maxLength: 1000
                resource_id:
                    type: string
                    description: Optional resource ID the scope applies to.
                resource_name:
                    type: string
                    description: Optional human-readable name for the resource (e.g. project name, MCP server name).
                scope:
                    type: string
                    description: The scope being requested.
                    enum:
                        - org:read
                        - org:admin
                        - project:read
                        - project:write
                        - mcp:read
                        - mcp:write
                        - mcp:connect
                        - environment:read
                        - environment:write
                        - skill:read
                        - skill:write
                        - plugin:write
                        - risk_policy:evaluate
                        - risk_policy:bypass
                        - chat:read
                        - chat:write
                        - log:read
                        - agent:read
                        - agent:write
                        - agent:authorize
                        - agent:transfer
                        - workload:read
                        - workload:write
                        - org:device_agent_sync
                        - org:hooks_ingest
            description: Form for requesting access to a scope.
            required:
                - scope
        RequestAccessResult:
            type: object
            properties:
                sent_to_count:
                    type: integer
                    description: Number of administrators who were notified.
                    format: int64
            required:
                - sent_to_count
        ResearchPageFetchCall:
            type: object
            properties:
                cited_by_claims:
                    type: array
                    items:
                        type: integer
                        format: int64
                    description: Indices of the report claims that cited this page — the link from a fetch to the evidence it became. Empty when the page was read but nothing in the final report rests on it.
                content_bytes:
                    type: integer
                    description: The fetched page's extracted-text size.
                    format: int64
                content_preview:
                    type: string
                    description: A bounded preview of the extracted page text. Untrusted web content.
                content_type:
                    type: string
                    description: The fetched page's content type.
                final_url:
                    type: string
                    description: Where the fetch landed after redirects, when it differed.
                injection_flagged:
                    type: boolean
                    description: Whether the judge found the page tried to instruct its reader.
                judge_rationale:
                    type: string
                    description: The judge's reasoning, when it flagged the page.
                judged:
                    type: boolean
                    description: Whether the injection judge reached a verdict on this page.
                truncated:
                    type: boolean
                    description: Whether the fetch hit its caps and the preview is of a prefix.
                url:
                    type: string
                    description: The page the agent fetched.
            description: A page the agent fetched, with what came back and the injection judge's verdict on it. A fetch spends nothing.
        ResearchReport:
            type: object
            properties:
                completed_at:
                    type: string
                    description: When the run finished.
                    format: date-time
                created_at:
                    type: string
                    description: When the run was requested.
                    format: date-time
                error:
                    type: string
                    description: Why the run failed, when it did.
                id:
                    type: string
                    description: The report ID.
                model:
                    type: string
                    description: The model that produced the report.
                prompt_version:
                    type: string
                    description: The prompt version the run used, so reports stay distinguishable across prompt changes.
                report:
                    description: The structured findings. Every claim carries a provenance tier and its citations.
                report_version:
                    type: integer
                    description: Shape version of the report payload.
                    format: int64
                requested_by:
                    type: string
                    description: Who asked for the research run.
                started_at:
                    type: string
                    description: When the run started.
                    format: date-time
                status:
                    type: string
                    description: The run's lifecycle state, such as running, completed, or failed.
                tool_calls:
                    type: array
                    items:
                        $ref: '#/components/schemas/ResearchToolCall'
                    description: The run's per-action trace — every search and page fetch, in order. The report above is a synthesis that drops most of what was read; this is what the agent actually did.
            description: One research-agent run over a request's server. Findings are gathered and cited, never adjudicated — and web-sourced claims may be inaccurate, incomplete, or deliberately seeded.
            required:
                - id
                - status
                - report_version
                - created_at
        ResearchToolCall:
            type: object
            properties:
                error:
                    type: string
                    description: The tool's failure text, when the call did not succeed.
                fetch:
                    $ref: '#/components/schemas/ResearchPageFetchCall'
                search:
                    $ref: '#/components/schemas/ResearchWebSearchCall'
                sequence:
                    type: integer
                    description: Position in the run, from zero.
                    format: int64
                tool:
                    type: string
                    description: 'The tool that ran: web_search or fetch_page. The discriminator for which payload below is present.'
            description: One action a research run took, named by tool and carrying the payload for that tool. The report is a synthesis that drops most of what was read; this is what the agent actually did. Observability, never a claim about the server.
            required:
                - sequence
                - tool
        ResearchWebSearchCall:
            type: object
            properties:
                completion_tokens:
                    type: integer
                    description: Completion tokens this search spent.
                    format: int64
                prompt_tokens:
                    type: integer
                    description: Prompt tokens this search spent.
                    format: int64
                query:
                    type: string
                    description: What the agent searched for.
                result_count:
                    type: integer
                    description: How many citations the search returned.
                    format: int64
            description: A web search the agent ran. A search runs a billed completion, so its token spend lives here.
        ResetOktaResourceConnectionRequestBody:
            type: object
            properties:
                mcp_server_id:
                    type: string
                    description: Server to reset.
                    format: uuid
            required:
                - mcp_server_id
        ResolveChallengeForm:
            type: object
            properties:
                challenge_ids:
                    type: array
                    items:
                        type: string
                    description: IDs of the challenges in ClickHouse to resolve.
                    minItems: 1
                principal_urn:
                    type: string
                    description: Principal that was denied.
                resolution_type:
                    type: string
                    description: How the challenge is being resolved.
                    enum:
                        - role_assigned
                        - dismissed
                resource_id:
                    type: string
                    description: Resource ID from the challenge.
                resource_kind:
                    type: string
                    description: Resource kind from the challenge.
                role_assignment_confirmed:
                    type: boolean
                    description: Confirms the administrator reviewed and accepts every permission granted by the complete role. Must be true when resolution_type=role_assigned.
                role_slug:
                    type: string
                    description: Custom role slug to add to the denied user before resolving (required when resolution_type=role_assigned).
                scope:
                    type: string
                    description: Scope that was denied.
            required:
                - challenge_ids
                - principal_urn
                - scope
                - resolution_type
        ResolveChallengesResult:
            type: object
            properties:
                resolutions:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChallengeResolution'
                    description: The created resolution records.
            required:
                - resolutions
        ResolveDirectoryReviewItemForm:
            type: object
            properties:
                decision:
                    type: string
                    description: approve, dismiss, or opt_out_key (new attribute values only).
                    enum:
                        - approve
                        - dismiss
                        - opt_out_key
                grant_set:
                    type: array
                    items:
                        $ref: '#/components/schemas/RoleGrant'
                    description: Optional grants given to every role the approval creates. Existing roles are never changed.
                id:
                    type: string
                    description: The review item.
                    format: uuid
                roles:
                    type: array
                    items:
                        $ref: '#/components/schemas/ApplyDirectoryRoleSetupRole'
                    description: The role set to map a new source to. Required and non-empty to approve a new source; must be empty or omitted otherwise.
                version:
                    type: string
                    description: The item version from listDirectoryReviewItems. Required to approve.
            required:
                - id
                - decision
        ResolveDirectoryReviewItemResult:
            type: object
            properties:
                created_roles:
                    type: array
                    items:
                        $ref: '#/components/schemas/Role'
                    description: Roles the approval created.
                mappings:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryRoleMapping'
                    description: The mappings an approval of a new source wrote. Empty for every other decision.
                side_effects:
                    type: array
                    items:
                        $ref: '#/components/schemas/DirectoryRoleSetupSideEffect'
                    description: Work requested after commit.
                state:
                    type: string
                    description: The item's state after the decision.
                    enum:
                        - approved
                        - dismissed
            required:
                - state
                - created_roles
                - mappings
                - side_effects
        ResolveIdentityForm:
            type: object
            properties:
                urn:
                    type: string
                    description: The identity URN to resolve, in the form '<kind>:<id>'. Kind is one of 'user' (Speakeasy user id), 'email', 'external' (the external user id an agent reported), 'apikey', or 'agent'. Callers pass whichever identifier they hold; every URN for the same subject resolves to the same identity.
                    example: user:user_01abc
            required:
                - urn
        ResolveShadowMCPInventoryRequestForm:
            type: object
            properties:
                decision:
                    type: string
                    description: Decision used when resolving a Shadow MCP inventory request.
                    enum:
                        - allow
                        - deny
                policy_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                project_id:
                    type: string
                    format: uuid
                server_url:
                    type: string
                    format: uri
            required:
                - project_id
                - server_url
                - decision
        Resource:
            type: object
            properties:
                function_resource_definition:
                    $ref: '#/components/schemas/FunctionResourceDefinition'
            description: A polymorphic resource - currently only function resources are supported
        ResourceAudienceEntry:
            type: object
            properties:
                agent_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: Ids of the agents this rule currently reaches, whether it names them or a role they hold.
                applies_to:
                    type: string
                    description: Whether the rule names this resource or every resource of its kind.
                    enum:
                        - resource
                        - all_resources
                description:
                    type: string
                    description: 'Secondary line: email, member count, or attribute key.'
                display_name:
                    type: string
                    description: Human-readable name for the principal.
                dispositions:
                    type: array
                    items:
                        type: string
                        enum:
                            - read_only
                            - destructive
                            - idempotent
                            - open_world
                    description: Tool annotations the rule is narrowed to, when it is not the whole resource.
                kind:
                    type: string
                    description: What the principal identifies.
                    enum:
                        - everyone
                        - role
                        - user
                        - agent
                        - directory_group
                        - directory_attribute
                        - unknown
                level:
                    type: string
                    description: Access this principal has on the resource, or the access a rule takes away.
                    enum:
                        - use
                        - view
                        - manage
                        - blocked
                        - blocked_view
                        - blocked_manage
                member_count:
                    type: integer
                    description: How many people the principal reaches, when known.
                    format: int64
                member_ids:
                    type: array
                    items:
                        type: string
                    description: User ids of the organization members this rule currently reaches.
                principal_urn:
                    type: string
                    description: Canonical principal URN this rule belongs to.
                tools:
                    type: array
                    items:
                        type: string
                    description: Tool names the rule is narrowed to, when it is not the whole resource.
            required:
                - principal_urn
                - kind
                - display_name
                - level
                - applies_to
        ResourceAudienceResult:
            type: object
            properties:
                entries:
                    type: array
                    items:
                        $ref: '#/components/schemas/ResourceAudienceEntry'
                    description: Rules deciding access to this resource, widest first.
                role_plugins:
                    type: array
                    items:
                        $ref: '#/components/schemas/ResourceAudienceRolePlugin'
                    description: Live plugins containing this resource and assigned to an exact audience role. Omitted without plugin read and administrator access; not evidence of authorization or installation.
                version:
                    type: string
                    description: Fingerprint of the rules naming this resource. Send it back when saving so a change made elsewhere is a conflict rather than a silent overwrite.
            required:
                - entries
                - version
        ResourceAudienceRolePlugin:
            type: object
            properties:
                name:
                    type: string
                    description: Plugin name.
                plugin_id:
                    type: string
                    description: Plugin ID.
                principal_urn:
                    type: string
                    description: Exact role assigned to the plugin.
                slug:
                    type: string
                    description: Plugin slug.
            required:
                - principal_urn
                - plugin_id
                - name
                - slug
        ResourceEntry:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the resource
                name:
                    type: string
                    description: The name of the resource
                resource_urn:
                    type: string
                    description: The URN of the resource
                type:
                    type: string
                    enum:
                        - function
                uri:
                    type: string
                    description: The uri of the resource
            required:
                - type
                - id
                - name
                - uri
                - resource_urn
        ResponseFilter:
            type: object
            properties:
                content_types:
                    type: array
                    items:
                        type: string
                    description: Content types to filter for
                status_codes:
                    type: array
                    items:
                        type: string
                    description: Status codes to filter for
                type:
                    type: string
                    description: Response filter type for the tool
            description: Response filter metadata for the tool
            required:
                - type
                - status_codes
                - content_types
        RestoreOktaServerSuggestionRequestBody:
            type: object
            properties:
                registry_entry_id:
                    type: string
                    description: Catalog entry of the suggestion to restore.
                    format: uuid
            required:
                - registry_entry_id
        RestoreSkillVersionRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The skill ID.
                    format: uuid
                version_id:
                    type: string
                    description: The historical version to restore.
                    format: uuid
            required:
                - id
                - version_id
        ResumeStripeSubscriptionRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
            required:
                - organization_id
        RetryScheduleRequestBody:
            type: object
            properties:
                provider:
                    type: string
                    description: AI provider identifier. Supported values include cursor, anthropic_compliance, codex_compliance, and chatgpt_compliance.
                schedule:
                    type: string
                    description: Schedule identifier (e.g. cursor, anthropic_compliance, anthropic_analytics_usage).
            required:
                - provider
                - schedule
        RevokeAllRemoteSessionsResult:
            type: object
            properties:
                revoked_count:
                    type: integer
                    description: Number of remote_sessions revoked.
                    format: int64
            description: Result type for revoking all of a client's remote_sessions.
            required:
                - revoked_count
        RevokeIdentityProviderConnectionRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: Connection ID.
                    format: uuid
            required:
                - id
        RevokeMemberSignInsRequestBody:
            type: object
            properties:
                user_id:
                    type: string
                    description: Speakeasy user ID of the member.
            required:
                - user_id
        RevokeSessionRequestBody:
            type: object
            properties:
                agent_id:
                    type: string
                    description: First-class agent identifier
                    format: uuid
                session_id:
                    type: string
                    format: uuid
            required:
                - agent_id
                - session_id
        RevokeSignInsResult:
            type: object
            properties:
                revoked_sessions:
                    type: integer
                    description: Number of MCP grants revoked.
                    format: int64
                revoked_sign_ins:
                    type: integer
                    description: Number of sign-ins revoked.
                    format: int64
            description: What a sign-in revocation revoked.
            required:
                - revoked_sign_ins
                - revoked_sessions
        RiskAnalysisStatusResult:
            type: object
            properties:
                last_run_at:
                    type: string
                    description: When the most recent closed run finished; the moment the Watchdog findings were last brought up to date. Set only when state is idle.
                    format: date-time
                last_run_outcome:
                    type: string
                    description: 'How the most recent closed run ended: completed, failed, canceled, terminated, continued_as_new, timed_out, or unknown. continued_as_new is the normal outcome for a long-lived coordinator that rolled its history over, so treat it like completed. Set only when state is idle.'
                last_run_started_at:
                    type: string
                    description: When the most recent closed run started. Set only when state is idle.
                    format: date-time
                running_since:
                    type: string
                    description: When the in-flight run started. Set only when state is running.
                    format: date-time
                state:
                    type: string
                    description: 'Coarse run state of the project''s risk analysis coordinator. never: no run is visible, either because the project has never been analyzed or because its last run is older than Temporal''s retention window. idle: the latest run has closed and the coordinator is waiting for the next chat write to wake it. running: a run is in flight right now.'
                    enum:
                        - never
                        - idle
                        - running
            required:
                - state
        RiskBlock:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the block occurred.
                    format: date-time
                feedback:
                    type: string
                    description: Existing feedback sentiment recorded for this block, when any.
                    enum:
                        - up
                        - down
                id:
                    type: string
                    description: The block ID (the underlying risk result ID).
                    format: uuid
                policy_name:
                    type: string
                    description: Name of the risk policy that blocked the call.
                project_id:
                    type: string
                    description: The project the block belongs to.
                    format: uuid
                provider:
                    type: string
                    description: Agent surface that reported the blocked call (adapter slug, e.g. "openclaw"), when known.
                reason:
                    type: string
                    description: Human-readable reason the tool call was blocked.
                tool_name:
                    type: string
                    description: Name of the tool that was blocked, when known.
            required:
                - id
                - project_id
                - reason
                - policy_name
                - created_at
        RiskCategoriesResult:
            type: object
            properties:
                categories:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskCategoryDefinition'
                    description: Categories in classification-priority order. The last entry is the 'custom' fallback for findings that match none of the others.
                recommended_scopes_version:
                    type: integer
                    description: Version of the recommended-scope registry; bumps when any recommendation changes.
                    format: int64
            description: Canonical risk category definitions used to classify findings, in classification-priority order. Consumers should iterate in order and pick the first match.
            required:
                - categories
                - recommended_scopes_version
        RiskCategoryDefinition:
            type: object
            properties:
                description:
                    type: string
                    description: Plain-English description of what this category covers.
                icon:
                    type: string
                    description: Lucide icon name suggested for this category.
                key:
                    type: string
                    description: Canonical category key (e.g. 'secrets', 'pii', 'shadow_mcp').
                label:
                    type: string
                    description: Human-readable category label for UI rendering.
                recommended_scope_applicable:
                    type: boolean
                    description: False when the category is session-scoped and message scoping does not apply (e.g. account_identity).
                recommended_scope_exempt:
                    type: string
                    description: Centrally recommended CEL exemption predicate; empty = no exemption.
                recommended_scope_include:
                    type: string
                    description: Centrally recommended CEL scope predicate for this category; empty = no include restriction.
                recommended_scope_rationale:
                    type: string
                    description: User-facing explanation of the recommended scope and the consequences of disabling it. Empty when the category has no recommendation.
                rule_id_prefix:
                    type: string
                    description: When non-empty, findings whose rule_id starts with this prefix belong to this category. The catch-all for a family (e.g. 'pii.').
                rule_ids:
                    type: array
                    items:
                        type: string
                    description: When non-empty, findings whose rule_id is in this exact list belong to this category. Checked before rule_id_prefix.
                source:
                    type: string
                    description: When non-empty, findings whose source equals this value belong to this category.
            description: One canonical risk category and how findings are classified into it.
            required:
                - key
                - label
                - description
                - icon
                - source
                - rule_ids
                - rule_id_prefix
                - recommended_scope_include
                - recommended_scope_exempt
                - recommended_scope_rationale
                - recommended_scope_applicable
        RiskChatSummary:
            type: object
            properties:
                chat_id:
                    type: string
                    description: The chat session ID.
                    format: uuid
                chat_title:
                    type: string
                    description: Title of the chat session.
                findings_count:
                    type: integer
                    description: Number of findings in this chat.
                    format: int64
                latest_detected:
                    type: string
                    description: When the most recent finding was detected.
                    format: date-time
                user_id:
                    type: string
                    description: The user who owns the chat session.
            required:
                - chat_id
                - findings_count
                - latest_detected
        RiskCustomDetectionRule:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the custom detection rule was created.
                    format: date-time
                description:
                    type: string
                    description: Description of what the rule detects.
                detection_expr:
                    type: string
                    description: 'CEL detection predicate: a boolean expression over message fields whose true verdict produces a finding. Supersedes regex.'
                id:
                    type: string
                    description: The custom detection rule ID.
                    format: uuid
                regex:
                    type: string
                    description: Legacy RE2-compatible regex pattern (read-only). Live for existing rules; evaluated as content.match(regex) when detection_expr is empty. New rules author detection_expr instead.
                rule_id:
                    type: string
                    description: Stable rule identifier, prefixed with `custom.`.
                severity:
                    type: string
                    description: Severity level for findings produced by this rule.
                    enum:
                        - info
                        - low
                        - medium
                        - high
                        - critical
                title:
                    type: string
                    description: Human-readable title for the rule.
                updated_at:
                    type: string
                    description: When the custom detection rule was last updated.
                    format: date-time
            required:
                - id
                - rule_id
                - title
                - description
                - regex
                - severity
                - created_at
                - updated_at
        RiskDetectionScope:
            type: object
            properties:
                category:
                    type: string
                    description: Risk category key this detection scope applies to.
                scope_exempt:
                    type: string
                    description: 'CEL exemption predicate: the category skips a message when this boolean expression is true. Empty means no exemption.'
                scope_include:
                    type: string
                    description: 'CEL scope predicate: the category detects on a message only when this boolean expression is true. Empty means every message surface is included.'
            required:
                - category
        RiskExclusion:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the exclusion was created.
                    format: date-time
                enabled:
                    type: boolean
                    description: Whether the exclusion is active.
                id:
                    type: string
                    description: The exclusion ID.
                    format: uuid
                match_type:
                    type: string
                    description: 'How match_value is interpreted: exact (finding text), regex (RE2 pattern over finding text), rule_id, source, or entity_type (presidio entity, matched as rule_id ''pii.<entity>'').'
                    enum:
                        - exact
                        - regex
                        - rule_id
                        - source
                        - entity_type
                match_value:
                    type: string
                    description: The value matched against findings, interpreted per match_type.
                project_id:
                    type: string
                    description: The project ID.
                    format: uuid
                risk_policy_id:
                    type: string
                    description: 'The policy this exclusion is bound to. Null/omitted means global: the exclusion applies to every policy in the project.'
                    format: uuid
                rule_id_filter:
                    type: string
                    description: 'Optional narrowing: an exact/regex/source exclusion only applies to findings with this rule_id. Empty means any.'
                source_filter:
                    type: string
                    description: 'Optional narrowing: an exact/regex/rule_id exclusion only applies to findings from this source. Empty means any.'
                updated_at:
                    type: string
                    description: When the exclusion was last updated.
                    format: date-time
            required:
                - id
                - project_id
                - match_type
                - match_value
                - rule_id_filter
                - source_filter
                - enabled
                - created_at
                - updated_at
        RiskExposureSlice:
            type: object
            properties:
                category:
                    type: string
                    description: Canonical risk category key.
                findings:
                    type: integer
                    description: Deduplicated finding count for this category in the window.
                    format: int64
                share:
                    type: number
                    description: Fraction of the window's findings in this category (0-1).
                    format: double
            required:
                - category
                - findings
                - share
        RiskIDRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The resource ID.
                    format: uuid
            required:
                - id
        RiskMCPPlatformTool:
            type: object
            properties:
                annotations:
                    $ref: '#/components/schemas/ToolAnnotations'
                name:
                    type: string
                    description: The Platform MCP tool name.
            required:
                - name
        RiskMCPPlatformToolset:
            type: object
            properties:
                id:
                    type: string
                    description: The stable policy-scope identity for this Platform MCP toolset.
                    format: uuid
                name:
                    type: string
                    description: The display name for this Platform MCP toolset.
                slug:
                    type: string
                    description: The reserved Platform MCP toolset slug.
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskMCPPlatformTool'
                    description: The code-owned tools in this Platform MCP toolset.
            required:
                - id
                - slug
                - name
                - tools
        RiskMCPScope:
            type: object
            properties:
                all_servers:
                    type: boolean
                    description: Apply to every MCP server, including servers added later.
                    default: false
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskMCPServerScope'
                    description: Selected MCP servers and gateways, or custom per-server tool overrides when all_servers is true.
                tool_annotations:
                    type: array
                    items:
                        type: string
                        enum:
                            - destructiveHint
                            - readOnlyHint
                            - idempotentHint
                            - openWorldHint
                    description: Tool annotation hints matched by the policy-level rule. Empty matches all tools.
            required:
                - servers
        RiskMCPServerScope:
            type: object
            properties:
                mcp_server_id:
                    type: string
                    description: The selected MCP server or gateway ID.
                    format: uuid
                tools:
                    type: array
                    items:
                        type: string
                    description: Custom tool names for this server. Omit to follow the policy tool rule; an empty list matches every tool on this server, unconditionally.
            required:
                - mcp_server_id
        RiskMcpServerCount:
            type: object
            properties:
                findings:
                    type: integer
                    description: Deduplicated live findings on this server in the window.
                    format: int64
                mcp_server_id:
                    type: string
                    description: Concrete MCP server ID.
            required:
                - mcp_server_id
                - findings
        RiskMcpServerCountsResult:
            type: object
            properties:
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskMcpServerCount'
                    description: Per-server finding counts, largest first. Servers with no findings are omitted.
            required:
                - servers
        RiskOverviewCategory:
            type: object
            properties:
                category:
                    type: string
                    description: Policy category key.
                findings:
                    type: integer
                    description: Finding count for this category.
                    format: int64
            required:
                - category
                - findings
        RiskOverviewResult:
            type: object
            properties:
                findings:
                    type: integer
                    description: Policy findings in the window.
                    format: int64
                flagged_sessions:
                    type: integer
                    description: Chat sessions with at least one finding in the window.
                    format: int64
                from:
                    type: string
                    description: Inclusive start of the overview window.
                    format: date-time
                time_series_findings:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskOverviewTimeSeriesFinding'
                    description: Time-series finding counts by category in the window.
                to:
                    type: string
                    description: Exclusive end of the overview window.
                    format: date-time
                top_categories:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskOverviewCategory'
                    description: Top policy categories by finding count.
                top_rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskRuleBreakdownEntry'
                    description: Top rule_ids by finding count.
                top_users:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskOverviewUser'
                    description: Top users by finding count.
            required:
                - from
                - to
                - findings
                - flagged_sessions
                - top_categories
                - top_users
                - top_rules
                - time_series_findings
        RiskOverviewTimeSeriesFinding:
            type: object
            properties:
                bucket_start:
                    type: string
                    description: Time bucket start.
                    format: date-time
                category:
                    type: string
                    description: Policy category key.
                findings:
                    type: integer
                    description: Finding count for this category and time bucket.
                    format: int64
            required:
                - bucket_start
                - category
                - findings
        RiskOverviewUser:
            type: object
            properties:
                email:
                    type: string
                    description: User email, or Unknown user when unavailable.
                external_user_id:
                    type: string
                    description: External user identifier as recorded on chats, when known. Empty when the finding cannot be attributed to an external user.
                findings:
                    type: integer
                    description: Finding count for this user.
                    format: int64
            required:
                - email
                - external_user_id
                - findings
        RiskPolicy:
            type: object
            properties:
                action:
                    type: string
                    description: 'Policy action: flag (log only), warn (challenge: warn the user and require acknowledgement to proceed), block (deny in real-time), or quarantine (deny and freeze the hook session). MCP-scoped policies support flag and block only.'
                    default: flag
                    enum:
                        - flag
                        - warn
                        - block
                        - quarantine
                approved_email_domains:
                    type: array
                    items:
                        type: string
                    description: 'For the account_identity source: corporate email domains considered approved. Sessions whose AI-account email domain is not listed are flagged. Empty means the domain rule is inert.'
                audience_principal_urns:
                    type: array
                    items:
                        type: string
                    description: Principal URNs the policy applies to. Contains user:all when audience_type is everyone.
                audience_type:
                    type: string
                    description: 'Policy audience type: everyone or targeted.'
                    default: everyone
                    enum:
                        - everyone
                        - targeted
                auto_name:
                    type: boolean
                    description: Whether the policy name is auto-generated. When true, the name is regenerated on each update.
                created_at:
                    type: string
                    description: When the policy was created.
                    format: date-time
                custom_rule_ids:
                    type: array
                    items:
                        type: string
                    description: 'Custom detection rule ids attached as detectors: a match produces a finding. Custom rules are pure detectors.'
                detection_scopes:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskDetectionScope'
                    description: Per-category detection scopes specified for this policy. The scan surface merges these with the recommended scopes, the specified scope winning on category conflict. Empty means every recommendation applies unchanged.
                disabled_rules:
                    type: array
                    items:
                        type: string
                    description: Canonical rule_ids (e.g. 'secret.aws_access_token', 'pii.credit_card') the policy author has unchecked within an otherwise-enabled category. Empty means every rule in the selected categories runs; matching findings are dropped at scan time.
                enabled:
                    type: boolean
                    description: Whether the policy is active.
                id:
                    type: string
                    description: The risk policy ID.
                    format: uuid
                mcp_scope:
                    $ref: '#/components/schemas/RiskMCPScope'
                model_config:
                    $ref: '#/components/schemas/RiskPolicyModelConfig'
                name:
                    type: string
                    description: The policy name.
                policy_type:
                    type: string
                    description: 'Policy type: standard (regex/presidio/custom detection) or prompt_based (LLM-judge).'
                    default: standard
                    enum:
                        - standard
                        - prompt_based
                presidio_entities:
                    type: array
                    items:
                        type: string
                    description: Presidio entity types to scan for. When empty, scans all entities.
                presidio_score_threshold:
                    type: number
                    description: Minimum Presidio confidence (0.0-1.0) a PII match must clear to surface. Omit/null applies the default (0.5).
                    example: 0.75
                    format: double
                    minimum: 0
                    maximum: 1
                project_id:
                    type: string
                    description: The project ID.
                    format: uuid
                prompt:
                    type: string
                    description: 'For prompt_based policies: the guardrail prompt the LLM judge evaluates each in-scope message against. Null for standard policies.'
                prompt_injection_rules:
                    type: array
                    items:
                        type: string
                    description: Prompt-injection detection rule ids enabled in addition to the heuristic baseline. When empty, only heuristics run.
                score:
                    type: number
                    description: CVSS-style severity (0.1-10) the author assigns to findings this policy produces. Descriptive only; changing it does not re-scan messages. Defaults to 5.
                    default: 5
                    example: 5
                    format: double
                    minimum: 0.1
                    maximum: 10
                shadow_mcp_disposition:
                    type: string
                    description: 'Default disposition for shadow MCP blocking policies: block_all blocks every non-Speakeasy-hosted server unless allowed, allow_all permits every server unless blocked. Blocked URLs are stored as risk_policy:block grants, not on the policy. Immutable after create. Only present on policies with the shadow_mcp source and block action.'
                    enum:
                        - block_all
                        - allow_all
                sources:
                    type: array
                    items:
                        type: string
                    description: Detection sources enabled for this policy.
                updated_at:
                    type: string
                    description: When the policy was last updated.
                    format: date-time
                user_message:
                    type: string
                    description: Optional message shown to the end user when this policy blocks an action or surfaces a flagged finding. When unset, a default message is rendered.
                version:
                    type: integer
                    description: Policy version, incremented on each update.
                    format: int64
            required:
                - id
                - project_id
                - name
                - policy_type
                - sources
                - enabled
                - action
                - audience_type
                - audience_principal_urns
                - auto_name
                - score
                - version
                - created_at
                - updated_at
        RiskPolicyBypassApprovalRequestBody:
            type: object
            properties:
                granted_principal_urns:
                    type: array
                    items:
                        type: string
                    description: Principal URNs to grant bypass access to. Use user:all for every user in the organization.
                id:
                    type: string
                    description: The bypass request ID.
                    format: uuid
            required:
                - id
        RiskPolicyBypassRequest:
            type: object
            properties:
                created_at:
                    type: string
                    description: Creation timestamp.
                    format: date-time
                decided_at:
                    type: string
                    description: Decision timestamp.
                    format: date-time
                decided_by:
                    type: string
                    description: User ID that approved, denied, or revoked the request.
                granted_principal_urns:
                    type: array
                    items:
                        type: string
                    description: Principal URNs granted when approved.
                id:
                    type: string
                    description: The bypass request ID.
                    format: uuid
                note:
                    type: string
                    description: Requester note.
                policy_id:
                    type: string
                    description: The risk policy ID.
                    format: uuid
                requester_email:
                    type: string
                    description: Requester email when known.
                requester_user_id:
                    type: string
                    description: Requester user ID.
                status:
                    type: string
                    description: Current request status.
                    enum:
                        - requested
                        - approved
                        - denied
                        - revoked
                target_dimensions:
                    type: object
                    description: Selector dimensions for the request target.
                    additionalProperties:
                        type: string
                target_key:
                    type: string
                    description: Canonical key for the target.
                target_kind:
                    type: string
                    description: Optional target namespace for the request, such as server_url.
                target_label:
                    type: string
                    description: Optional display label for the target.
                updated_at:
                    type: string
                    description: Last update timestamp.
                    format: date-time
            required:
                - id
                - policy_id
                - target_dimensions
                - requester_user_id
                - status
                - granted_principal_urns
                - created_at
                - updated_at
        RiskPolicyEvalReview:
            type: object
            properties:
                chat_id:
                    type: string
                    description: The chat session being judged.
                    format: uuid
                created_at:
                    type: string
                    description: When the verdict was first recorded.
                    format: date-time
                id:
                    type: string
                    description: The review ID.
                    format: uuid
                policy_id:
                    type: string
                    description: The prompt-based policy the verdict belongs to.
                    format: uuid
                policy_version:
                    type: integer
                    description: The policy version in effect when the verdict was recorded (provenance).
                    format: int64
                reviewed_by:
                    type: string
                    description: User id of the reviewer who recorded the verdict.
                updated_at:
                    type: string
                    description: When the verdict was last updated.
                    format: date-time
                verdict:
                    type: string
                    description: The reviewer's ground-truth verdict.
                    enum:
                        - correct
                        - false_positive
                        - missed
            required:
                - id
                - policy_id
                - policy_version
                - chat_id
                - verdict
                - reviewed_by
                - created_at
                - updated_at
        RiskPolicyModelConfig:
            type: object
            properties:
                fail_open:
                    type: boolean
                    description: 'When the judge errors or times out: true allows the message (fail-open), false blocks it (fail-closed). Defaults to fail-open.'
                temperature:
                    type: number
                    description: Sampling temperature for the judge. Defaults to a low value for deterministic verdicts.
                    format: double
        RiskPreset:
            type: object
            properties:
                action:
                    type: string
                    description: Default enforcement action.
                    enum:
                        - flag
                        - warn
                        - block
                        - quarantine
                description:
                    type: string
                    description: What the preset protects against, in plain language.
                id:
                    type: string
                    description: Stable preset identifier (e.g. 'secrets_and_credentials').
                label:
                    type: string
                    description: Human-readable preset name.
                policy_type:
                    type: string
                    description: Policy type the preset creates.
                    enum:
                        - standard
                        - prompt_based
                presidio_entities:
                    type: array
                    items:
                        type: string
                    description: Presidio entities enabled when sources include presidio.
                prompt:
                    type: string
                    description: Judge instruction for a prompt-based preset; empty otherwise.
                requires_approved_email_domains:
                    type: boolean
                    description: True when the preset is inert until approved_email_domains is supplied.
                score:
                    type: number
                    description: Default CVSS-style severity (0.1-10).
                    format: double
                sources:
                    type: array
                    items:
                        type: string
                    description: Detector sources enabled by a standard preset; empty for prompt-based presets.
                user_message:
                    type: string
                    description: Default message shown to the user when the policy warns or blocks; empty when none.
            description: One use-case preset a risk policy can start from.
            required:
                - id
                - label
                - description
                - policy_type
                - sources
                - presidio_entities
                - action
                - score
                - prompt
                - user_message
                - requires_approved_email_domains
        RiskPresetMatch:
            type: object
            properties:
                confidence:
                    type: number
                    description: Fit between 0 and 1.
                    format: double
                label:
                    type: string
                    description: Preset label.
                preset_id:
                    type: string
                    description: Preset identifier.
            required:
                - preset_id
                - label
                - confidence
        RiskPresetsResult:
            type: object
            properties:
                presets:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskPreset'
                    description: Presets in display order.
            required:
                - presets
        RiskResult:
            type: object
            properties:
                block_id:
                    type: string
                    description: ID of the durable tool call block recorded for this finding's message, when one exists. Links to the block page at /blocks/:id.
                    format: uuid
                chat_content_part_id:
                    type: string
                    description: The chat content part that was scanned, when the finding is anchored to a content part.
                    format: uuid
                chat_id:
                    type: string
                    description: The chat session containing the message.
                    format: uuid
                chat_message_id:
                    type: string
                    description: The chat message that was scanned, when the finding is anchored to a message.
                    format: uuid
                chat_title:
                    type: string
                    description: Title of the chat session.
                confidence:
                    type: number
                    description: Confidence score for this finding.
                    format: double
                created_at:
                    type: string
                    description: When this result was created.
                    format: date-time
                description:
                    type: string
                    description: Human-readable description of the finding.
                end_pos:
                    type: integer
                    description: End byte position within the message content.
                    format: int64
                enforcement_outcome:
                    type: string
                    description: Recorded enforcement outcome, independent of policy configuration.
                    enum:
                        - logged
                        - denied
                        - withheld
                        - warned_pending
                        - warned_acknowledged
                        - warned_abandoned
                        - quarantined
                exclusion_id:
                    type: string
                    description: The exclusion rule that suppressed this result. Only set when suppressed_reason is 'rule'.
                    format: uuid
                execution_id:
                    type: string
                    description: The mediated MCP execution (tool call, resource read or prompt get) that raised this finding. Filter listResults by it to list that execution's non-dismissed findings.
                false_positive_at:
                    type: string
                    description: 'Deprecated: mirror of suppressed_at, kept while clients migrate to the suppressed_* fields. Null when not suppressed.'
                    format: date-time
                id:
                    type: string
                    description: The result ID.
                    format: uuid
                identity_stamped:
                    type: boolean
                    description: Whether MCP identity stamped validated principal provenance.
                match:
                    type: string
                    description: The matched secret or sensitive data. Null when the caller isn't authorized to see raw match content for this result's chat (see match_redacted).
                match_redacted:
                    type: string
                    description: Opaque fingerprint of match, in the same `<redacted len=N sha=XXXXXXXX>` form as RiskResultRedacted.match_redacted. Populated whenever match is null so callers without raw access still get a stable, non-reversible correlation token. For shadow_mcp findings this is the original match value passed through verbatim (a non-sensitive server URL or command identifier).
                mcp_method:
                    type: string
                    description: MCP method or equivalent mediated operation.
                mcp_server_id:
                    type: string
                    description: Concrete MCP server that executed the operation.
                mediation_surface:
                    type: string
                    description: Concrete mediation surface where the execution was observed.
                meta_mcp_server_id:
                    type: string
                    description: Outer gateway that routed the execution, when present.
                phase:
                    type: string
                    description: 'Which phase of the mediated MCP execution was scanned: its request or its response.'
                policy_id:
                    type: string
                    description: The risk policy ID.
                    format: uuid
                policy_version:
                    type: integer
                    description: Policy version when this result was produced.
                    format: int64
                principal_kind:
                    type: string
                    description: Credential provenance class resolved by MCP identity.
                rule_id:
                    type: string
                    description: The matched rule identifier.
                source:
                    type: string
                    description: Detection source (e.g. gitleaks).
                spans:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskSpan'
                    description: All matched spans attributed to this finding. A finding may carry several correlated spans (e.g. a custom rule matching a tool's function name and its arguments on the same call). The top-level match/start_pos/end_pos mirror the primary (first) span. Null alongside match when the result is redacted.
                start_pos:
                    type: integer
                    description: Start byte position within the message content.
                    format: int64
                suppressed_at:
                    type: string
                    description: When this result was suppressed (hidden from open-finding listings). Null when not suppressed.
                    format: date-time
                suppressed_detail:
                    type: string
                    description: 'Free-form suppression context: the user-supplied dismissal reason for manual suppressions, the catalog reason for automated ones. Null when absent.'
                suppressed_reason:
                    type: string
                    description: 'Why the result is suppressed: ''rule'' (an exclusion rule, see exclusion_id), ''manual'' (dismissed by a user), or ''automated'' (the automated false-positive sweep). Null when not suppressed.'
                    enum:
                        - rule
                        - manual
                        - automated
                tags:
                    type: array
                    items:
                        type: string
                    description: Tags from the detection rule.
                tool_name:
                    type: string
                    description: Name of the concrete tool, when applicable.
                toolset_id:
                    type: string
                    description: Toolset serving the execution, when present.
                user_id:
                    type: string
                    description: The user who owns the chat session.
            required:
                - id
                - policy_id
                - policy_version
                - source
                - created_at
        RiskResultRedacted:
            type: object
            properties:
                chat_content_part_id:
                    type: string
                    description: The chat content part that was scanned, when the finding is anchored to a content part.
                    format: uuid
                chat_id:
                    type: string
                    description: The chat session containing the message.
                    format: uuid
                chat_message_id:
                    type: string
                    description: The chat message that was scanned, when the finding is anchored to a message.
                    format: uuid
                chat_title:
                    type: string
                    description: Title of the chat session.
                confidence:
                    type: number
                    description: Confidence score for this finding.
                    format: double
                created_at:
                    type: string
                    description: When this result was created.
                    format: date-time
                description:
                    type: string
                    description: Human-readable description of the finding.
                enforcement_outcome:
                    type: string
                    description: Recorded enforcement outcome, independent of policy configuration.
                    enum:
                        - logged
                        - denied
                        - withheld
                        - warned_pending
                        - warned_acknowledged
                        - warned_abandoned
                        - quarantined
                execution_id:
                    type: string
                    description: The mediated MCP execution (tool call, resource read or prompt get) that raised this finding. Filter listResults by it to list that execution's non-dismissed findings.
                id:
                    type: string
                    description: The result ID.
                    format: uuid
                identity_stamped:
                    type: boolean
                    description: Whether MCP identity stamped validated principal provenance.
                match_redacted:
                    type: string
                    description: Opaque fingerprint of the original match in the form `<redacted len=N sha=XXXXXXXX>` where N is the byte length of the original match and XXXXXXXX is the first 8 hex characters of sha256(match). For shadow_mcp findings the original match value (a non-sensitive server URL or command identifier) is passed through verbatim.
                mcp_method:
                    type: string
                    description: MCP method or equivalent mediated operation.
                mcp_server_id:
                    type: string
                    description: Concrete MCP server that executed the operation.
                mediation_surface:
                    type: string
                    description: Concrete mediation surface where the execution was observed.
                meta_mcp_server_id:
                    type: string
                    description: Outer gateway that routed the execution, when present.
                phase:
                    type: string
                    description: 'Which phase of the mediated MCP execution was scanned: its request or its response.'
                policy_id:
                    type: string
                    description: The risk policy ID.
                    format: uuid
                policy_version:
                    type: integer
                    description: Policy version when this result was produced.
                    format: int64
                position_known:
                    type: boolean
                    description: Whether the original finding carried byte-position information within the source message. Exact positions are intentionally not exposed to avoid reconstruction attacks.
                principal_kind:
                    type: string
                    description: Credential provenance class resolved by MCP identity.
                rule_id:
                    type: string
                    description: The matched rule identifier.
                source:
                    type: string
                    description: Detection source (e.g. gitleaks, presidio, shadow_mcp).
                spans_redacted:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskSpanRedacted'
                    description: All matched spans attributed to this finding, each with its match replaced by an opaque fingerprint.
                tags:
                    type: array
                    items:
                        type: string
                    description: Tags from the detection rule.
                tool_name:
                    type: string
                    description: Name of the concrete tool, when applicable.
                toolset_id:
                    type: string
                    description: Toolset serving the execution, when present.
                user_id:
                    type: string
                    description: The user who owns the chat session.
            required:
                - id
                - policy_id
                - policy_version
                - source
                - created_at
                - match_redacted
                - position_known
        RiskRevealPayloadResult:
            type: object
            properties:
                execution_id:
                    type: string
                    description: The mediated execution the payload belongs to.
                expires_at:
                    type: string
                    description: When the stored payload is deleted. Absent when reveal_state is evidence_not_stored.
                    format: date-time
                id:
                    type: string
                    description: The risk result ID.
                    format: uuid
                payload:
                    type: string
                    description: 'The exact text the scanners inspected: the tools/call arguments JSON for a request, or the extracted result text for a response. Empty when reveal_state is evidence_not_stored.'
                phase:
                    type: string
                    description: Execution phase the payload was scanned in (request or response).
                reveal_state:
                    type: string
                    description: Whether the payload was revealed or its evidence is unavailable or expired.
                    enum:
                        - available
                        - evidence_not_stored
            required:
                - id
                - reveal_state
                - payload
        RiskRuleBreakdownEntry:
            type: object
            properties:
                findings:
                    type: integer
                    description: Finding count for this rule within the window.
                    format: int64
                rule_id:
                    type: string
                    description: Rule identifier (e.g. 'secret.aws-access-key'). Empty when the finding has no rule_id (treat as 'unspecified').
                source:
                    type: string
                    description: Source bucket the rule belongs to (gitleaks, presidio, etc.) for label/icon resolution on the dashboard.
            required:
                - rule_id
                - source
                - findings
        RiskSegment:
            type: object
            properties:
                first_seq:
                    type: integer
                    description: The `seq` of the first (oldest) message in this segment.
                    format: int64
                has_more_after:
                    type: boolean
                    description: Whether messages exist after this segment within the generation. Expand with an `after_seq` request using `last_seq`.
                has_more_before:
                    type: boolean
                    description: Whether messages exist before this segment within the generation. Expand with a `before_seq` request using `first_seq`.
                last_seq:
                    type: integer
                    description: The `seq` of the last (newest) message in this segment.
                    format: int64
            description: A contiguous run of messages in a windowed view (`risk_only` via `risk_segments`, or `query` via `match_segments`), covering one or more matches plus their surrounding context. Messages for a segment are the entries of `Chat.messages` whose `seq` falls within `[first_seq, last_seq]`.
            required:
                - first_seq
                - last_seq
                - has_more_before
                - has_more_after
        RiskSignal:
            type: object
            properties:
                apps:
                    type: array
                    items:
                        type: string
                    description: Source apps (chat surfaces) the findings were observed in. Empty until app attribution is recorded on findings.
                category:
                    type: string
                    description: Canonical risk category of the rule (secrets, pii, ...).
                description:
                    type: string
                    description: Representative finding description for this rule. Empty when findings carry no description.
                detection_sources:
                    type: array
                    items:
                        type: string
                    description: Detector sources that produced findings in this signal (gitleaks, presidio, prompt_injection, ...).
                findings:
                    type: integer
                    description: Deduplicated finding count in the window.
                    format: int64
                first_seen:
                    type: string
                    description: Event time of the earliest finding in the window.
                    format: date-time
                key:
                    type: string
                    description: Stable client identity for the signal. Currently 'rule:<rule_id>'.
                last_seen:
                    type: string
                    description: Event time of the latest finding in the window.
                    format: date-time
                mcp_server_ids:
                    type: array
                    items:
                        type: string
                    description: Concrete MCP server IDs the findings in this signal were observed on. Empty when no finding carries server attribution.
                previous_findings:
                    type: integer
                    description: Finding count in the equal-length window immediately before from.
                    format: int64
                risk_score:
                    type: number
                    description: Heuristic severity score on the 0.1-10 scale used across risk surfaces.
                    format: double
                rule_id:
                    type: string
                    description: Rule identifier the signal clusters on (e.g. 'secret.aws_access_token', 'pii.email_address').
                severity:
                    type: string
                    description: Severity rating derived from the risk score.
                    enum:
                        - low
                        - medium
                        - high
                        - critical
                sparkline:
                    type: array
                    items:
                        type: integer
                        format: int64
                    description: Deduplicated finding counts per equal-width time bucket across the window, oldest bucket first. Powers the per-signal trend sparkline.
                teams:
                    type: integer
                    description: Distinct teams with at least one finding in the window. Zero until team attribution is recorded on findings.
                    format: int64
                tool_names:
                    type: array
                    items:
                        type: string
                    description: Concrete tool names the findings in this signal were observed on. Empty when no finding carries tool attribution.
                top_users:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskSignalTopUser'
                    description: Top users by finding count within the signal.
                users:
                    type: integer
                    description: Distinct users with at least one finding in the window.
                    format: int64
            description: 'One clustered risk signal: all live findings for a single rule in the window, with a heuristic severity score and trend/spread stats.'
            required:
                - key
                - rule_id
                - category
                - description
                - detection_sources
                - apps
                - mcp_server_ids
                - tool_names
                - severity
                - risk_score
                - findings
                - previous_findings
                - users
                - teams
                - first_seen
                - last_seen
                - top_users
                - sparkline
        RiskSignalTopUser:
            type: object
            properties:
                email:
                    type: string
                    description: User email, or Unknown user when unavailable.
                external_user_id:
                    type: string
                    description: External user identifier as recorded on chats, when known. Empty when the finding cannot be attributed to an external user.
                findings:
                    type: integer
                    description: Finding count for this user within the signal and window.
                    format: int64
                team:
                    type: string
                    description: WorkOS directory department of the user when known; empty otherwise.
            required:
                - email
                - external_user_id
                - team
                - findings
        RiskSignalsResult:
            type: object
            properties:
                critical_signals:
                    type: integer
                    description: Signals rated critical in the window.
                    format: int64
                exposure:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskExposureSlice'
                    description: Finding counts by category, largest first.
                findings:
                    type: integer
                    description: Deduplicated live findings in the window.
                    format: int64
                from:
                    type: string
                    description: Inclusive start of the signals window.
                    format: date-time
                open_signals:
                    type: integer
                    description: Signals with at least one live finding in the window.
                    format: int64
                org_risk_score:
                    type: number
                    description: Heuristic organization risk score on the 0.1-10 scale, blended from the top signal scores and finding volume. Zero when the window has no findings.
                    format: double
                previous_findings:
                    type: integer
                    description: Deduplicated live findings in the equal-length window immediately before from.
                    format: int64
                previous_org_risk_score:
                    type: number
                    description: Organization risk score computed the same way over the equal-length window immediately before from.
                    format: double
                previous_users_exposed:
                    type: integer
                    description: Distinct users with at least one finding in the equal-length window immediately before from.
                    format: int64
                signals:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskSignal'
                    description: Signals ranked by risk score, highest first.
                to:
                    type: string
                    description: Exclusive end of the signals window.
                    format: date-time
                users_exposed:
                    type: integer
                    description: Distinct users with at least one finding in the window.
                    format: int64
            required:
                - from
                - to
                - org_risk_score
                - previous_org_risk_score
                - findings
                - previous_findings
                - open_signals
                - critical_signals
                - users_exposed
                - previous_users_exposed
                - exposure
                - signals
        RiskSpan:
            type: object
            properties:
                end_pos:
                    type: integer
                    description: End byte position within the message content.
                    format: int64
                field:
                    type: string
                    description: The message field this span matched, in author-facing form (content, prompt, assistant, tool_result, or tool.name/tool.server/tool.function/tool.args). Empty for detectors that don't attribute a field (e.g. gitleaks, presidio).
                match:
                    type: string
                    description: The matched secret or sensitive data for this span.
                path:
                    type: string
                    description: The JSON sub-path within the field for a `.get(...)` match (e.g. 'command', 'payload.sql'). Empty when the whole field value matched.
                start_pos:
                    type: integer
                    description: Start byte position within the message content.
                    format: int64
            required:
                - match
        RiskSpanRedacted:
            type: object
            properties:
                field:
                    type: string
                    description: The message field this span matched (see RiskSpan.field).
                match_redacted:
                    type: string
                    description: Opaque fingerprint of this span's match, in the same form as RiskResultRedacted.match_redacted.
                path:
                    type: string
                    description: The JSON sub-path within the field for a `.get(...)` match (see RiskSpan.path).
                position_known:
                    type: boolean
                    description: Whether this span carried byte-position information.
            required:
                - match_redacted
                - position_known
        RiskUnmaskResultResult:
            type: object
            properties:
                id:
                    type: string
                    description: The risk result ID.
                    format: uuid
                match:
                    type: string
                    description: The plaintext matched secret or sensitive data for this result. Empty string when the finding has no top-level match (e.g. a spans-only finding).
                reveal_state:
                    type: string
                    description: Whether plaintext was revealed or the MCP finding evidence is unavailable or expired.
                    enum:
                        - available
                        - evidence_not_stored
            required:
                - id
                - match
                - reveal_state
        RiskUserBreakdownResult:
            type: object
            properties:
                categories:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskOverviewCategory'
                    description: Category breakdown for this user, ordered by finding count descending.
                external_user_id:
                    type: string
                    description: External user the breakdown is scoped to.
                findings:
                    type: integer
                    description: Total findings for this user in the window.
                    format: int64
                from:
                    type: string
                    description: Inclusive start of the window used.
                    format: date-time
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskRuleBreakdownEntry'
                    description: Rule_id breakdown for this user, ordered by finding count descending.
                to:
                    type: string
                    description: Exclusive end of the window used.
                    format: date-time
            required:
                - from
                - to
                - external_user_id
                - findings
                - categories
                - rules
        Role:
            type: object
            properties:
                agent_ids:
                    type: array
                    items:
                        type: string
                    description: IDs of the agent principals assigned to this role.
                created_at:
                    type: string
                    format: date-time
                description:
                    type: string
                    description: Human-readable description.
                grants:
                    type: array
                    items:
                        $ref: '#/components/schemas/RoleGrant'
                    description: Scope grants assigned to this role.
                id:
                    type: string
                    description: Unique role identifier.
                is_system:
                    type: boolean
                    description: Whether this is a built-in system role that cannot be deleted.
                member_count:
                    type: integer
                    description: Number of members assigned to this role.
                    format: int64
                name:
                    type: string
                    description: Display name of the role.
                principal_urn:
                    type: string
                    description: Canonical principal URN for this role.
                slug:
                    type: string
                    description: Stable WorkOS role slug.
                updated_at:
                    type: string
                    format: date-time
            required:
                - id
                - principal_urn
                - name
                - slug
                - description
                - is_system
                - grants
                - member_count
                - created_at
                - updated_at
        RoleGrant:
            type: object
            properties:
                scope:
                    type: string
                    description: The scope slug this grant applies to.
                    enum:
                        - org:read
                        - org:blocked_read
                        - org:admin
                        - org:blocked_admin
                        - project:read
                        - project:blocked_read
                        - project:write
                        - project:blocked_write
                        - mcp:read
                        - mcp:blocked_read
                        - mcp:write
                        - mcp:blocked_write
                        - mcp:connect
                        - mcp:blocked_connect
                        - mcp:auth
                        - mcp:blocked_auth
                        - environment:read
                        - environment:blocked_read
                        - environment:write
                        - environment:blocked_write
                        - skill:read
                        - skill:blocked_read
                        - skill:write
                        - skill:blocked_write
                        - assistant:read
                        - assistant:blocked_read
                        - assistant:write
                        - assistant:blocked_write
                        - plugin:write
                        - plugin:blocked_write
                        - risk_policy:evaluate
                        - risk_policy:bypass
                        - risk_policy:block
                        - chat:read
                        - chat:write
                        - log:read
                        - agent:read
                        - agent:write
                        - agent:authorize
                        - agent:transfer
                        - workload:read
                        - workload:blocked_read
                        - workload:write
                        - workload:blocked_write
                        - org:device_agent_sync
                        - org:hooks_ingest
                selectors:
                    type: array
                    items:
                        $ref: '#/components/schemas/Selector'
                    description: Selector constraints. Null means unrestricted.
            required:
                - scope
        RoleSummary:
            type: object
            properties:
                cost_per_user:
                    type: number
                    description: Average cost per user (total_cost / user_count)
                    format: double
                role_id:
                    type: string
                    description: Role identifier extracted from role URN
                role_name:
                    type: string
                    description: Human-readable role name
                total_chats:
                    type: integer
                    description: Total chat sessions across all users
                    format: int64
                total_cost:
                    type: number
                    description: Total cost across all users with this role
                    format: double
                total_input_tokens:
                    type: integer
                    description: Sum of input tokens across all users
                    format: int64
                total_output_tokens:
                    type: integer
                    description: Sum of output tokens across all users
                    format: int64
                total_tokens:
                    type: integer
                    description: Sum of all tokens across all users
                    format: int64
                user_count:
                    type: integer
                    description: Number of users with this role
                    format: int64
            description: Aggregated usage summary for a role
            required:
                - role_id
                - role_name
                - user_count
                - total_cost
                - cost_per_user
                - total_input_tokens
                - total_output_tokens
                - total_tokens
                - total_chats
        RootMcpServerOption:
            type: object
            properties:
                attached_endpoint_id:
                    type: string
                    description: The server's endpoint on this custom domain, when one exists
                    format: uuid
                attached_endpoint_slug:
                    type: string
                    description: The attached endpoint's slug (its /mcp/<slug> path on the domain), when one exists
                is_domain_root:
                    type: boolean
                    description: Whether this server currently serves the domain root
                mcp_server_id:
                    type: string
                    description: The MCP server
                    format: uuid
                name:
                    type: string
                    description: The MCP server's display name, if set
                project_id:
                    type: string
                    description: The project the server belongs to
                    format: uuid
                project_name:
                    type: string
                    description: The project's display name
                slug:
                    type: string
                    description: The MCP server's slug, if set
            required:
                - mcp_server_id
                - project_id
                - project_name
                - is_domain_root
        RotateCredentialsRequestBody:
            type: object
            properties:
                oauth_client_id:
                    type: string
                oauth_client_secret:
                    type: string
            required:
                - oauth_client_id
                - oauth_client_secret
        RotateKeyForm:
            type: object
            properties:
                delegated_grants_version:
                    type: integer
                    description: Delegated policy format version
                    format: int64
                    minimum: 1
                expires_at:
                    type: string
                    description: Replacement expiry; defaults to 90 days and cannot exceed one year
                    format: date-time
                id:
                    type: string
                    description: API key identifier to replace
                    format: uuid
                name:
                    type: string
                    description: The name of the replacement key
                    maxLength: 255
                requested_grants:
                    type: array
                    items:
                        $ref: '#/components/schemas/AgentPolicyGrantForm'
                    description: New exact allow grants approved for the replacement credential
                scopes:
                    type: array
                    items:
                        type: string
                    description: Legacy transport scopes; agent rotation requires an empty array
            required:
                - id
                - name
                - delegated_grants_version
                - requested_grants
        RotateObservabilityCredentialRequestBody:
            type: object
            properties:
                previous_key_fate:
                    type: string
                    description: What happens to existing observability plugin hooks keys after the replacement is minted.
                    enum:
                        - revoke_immediately
                        - grace
            required:
                - previous_key_fate
        RotateObservabilityCredentialResult:
            type: object
            properties:
                key:
                    type: string
                    description: The newly minted hooks-scoped API key. Returned only on this response.
                key_prefix:
                    type: string
                    description: The recognizable prefix of the new key.
                marketplace_republished:
                    type: boolean
                    description: Whether the published marketplace was updated with the new credential.
                marketplace_update_deferred:
                    type: boolean
                    description: True when a marketplace exists but could not be updated yet (for example the organization is not approved for the latest hooks version, or GitHub publishing is unavailable). Existing marketplace installs keep the previous credential until the marketplace is republished.
                previous_key_fate:
                    type: string
                    description: What happened to previous observability plugin hooks keys.
                    enum:
                        - revoke_immediately
                        - grace
                previous_keys:
                    type: array
                    items:
                        $ref: '#/components/schemas/RotatedObservabilityKey'
                    description: Previous observability plugin hooks keys that were revoked or scheduled to expire.
                previous_keys_expire_at:
                    type: string
                    description: The latest deadline among previous keys when previous_key_fate is grace. Individual keys can expire earlier, so this is an upper bound rather than a shared deadline; per-key deadlines are on previous_keys.
                    format: date-time
                previous_keys_retired:
                    type: boolean
                    description: Whether the chosen fate was applied to the previous keys. False means the replacement was created and published but retiring the previous keys failed, so they are still valid and the rotation should be retried.
            required:
                - key
                - key_prefix
                - previous_key_fate
                - previous_keys
                - previous_keys_retired
                - marketplace_republished
        RotateRequestBody:
            type: object
            properties:
                active_kid:
                    type: string
                    description: The key ID currently active, as last read. Required unless the issuer has no active key.
                compromised:
                    type: boolean
                    description: Revoke every current key immediately instead of rotating gradually.
                    default: false
        RotateTunneledMcpServerKeyForm:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the tunneled MCP server
                    format: uuid
            description: Form for rotating a tunneled MCP server source key
            required:
                - id
        RotateTunneledMcpServerKeyResult:
            type: object
            properties:
                server:
                    $ref: '#/components/schemas/TunneledMcpServer'
                tunnel_key:
                    type: string
                    description: Plaintext tunnel key. Only returned after rotation.
            description: Rotated tunneled MCP server plus the one-time replacement tunnel key
            required:
                - server
                - tunnel_key
        RotatedObservabilityKey:
            type: object
            properties:
                expires_at:
                    type: string
                    description: When this key stops authenticating. A key already inside a shorter grace window keeps its earlier deadline, so this can precede the rotation's own deadline. Absent when the key was revoked immediately.
                    format: date-time
                id:
                    type: string
                    description: The API key ID.
                    format: uuid
                key_prefix:
                    type: string
                    description: The recognizable prefix of the previous key.
                name:
                    type: string
                    description: The API key name.
            required:
                - id
                - name
                - key_prefix
        RunUpstreamOAuthMigrationRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
                    description: The organization ID.
            required:
                - organization_id
        SaveDashboardFiltersRequestBody:
            type: object
            properties:
                filters:
                    $ref: '#/components/schemas/DashboardFilters'
                id:
                    type: string
                    description: The dashboard to save filters on
                    format: uuid
            required:
                - id
                - filters
        SaveDashboardLayoutRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The dashboard to lay out
                    format: uuid
                placements:
                    type: array
                    items:
                        $ref: '#/components/schemas/PlacementInput'
                    description: Every card and where it sits; a dashboard holds at most 100
                    maxItems: 100
            required:
                - id
                - placements
        SaveRegistryEntryRequestBody:
            type: object
            properties:
                data_json:
                    type: string
                    description: Complete registry record JSON; at most 8388608 UTF-8 bytes (8 MiB), enforced by the server on incoming writes. Stored records remain readable for repair.
                id:
                    type: string
                    format: uuid
                updated_at:
                    type: string
            required:
                - id
                - updated_at
                - data_json
        SaveRiskEvalReviewRequestBody:
            type: object
            properties:
                chat_id:
                    type: string
                    description: The chat session being judged.
                    format: uuid
                policy_id:
                    type: string
                    description: The prompt-based policy the verdict belongs to.
                    format: uuid
                verdict:
                    type: string
                    description: The reviewer's ground-truth verdict for this session.
                    enum:
                        - correct
                        - false_positive
                        - missed
            required:
                - policy_id
                - chat_id
                - verdict
        ScopeDefinition:
            type: object
            properties:
                agent_eligible:
                    type: boolean
                    description: Whether an agent principal can hold this scope. Roles may carry scopes agents cannot hold; those are ignored for the role's agent members rather than granted.
                description:
                    type: string
                    description: What this scope protects.
                exclusion_scope:
                    type: string
                    description: The scope used to store exception rules for this scope.
                    enum:
                        - org:blocked_read
                        - org:blocked_admin
                        - project:blocked_read
                        - project:blocked_write
                        - mcp:blocked_read
                        - mcp:blocked_write
                        - mcp:blocked_connect
                        - mcp:blocked_auth
                        - environment:blocked_read
                        - environment:blocked_write
                        - skill:blocked_read
                        - skill:blocked_write
                        - assistant:blocked_read
                        - assistant:blocked_write
                        - plugin:blocked_write
                        - risk_policy:bypass
                        - workload:blocked_read
                        - workload:blocked_write
                resource_type:
                    type: string
                    description: The type of resource this scope applies to.
                    enum:
                        - org
                        - project
                        - mcp
                        - environment
                        - skill
                        - assistant
                        - risk_policy
                        - chat
                        - agent
                        - workload
                        - mcp_auth_client
                slug:
                    type: string
                    description: Unique scope identifier.
                    enum:
                        - org:read
                        - org:blocked_read
                        - org:admin
                        - org:blocked_admin
                        - project:read
                        - project:blocked_read
                        - project:write
                        - project:blocked_write
                        - mcp:read
                        - mcp:blocked_read
                        - mcp:write
                        - mcp:blocked_write
                        - mcp:connect
                        - mcp:blocked_connect
                        - mcp:auth
                        - mcp:blocked_auth
                        - environment:read
                        - environment:blocked_read
                        - environment:write
                        - environment:blocked_write
                        - skill:read
                        - skill:blocked_read
                        - skill:write
                        - skill:blocked_write
                        - assistant:read
                        - assistant:blocked_read
                        - assistant:write
                        - assistant:blocked_write
                        - plugin:write
                        - plugin:blocked_write
                        - risk_policy:evaluate
                        - risk_policy:bypass
                        - risk_policy:block
                        - chat:read
                        - chat:write
                        - log:read
                        - agent:read
                        - agent:write
                        - agent:authorize
                        - agent:transfer
                        - workload:read
                        - workload:blocked_read
                        - workload:write
                        - workload:blocked_write
                        - org:device_agent_sync
                        - org:hooks_ingest
                visibility:
                    type: string
                    description: Whether this scope is a first-class permission or an internal storage/evaluation scope.
                    enum:
                        - user_visible
                        - internal
            required:
                - slug
                - description
                - resource_type
                - visibility
                - agent_eligible
        SearchBusinessMemoriesRequestBody:
            type: object
            properties:
                content_scope:
                    type: string
                    description: Exact content-scope tag to match.
                    pattern: ^[a-z0-9][a-z0-9:_-]{0,127}$
                content_scope_namespace:
                    type: string
                    description: Content-scope namespace to match.
                    pattern: ^[a-z0-9][a-z0-9_-]{0,127}$
                limit:
                    type: integer
                    description: Maximum search results.
                    default: 20
                    format: int64
                    minimum: 1
                    maximum: 100
                query:
                    type: string
                    description: Natural-language semantic search query.
                    minLength: 1
                    maxLength: 2000
            required:
                - query
        SearchBusinessMemoriesResponseBody:
            type: object
            properties:
                memories:
                    type: array
                    items:
                        $ref: '#/components/schemas/BusinessMemory'
            required:
                - memories
        SearchChatsFilter:
            type: object
            properties:
                deployment_id:
                    type: string
                    description: Deployment ID filter
                    format: uuid
                external_user_id:
                    type: string
                    description: External user ID filter
                from:
                    type: string
                    description: Start time in ISO 8601 format (e.g., '2025-12-19T10:00:00Z')
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                gram_urn:
                    type: string
                    description: Speakeasy URN filter (single URN, use gram_urns for multiple)
                to:
                    type: string
                    description: End time in ISO 8601 format (e.g., '2025-12-19T11:00:00Z')
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
                user_id:
                    type: string
                    description: User ID filter
            description: Filter criteria for searching chat sessions
        SearchChatsPayload:
            type: object
            properties:
                cursor:
                    type: string
                    description: Cursor for pagination
                filter:
                    $ref: '#/components/schemas/SearchChatsFilter'
                limit:
                    type: integer
                    description: Number of items to return (1-1000)
                    default: 50
                    format: int64
                    minimum: 1
                    maximum: 1000
                sort:
                    type: string
                    description: Sort order
                    default: desc
                    enum:
                        - asc
                        - desc
            description: Payload for searching chat session summaries
        SearchChatsResult:
            type: object
            properties:
                chats:
                    type: array
                    items:
                        $ref: '#/components/schemas/ChatSummary'
                    description: List of chat session summaries
                next_cursor:
                    type: string
                    description: Cursor for next page
            description: Result of searching chat session summaries
            required:
                - chats
        SearchLogsFilter:
            type: object
            properties:
                deployment_id:
                    type: string
                    description: Deployment ID filter
                    format: uuid
                event_source:
                    type: string
                    description: Event source filter (e.g., 'hook', 'tool_call', 'chat_completion')
                external_user_id:
                    type: string
                    description: External user ID filter
                from:
                    type: string
                    description: Start time in ISO 8601 format (e.g., '2025-12-19T10:00:00Z')
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                function_id:
                    type: string
                    description: Function ID filter
                    format: uuid
                gram_chat_id:
                    type: string
                    description: Chat ID filter
                gram_urn:
                    type: string
                    description: Speakeasy URN filter (single URN, use gram_urns for multiple)
                gram_urns:
                    type: array
                    items:
                        type: string
                    description: Speakeasy URN filter (one or more URNs)
                http_method:
                    type: string
                    description: HTTP method filter
                    enum:
                        - GET
                        - POST
                        - PUT
                        - PATCH
                        - DELETE
                        - HEAD
                        - OPTIONS
                http_route:
                    type: string
                    description: HTTP route filter
                http_status_code:
                    type: integer
                    description: HTTP status code filter
                    format: int32
                service_name:
                    type: string
                    description: Service name filter
                severity_text:
                    type: string
                    description: Severity level filter
                    enum:
                        - DEBUG
                        - INFO
                        - WARN
                        - ERROR
                        - FATAL
                to:
                    type: string
                    description: End time in ISO 8601 format (e.g., '2025-12-19T11:00:00Z')
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
                trace_id:
                    type: string
                    description: Trace ID filter (32 hex characters)
                    pattern: ^[a-f0-9]{32}$
                user_id:
                    type: string
                    description: User ID filter
            description: Filter criteria for searching logs
        SearchLogsPayload:
            type: object
            properties:
                cursor:
                    type: string
                    description: Cursor for pagination
                filter:
                    $ref: '#/components/schemas/SearchLogsFilter'
                filters:
                    type: array
                    items:
                        $ref: '#/components/schemas/LogFilter'
                    description: Filter conditions for the search query
                from:
                    type: string
                    description: Start time in ISO 8601 format (e.g., '2025-12-19T10:00:00Z')
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                limit:
                    type: integer
                    description: Number of items to return (1-1000)
                    default: 50
                    format: int64
                    minimum: 1
                    maximum: 1000
                sort:
                    type: string
                    description: Sort order
                    default: desc
                    enum:
                        - asc
                        - desc
                to:
                    type: string
                    description: End time in ISO 8601 format (e.g., '2025-12-19T11:00:00Z')
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
            description: Payload for searching telemetry logs
        SearchLogsResult:
            type: object
            properties:
                logs:
                    type: array
                    items:
                        $ref: '#/components/schemas/TelemetryLogRecord'
                    description: List of telemetry log records
                next_cursor:
                    type: string
                    description: Cursor for next page
            description: Result of searching telemetry logs
            required:
                - logs
        SearchToolCallsFilter:
            type: object
            properties:
                deployment_id:
                    type: string
                    description: Deployment ID filter
                    format: uuid
                event_source:
                    type: string
                    description: Event source filter (e.g., 'hook', 'tool_call', 'chat_completion')
                from:
                    type: string
                    description: Start time in ISO 8601 format (e.g., '2025-12-19T10:00:00Z')
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                function_id:
                    type: string
                    description: Function ID filter
                    format: uuid
                gram_urn:
                    type: string
                    description: Speakeasy URN filter (single URN, use gram_urns for multiple)
                to:
                    type: string
                    description: End time in ISO 8601 format (e.g., '2025-12-19T11:00:00Z')
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
            description: Filter criteria for searching tool calls
        SearchToolCallsPayload:
            type: object
            properties:
                cursor:
                    type: string
                    description: Cursor for pagination
                filter:
                    $ref: '#/components/schemas/SearchToolCallsFilter'
                limit:
                    type: integer
                    description: Number of items to return (1-1000)
                    default: 50
                    format: int64
                    minimum: 1
                    maximum: 1000
                sort:
                    type: string
                    description: Sort order
                    default: desc
                    enum:
                        - asc
                        - desc
            description: Payload for searching tool call summaries
        SearchToolCallsResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for next page
                tool_calls:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolCallSummary'
                    description: List of tool call summaries
            description: Result of searching tool call summaries
            required:
                - tool_calls
        SearchUsersFilter:
            type: object
            properties:
                account_type:
                    type: string
                    description: Optional account type filter ('team' or 'personal').
                deployment_id:
                    type: string
                    description: Deployment ID filter
                    format: uuid
                event_source:
                    type: string
                    description: Optional event source filter (e.g. 'hook'). When set, only rows with a matching event_source are included.
                external_org_id:
                    type: string
                    description: Optional filter to a single AI account by its provider org id (the per-account discriminator); scopes results to that one account.
                from:
                    type: string
                    description: Start time in ISO 8601 format (e.g., '2025-12-19T10:00:00Z')
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                hook_source:
                    type: string
                    description: Optional hook source filter (e.g. 'cursor', 'claude-code').
                to:
                    type: string
                    description: End time in ISO 8601 format (e.g., '2025-12-19T11:00:00Z')
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
                user_ids:
                    type: array
                    items:
                        type: string
                    description: Optional list of user identifiers to include. Matches user_id for internal searches and external_user_id for external searches.
            description: Filter criteria for searching user usage summaries
            required:
                - from
                - to
        SearchUsersPayload:
            type: object
            properties:
                cursor:
                    type: string
                    description: Cursor for pagination (user identifier from last item)
                filter:
                    $ref: '#/components/schemas/SearchUsersFilter'
                group_by:
                    type: string
                    description: Grouping dimension for results
                    default: employee
                    enum:
                        - employee
                        - role
                limit:
                    type: integer
                    description: Number of items to return (1-1000)
                    default: 50
                    format: int64
                    minimum: 1
                    maximum: 1000
                metrics:
                    type: string
                    description: 'Level of usage metrics to compute per user. ''full'' (default) returns the complete set: chat counts, cost, cache tokens, tool-call totals, and the per-tool and per-hook-source breakdowns. ''basic'' computes only user identity, first/last activity, and input/output token sums — a much cheaper aggregation for large orgs (e.g. the employee enrollment list, which renders only those fields). The remaining fields are zero/empty under ''basic''. Ignored when source=''agent_metrics''.'
                    default: full
                    enum:
                        - full
                        - basic
                sort:
                    type: string
                    description: Sort order
                    default: desc
                    enum:
                        - asc
                        - desc
                source:
                    type: string
                    description: Where per-user summaries are read from (internal employee grouping only). 'logs' (default) scans raw telemetry_logs and computes the metrics selected by 'metrics'. 'agent_metrics' reads the pre-aggregated attribute_metrics_summaries view — canonical observed agent usage (Claude Code, Codex, Cursor, Claude Chat, LiteLLM), keyed by email — which is far cheaper but returns only identity, last activity (hourly), and input/output/total token sums; users without an email in the window are surfaced separately from raw logs with activity but no token counts.
                    default: logs
                    enum:
                        - logs
                        - agent_metrics
                user_type:
                    type: string
                    description: Type of user identifier to group by
                    enum:
                        - internal
                        - external
            description: Payload for searching user usage summaries
            required:
                - filter
                - user_type
        SearchUsersResult:
            type: object
            properties:
                next_cursor:
                    type: string
                    description: Cursor for next page
                roles:
                    type: array
                    items:
                        $ref: '#/components/schemas/RoleSummary'
                    description: List of role usage summaries (populated when group_by=role)
                users:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSummary'
                    description: List of user usage summaries (populated when group_by=employee)
            description: Result of searching user usage summaries
            required:
                - users
        SecurityVariable:
            type: object
            properties:
                bearer_format:
                    type: string
                    description: The bearer format
                display_name:
                    type: string
                    description: User-friendly display name for the security variable (defaults to name if not set)
                env_variables:
                    type: array
                    items:
                        type: string
                    description: The environment variables
                id:
                    type: string
                    description: The unique identifier of the security variable
                in_placement:
                    type: string
                    description: Where the security token is placed
                name:
                    type: string
                    description: The name of the security scheme (actual header/parameter name)
                oauth_flows:
                    type: string
                    description: The OAuth flows
                    format: binary
                oauth_types:
                    type: array
                    items:
                        type: string
                    description: The OAuth types
                scheme:
                    type: string
                    description: The security scheme
                type:
                    type: string
                    description: The type of security
            required:
                - id
                - name
                - in_placement
                - scheme
                - env_variables
        Selector:
            type: object
            properties:
                client_type:
                    type: string
                    description: Auth client type filter (mcp:auth and mcp:blocked_auth only).
                    enum:
                        - remote_session
                        - service_account
                        - static_credential
                        - pass_through
                        - ema
                        - '*'
                connection_owner:
                    type: string
                    description: Personal connection owner filter (mcp:auth and mcp:blocked_auth on remote_session clients only). A user ID, '*', or '$represented_user' for the user the request acts for. Never lets a caller use another user's connection.
                disposition:
                    type: string
                    description: Tool disposition filter (MCP scopes only).
                    enum:
                        - read_only
                        - destructive
                        - idempotent
                        - open_world
                project_id:
                    type: string
                    description: Project filter (MCP, environment, assistant, mcp:auth, and mcp:blocked_auth scopes). When set with resource_id='*', grants access to every resource of the kind in the project. For mcp:auth and mcp:blocked_auth it is the project of the server using the client.
                resource_id:
                    type: string
                    description: The resource identifier, or '*' for all resources of this kind.
                resource_kind:
                    type: string
                    description: The kind of resource this selector targets.
                    enum:
                        - project
                        - mcp
                        - org
                        - environment
                        - skill
                        - assistant
                        - risk_policy
                        - chat
                        - agent
                        - workload
                        - mcp_auth_client
                        - '*'
                server_url:
                    type: string
                    description: Server URL filter (risk policy scopes only). Include the URI scheme, for example https://api.example.com.
                    format: uri
                tool:
                    type: string
                    description: Specific tool name filter (MCP scopes only).
            description: A constraint that narrows which resources a grant applies to.
            required:
                - resource_kind
                - resource_id
        SendEnterpriseAdminOnboardingEmailRequestBody:
            type: object
            properties:
                recipients:
                    type: array
                    items:
                        type: string
                        format: email
                    description: Recipient email addresses.
                    minItems: 1
            required:
                - recipients
        SendEnterpriseAdminOnboardingEmailResult:
            type: object
            properties:
                sent_count:
                    type: integer
                    description: Number of recipients the email was dispatched to.
                    format: int64
                setup_link:
                    type: string
                    description: The setup link embedded in the dispatched email.
            required:
                - sent_count
                - setup_link
        SendInviteRequestBody:
            type: object
            properties:
                email:
                    type: string
                    description: Email address to invite.
                role_id:
                    type: string
                    description: Optional role ID for the invitee.
            required:
                - email
        SendMessageAttachment:
            type: object
            properties:
                asset_id:
                    type: string
                    description: The chat attachment asset returned by assets.uploadChatAttachment.
                    format: uuid
                name:
                    type: string
                    description: The file name to show the assistant. Falls back to the stored asset name.
                    maxLength: 255
            required:
                - asset_id
        SendMessageRequestBody:
            type: object
            properties:
                assistant_id:
                    type: string
                    description: The assistant to send the message to.
                    format: uuid
                attachments:
                    type: array
                    items:
                        $ref: '#/components/schemas/SendMessageAttachment'
                    description: Files uploaded through assets.uploadChatAttachment that this turn carries.
                    maxItems: 5
                chat_id:
                    type: string
                    description: The conversation to continue (from listChats or a prior sendMessage). Omit to start a new conversation; the server mints and returns a fresh chat id.
                    format: uuid
                idempotency_key:
                    type: string
                    description: Stable key the client mints once per message so retries dedupe instead of enqueuing twice. A new key is generated server-side when omitted.
                    maxLength: 255
                message:
                    type: string
                    description: The user's message text. May be empty when the turn carries attachments.
                    maxLength: 10000
                skill_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: Project skills to make available for this turn.
                    maxItems: 10
            required:
                - assistant_id
                - message
        SendMessageResult:
            type: object
            properties:
                accepted:
                    type: boolean
                    description: Whether the message was accepted and enqueued for processing.
                chat_id:
                    type: string
                    description: The chat to poll for the assistant's reply.
                    format: uuid
                thread_id:
                    type: string
                    description: The assistant thread the message was enqueued on, when the ingest produced one.
                    format: uuid
            required:
                - chat_id
                - accepted
        ServeChatAttachmentForm:
            type: object
            properties:
                apikey_token:
                    type: string
                chat_sessions_token:
                    type: string
                id:
                    type: string
                    description: The ID of the attachment to serve
                project_id:
                    type: string
                    description: The project ID that the attachment belongs to
                session_token:
                    type: string
            required:
                - id
                - project_id
        ServeChatAttachmentResult:
            type: object
            properties:
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                last_modified:
                    type: string
            required:
                - content_type
                - content_length
                - last_modified
        ServeChatAttachmentSignedForm:
            type: object
            properties:
                token:
                    type: string
                    description: The signed JWT token
            required:
                - token
        ServeChatAttachmentSignedResult:
            type: object
            properties:
                access_control_allow_origin:
                    type: string
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                last_modified:
                    type: string
            required:
                - content_type
                - content_length
                - last_modified
        ServeFunctionForm:
            type: object
            properties:
                apikey_token:
                    type: string
                id:
                    type: string
                    description: The ID of the asset to serve
                project_id:
                    type: string
                    description: The procect ID that the asset belongs to
                session_token:
                    type: string
            required:
                - id
                - project_id
        ServeFunctionResult:
            type: object
            properties:
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                last_modified:
                    type: string
            required:
                - content_type
                - content_length
                - last_modified
        ServeImageForm:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the asset to serve
            required:
                - id
        ServeImageResult:
            type: object
            properties:
                access_control_allow_origin:
                    type: string
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                cross_origin_resource_policy:
                    type: string
                last_modified:
                    type: string
            required:
                - content_type
                - content_length
                - last_modified
                - cross_origin_resource_policy
        ServeOpenAPIv3Form:
            type: object
            properties:
                apikey_token:
                    type: string
                id:
                    type: string
                    description: The ID of the asset to serve
                project_id:
                    type: string
                    description: The procect ID that the asset belongs to
                session_token:
                    type: string
            required:
                - id
                - project_id
        ServeOpenAPIv3Result:
            type: object
            properties:
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                last_modified:
                    type: string
            required:
                - content_type
                - content_length
                - last_modified
        ServerClientAssociation:
            type: object
            properties:
                associated_at:
                    type: string
                    description: When the association was recorded.
                    format: date-time
                client_id:
                    type: string
                    description: The provider-issued client_id.
                issuer_name:
                    type: string
                    description: Display name of the remote session issuer, if set.
                issuer_slug:
                    type: string
                    description: Slug of the remote session issuer.
                issuer_url:
                    type: string
                    description: The remote session issuer's issuer identifier.
                remote_session_client_id:
                    type: string
                    description: The associated remote session client.
                    format: uuid
                remote_session_issuer_id:
                    type: string
                    description: 'The client''s remote session issuer: the upstream authorization server it signs in with.'
                    format: uuid
                scope:
                    type: string
                    description: Who owns the client.
                    enum:
                        - project
                        - organization
                        - global
                server_count:
                    type: integer
                    description: How many live MCP servers are associated with this client, including this one.
                    format: int64
            description: One upstream OAuth client an MCP server is associated with. Client secrets are never returned.
            required:
                - remote_session_client_id
                - client_id
                - remote_session_issuer_id
                - issuer_slug
                - issuer_url
                - scope
                - server_count
                - associated_at
        ServerIdentityClientConfiguration:
            type: object
            properties:
                audience:
                    type: string
                    description: Optional upstream OAuth audience.
                    pattern: ^[!-~]+$
                    maxLength: 512
                client_id:
                    type: string
                    description: The out-of-band OAuth client identifier. Manual mode only.
                client_secret:
                    type: string
                    description: The out-of-band OAuth client secret. Manual mode only; encrypted before persistence.
                scope:
                    type: array
                    items:
                        type: string
                        pattern: ^[!#-[\]-~]+$
                        maxLength: 128
                    description: Each value must be an RFC 6749 scope token.
                token_endpoint_auth_method:
                    type: string
                    description: How the client authenticates at the provider token endpoint, or the preferred method for DCR.
                    enum:
                        - client_secret_basic
                        - client_secret_post
                        - none
            description: Configuration for a newly-created project remote-session client. Manual mode requires client_id. Auto mode forbids client_id and client_secret and uses scope, audience, and token_endpoint_auth_method as registration preferences.
        ServerIdentityImpactForm:
            type: object
            properties:
                change:
                    type: string
                    description: The kind of binding change.
                    enum:
                        - replace
                        - attach
                        - detach
                client_id:
                    type: string
                    description: An existing client being bound. Omit for a new client.
                    format: uuid
                mcp_server_id:
                    type: string
                    description: The MCP server the change is made from. Excluded from the result.
                    format: uuid
                provider_id:
                    type: string
                    description: The Remote Identity Provider of the client being bound. Omit for a new provider.
                    format: uuid
                user_session_issuer_id:
                    type: string
                    description: The user session issuer whose client bindings change.
                    format: uuid
            description: 'A proposed client binding change on a user session issuer. replace mirrors commitServerIdentityConfiguration: the bound clients of other providers (or of the same provider, for a client swap) are unbound and the chosen client is bound. attach binds one more client and unbinds nothing. detach unbinds every client the caller''s project can see. For replace and attach, client_id names an existing client; without it a new project client of provider_id is assumed, and without provider_id a new provider.'
            required:
                - user_session_issuer_id
                - change
        ServerIdentityImpactResult:
            type: object
            properties:
                hidden_server_count:
                    type: integer
                    description: MCP servers and gateways the caller cannot read; they are not named. When the change touches an organization-level client this counts every such server on the issuer, affected or not.
                    format: int64
                servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/ServerIdentityImpactServer'
                    description: Affected MCP servers the caller can read.
            description: The MCP servers and gateways, other than the target, that a proposed binding change affects.
            required:
                - servers
                - hidden_server_count
        ServerIdentityImpactServer:
            type: object
            properties:
                id:
                    type: string
                    description: The MCP server or gateway id.
                    format: uuid
                impact:
                    type: string
                    description: 'repoint: its upstream authorization server changes to another single provider. clear: it is left with no single provider and loses its upstream. resignin: its upstream is unchanged but its client is replaced, so everyone signs in again. client_removed: a gateway loses a provider client its members sign in through.'
                    enum:
                        - repoint
                        - clear
                        - resignin
                        - client_removed
                kind:
                    type: string
                    description: Whether this is an MCP server or a gateway.
                    enum:
                        - mcp_server
                        - gateway
                name:
                    type: string
                    description: The MCP server or gateway name.
                project_id:
                    type: string
                    description: The owning project.
                    format: uuid
                project_name:
                    type: string
                    description: The name of the owning project.
                slug:
                    type: string
                    description: The MCP server slug. Gateways have none.
            description: An MCP server or gateway a proposed binding change affects.
            required:
                - id
                - kind
                - project_id
                - project_name
                - impact
        ServerIdentityRegistrationFailure:
            type: object
            properties:
                http_status:
                    type: integer
                    description: Optional upstream HTTP status.
                    format: int64
                outcome:
                    type: string
                    enum:
                        - unreachable
                        - refused
                provider_message:
                    type: string
                    description: Optional sanitized and truncated provider-controlled message.
                reason:
                    type: string
                    enum:
                        - dns_error
                        - tls_error
                        - timeout
                        - network_error
                        - rate_limited
                        - upstream_unavailable
                        - authorization_rejected
                        - invalid_success_response
                retryable:
                    type: boolean
            description: A completed automatic registration failure using the bounded OAuth registration taxonomy.
            required:
                - outcome
                - reason
                - retryable
        ServerNameOverride:
            type: object
            properties:
                display_name:
                    type: string
                    description: User-friendly display name
                id:
                    type: string
                    description: Override ID
                raw_server_name:
                    type: string
                    description: Original server name from hooks
            description: User-defined display name for a hooks server
            required:
                - id
                - raw_server_name
                - display_name
        ServerVariable:
            type: object
            properties:
                description:
                    type: string
                    description: Description of the server variable
                env_variables:
                    type: array
                    items:
                        type: string
                    description: The environment variables
            required:
                - description
                - env_variables
        ServiceInfo:
            type: object
            properties:
                name:
                    type: string
                    description: Service name
                version:
                    type: string
                    description: Service version
            description: Service information
            required:
                - name
        SessionQuarantine:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the quarantine opened.
                    format: date-time
                id:
                    type: string
                    description: The session quarantine ID.
                    format: uuid
                organization_id:
                    type: string
                    description: The organization ID.
                project_id:
                    type: string
                    description: The project ID.
                    format: uuid
                reason:
                    type: string
                    description: The deny reason captured when the quarantine opened.
                released_at:
                    type: string
                    description: When the quarantine was released.
                    format: date-time
                released_by:
                    type: string
                    description: The user who released the quarantine.
                risk_policy_id:
                    type: string
                    description: The risk policy that opened the quarantine, when still available.
                    format: uuid
                risk_policy_name:
                    type: string
                    description: The risk policy name captured when the quarantine opened.
                session_id:
                    type: string
                    description: The hook conversation ID that is quarantined.
                user_id:
                    type: string
                    description: The user whose hook event opened the quarantine.
            required:
                - id
                - organization_id
                - project_id
                - session_id
                - risk_policy_name
                - user_id
                - reason
                - created_at
        SessionQuarantineReleaseRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The session quarantine ID.
                    format: uuid
            required:
                - id
        SessionSummary:
            type: object
            properties:
                duration_seconds:
                    type: number
                    description: Chat session duration in seconds
                    format: double
                end_time_unix_nano:
                    type: string
                    description: Latest log timestamp in Unix nanoseconds (string for JS int64 precision)
                gram_chat_id:
                    type: string
                    description: Chat session ID
                hook_source:
                    type: string
                    description: Client or agent surface associated with this chat session
                message_count:
                    type: integer
                    description: Number of LLM completion messages in this chat session
                    format: int64
                model:
                    type: string
                    description: LLM model used in this chat session
                project_id:
                    type: string
                    description: Project ID that emitted this chat session
                start_time_unix_nano:
                    type: string
                    description: Earliest log timestamp in Unix nanoseconds (string for JS int64 precision)
                status:
                    type: string
                    description: Chat session status
                    enum:
                        - success
                        - error
                title:
                    type: string
                    description: Chat title, when the session resolves to a named chat
                tool_call_count:
                    type: integer
                    description: Number of tool calls in this chat session
                    format: int64
                total_cost:
                    type: number
                    description: Total cost in USD
                    format: double
                total_input_tokens:
                    type: integer
                    description: Total input tokens used
                    format: int64
                total_output_tokens:
                    type: integer
                    description: Total output tokens used
                    format: int64
                total_tokens:
                    type: integer
                    description: Total tokens used
                    format: int64
                user_email:
                    type: string
                    description: User email associated with this chat session
            description: Org-scoped summary information for a chat session
            required:
                - gram_chat_id
                - project_id
                - start_time_unix_nano
                - end_time_unix_nano
                - duration_seconds
                - message_count
                - tool_call_count
                - total_input_tokens
                - total_output_tokens
                - total_tokens
                - total_cost
                - status
        SetAIToolDecisionRequestBody:
            type: object
            properties:
                decision:
                    type: string
                    description: The decision to record. unreviewed clears an earlier one.
                    enum:
                        - unreviewed
                        - approved
                        - blocked
                rationale:
                    type: string
                    description: Why the decision was made. Shown beside it and carried into the audit trail.
                    maxLength: 1024
                target_id:
                    type: string
                    description: Id of the detection target to decide on, as agents report it.
                    pattern: ^[a-z0-9][a-z0-9-]{0,63}$
            required:
                - target_id
                - decision
        SetAIToolDecisionResult:
            type: object
            properties:
                access:
                    $ref: '#/components/schemas/AIToolAccessSummary'
                target_id:
                    type: string
                    description: The detection target the decision was recorded for.
            required:
                - target_id
                - access
        SetAuthenticationHostRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The user_session_issuer id.
                    format: uuid
                use_authentication_host:
                    type: boolean
                    description: True to move onto the authentication host, false to move off it.
            required:
                - id
                - use_authentication_host
        SetBillingMetadataRequestBody:
            type: object
            properties:
                alert_email:
                    type: string
                    description: Email address to notify on TUM threshold events. Omit to clear.
                    format: email
                billing_cycle_anchor_day:
                    type: integer
                    description: Day of month (1-31) the billing cycle starts, at 00:00 UTC
                    format: int64
                    minimum: 1
                    maximum: 31
                monthly_token_limit:
                    type: integer
                    description: The contracted monthly tokens under management limit. Omit to clear.
                    format: int64
                    minimum: 0
                tunneled_mcp_server_limit:
                    type: integer
                    description: The contracted tunneled MCP server source cap. Omit to leave the configured value unchanged; never-configured orgs use the plan default.
                    format: int64
                    minimum: 0
            required:
                - billing_cycle_anchor_day
        SetDirectoryRoleMappingForm:
            type: object
            properties:
                attribute_key:
                    type: string
                    description: Attribute key to match. Required when source_kind is attribute.
                    minLength: 1
                attribute_value:
                    type: string
                    description: Attribute value to match. Required when source_kind is attribute.
                    minLength: 1
                directory_group_id:
                    type: string
                    description: Directory group to map. Required when source_kind is group.
                    format: uuid
                role_urn:
                    type: string
                    description: Role principal URN to grant.
                source_kind:
                    type: string
                    description: What the mapping matches.
                    enum:
                        - group
                        - attribute
            required:
                - source_kind
                - role_urn
        SetDirectoryRoleMappingsForm:
            type: object
            properties:
                attribute_key:
                    type: string
                    description: Attribute key to match. Required when source_kind is attribute.
                    minLength: 1
                attribute_value:
                    type: string
                    description: Attribute value to match. Required when source_kind is attribute.
                    minLength: 1
                directory_group_id:
                    type: string
                    description: Directory group to map. Required when source_kind is group.
                    format: uuid
                expected_role_urns:
                    type: array
                    items:
                        type: string
                    description: Optional compare-and-set precondition. The normalized current role set must match or the request returns conflict without changes. Omit for unconditional replacement; an empty array requires an unmapped source.
                role_urns:
                    type: array
                    items:
                        type: string
                    description: The complete set of role principal URNs to grant, from Role.principal_urn. Empty removes every mapping for the source.
                source_kind:
                    type: string
                    description: What the mapping matches.
                    enum:
                        - group
                        - attribute
            required:
                - source_kind
                - role_urns
        SetEMAProvidersRequestBody:
            type: object
            properties:
                expected_providers:
                    type: array
                    items:
                        $ref: '#/components/schemas/EMAProviderInput'
                    description: The saved list the caller started from, in its stored order, empty for the default. When given and the saved list no longer matches it, nothing is written and the request fails with conflict, so a stale editor never overwrites another administrator's change. Send the list you last read when updating; on conflict, re-read and reconcile the list before retrying. Omit only to replace the list unconditionally.
                providers:
                    type: array
                    items:
                        $ref: '#/components/schemas/EMAProviderInput'
                    description: The accepted providers, at most 10; each at most once. Stored in the given order, though each endpoint uses only the one its sign-in goes through. An empty list restores the derived default.
                remote_session_issuer_id:
                    type: string
                    description: Any remote_session_issuer in the caller's organization that names the vendor authorization server.
                    format: uuid
            required:
                - remote_session_issuer_id
                - providers
        SetEnabledRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                    description: Whether Speakeasy may sign with the issuer.
            required:
                - enabled
        SetIdentityProviderConnectionSetupMethodRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: Connection ID.
                    format: uuid
                listing_mode:
                    type: string
                    description: Setup method.
                    enum:
                        - custom_app
                        - oin
            required:
                - id
                - listing_mode
        SetInferenceKeyMonthlyLimitRequestBody:
            type: object
            properties:
                key_type:
                    type: string
                    enum:
                        - chat
                        - internal
                monthly_credits:
                    type: integer
                    format: int64
                    minimum: 1
                    maximum: 10000
                organization_id:
                    type: string
            required:
                - organization_id
                - key_type
                - monthly_credits
        SetKeyEnabledRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                    description: Whether the key participates in key resolution.
                id:
                    type: string
                    description: The ID of the key to update.
                    format: uuid
            required:
                - id
                - enabled
        SetMcpMetadataRequestBody:
            type: object
            properties:
                default_environment_id:
                    type: string
                    description: The default environment to load variables from. Not supported when mcp_server_id is provided.
                    format: uuid
                environment_configs:
                    type: array
                    items:
                        $ref: '#/components/schemas/McpEnvironmentConfigInput'
                    description: The list of environment variables to configure for this MCP
                external_documentation_text:
                    type: string
                    description: A blob of text for the button on the MCP server page
                external_documentation_url:
                    type: string
                    description: A link to external documentation for the MCP install page
                installation_override_url:
                    type: string
                    description: URL to redirect to instead of showing the default installation page
                    format: uri
                instructions:
                    type: string
                    description: Server instructions returned in the MCP initialize response
                logo_asset_id:
                    type: string
                    description: The asset ID for the MCP install page logo
                mcp_server_id:
                    type: string
                    description: The ID of the MCP server associated with this install page metadata. Mutually exclusive with toolset_slug.
                    format: uuid
                toolset_slug:
                    type: string
                    description: The slug of the toolset associated with this install page metadata. Mutually exclusive with mcp_server_id.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
        SetOrganizationChatAnalysisSettingsRequestBody:
            type: object
            properties:
                daily_cap:
                    type: integer
                    format: int64
                    minimum: 0
                    maximum: 10000
                enabled:
                    type: boolean
                judge:
                    type: string
                    enum:
                        - work_units
                        - business_memory
                organization_id:
                    type: string
            required:
                - organization_id
                - judge
                - enabled
                - daily_cap
        SetOrganizationFeatureRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                feature_name:
                    type: string
                    enum:
                        - logs
                        - tool_io_logs
                        - session_capture
                        - authz_challenge_logging
                        - sso
                        - scim
                        - hooks_browser_login
                        - hooks_fail_open
                        - custom_model_keys
                        - skills
                        - skill_capture_metadata_only
                        - ai_platform_push_integrations
                        - platform_mcp
                        - customer_managed_encryption_keys
                        - remote_session_auto_refresh
                        - remote_session_auto_refresh_enforced
                        - session_portability
                        - network_ingress
                        - signals_intelligence
                        - organization_gateway_disabled
                    maxLength: 60
                organization_id:
                    type: string
            required:
                - organization_id
                - feature_name
                - enabled
        SetOrganizationOnboardingStackRequestBody:
            type: object
            properties:
                mdm_vendor:
                    type: string
                    description: jamf, intune, iru, other or none.
                mdm_vendor_name:
                    type: string
                    description: Required when mdm_vendor is other, ignored otherwise.
                organization_id:
                    type: string
                vendors:
                    type: array
                    items:
                        $ref: '#/components/schemas/AdminOnboardingStackVendor'
                    description: Complete explicit list; an empty array records no vendors.
            required:
                - organization_id
                - vendors
                - mdm_vendor
        SetOrganizationWhitelistRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
                    description: The ID of the organization to update
                whitelisted:
                    type: boolean
                    description: Whether the organization should be whitelisted
            required:
                - organization_id
                - whitelisted
        SetPinnedRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the chat to pin or unpin
                pinned:
                    type: boolean
                    description: True to pin the chat, false to unpin it
            required:
                - id
                - pinned
        SetPluginAssignmentsForm:
            type: object
            properties:
                install_modes:
                    type: object
                    description: Install mode per principal URN in principal_urns. A principal missing from this map keeps its current mode, or gets `default` when it is newly assigned.
                    additionalProperties:
                        type: string
                        enum:
                            - required
                            - default
                            - available
                plugin_id:
                    type: string
                    format: uuid
                principal_urns:
                    type: array
                    items:
                        type: string
                    description: List of principal URNs to assign.
            required:
                - plugin_id
                - principal_urns
        SetPluginAssignmentsResponseBody:
            type: object
            properties:
                assignments:
                    type: array
                    items:
                        $ref: '#/components/schemas/PluginAssignment'
                    description: The updated assignments.
            required:
                - assignments
        SetProductFeatureRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                    description: Whether the feature should be enabled
                feature_name:
                    type: string
                    description: Name of the feature to update
                    enum:
                        - logs
                        - tool_io_logs
                        - session_capture
                        - authz_challenge_logging
                        - sso
                        - scim
                        - hooks_browser_login
                        - hooks_fail_open
                        - custom_model_keys
                        - skills
                        - skill_capture_metadata_only
                        - ai_platform_push_integrations
                        - platform_mcp
                        - customer_managed_encryption_keys
                        - remote_session_auto_refresh
                        - remote_session_auto_refresh_enforced
                        - session_portability
                        - network_ingress
                        - signals_intelligence
                        - organization_gateway_disabled
                    maxLength: 60
                organization_id:
                    type: string
                    description: Organization whose product feature to update.
            required:
                - organization_id
                - feature_name
                - enabled
        SetProjectLogoForm:
            type: object
            properties:
                asset_id:
                    type: string
                    description: The ID of the asset
            required:
                - asset_id
        SetProjectLogoResult:
            type: object
            properties:
                project:
                    $ref: '#/components/schemas/Project'
            required:
                - project
        SetRegistryEntryPublishedRequestBody:
            type: object
            properties:
                id:
                    type: string
                    format: uuid
                published:
                    type: boolean
                updated_at:
                    type: string
            required:
                - id
                - updated_at
                - published
        SetRemoteSessionAutoRefreshPolicyRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
                    description: Organization whose automatic remote-session refresh policy to update.
                policy:
                    type: string
                    description: Organization policy for automatic remote-session refresh
                    enum:
                        - disabled
                        - user_controlled
                        - enforced
            required:
                - organization_id
                - policy
        SetResourceAudienceEntry:
            type: object
            properties:
                dispositions:
                    type: array
                    items:
                        type: string
                        enum:
                            - read_only
                            - destructive
                            - idempotent
                            - open_world
                    description: Narrow the access to tools carrying these annotations. Omit for the whole resource.
                level:
                    type: string
                    description: 'Access to give the principal on this resource. The "blocked_" levels take access away, one scope each and nothing else: "blocked" removes connect, "blocked_view" removes view, "blocked_manage" removes manage. Taking a principal off a resource entirely means writing all three.'
                    enum:
                        - use
                        - view
                        - manage
                        - blocked
                        - blocked_view
                        - blocked_manage
                principal_urn:
                    type: string
                    description: Principal to grant or block. Use '*' for everyone in the organization.
                tools:
                    type: array
                    items:
                        type: string
                    description: Narrow the access to these tool names. Omit for the whole resource.
            required:
                - principal_urn
                - level
        SetResourceAudienceForm:
            type: object
            properties:
                entries:
                    type: array
                    items:
                        $ref: '#/components/schemas/SetResourceAudienceEntry'
                    description: The complete set of rules that name this resource. Rules covering every resource are not affected.
                expected_version:
                    type: string
                    description: The version this edit was based on, from the last read. The save is refused if the rules changed since.
                resource_id:
                    type: string
                    description: The resource being changed.
                resource_kind:
                    type: string
                    description: The kind of resource being changed.
                    enum:
                        - mcp
            required:
                - resource_kind
                - resource_id
                - entries
                - expected_version
        SetRootMcpEndpointRequestBody:
            type: object
            properties:
                custom_domain_id:
                    type: string
                    description: The custom domain whose root mapping to change
                    format: uuid
                mcp_endpoint_id:
                    type: string
                    description: The MCP endpoint to map to the domain root. Omit both ids to clear the mapping.
                    format: uuid
                mcp_server_id:
                    type: string
                    description: An MCP server to map to the domain root; its domain endpoint is created when missing. Mutually exclusive with mcp_endpoint_id.
                    format: uuid
            required:
                - custom_domain_id
        SetScheduleEnabledRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                    description: Whether the schedule should be polled.
                provider:
                    type: string
                    description: AI provider identifier. Supported values include cursor, anthropic_compliance, codex_compliance, and chatgpt_compliance.
                schedule:
                    type: string
                    description: Schedule identifier (e.g. cursor, anthropic_compliance, anthropic_analytics_usage).
            required:
                - provider
                - schedule
                - enabled
        SetServerScopePinRequestBody:
            type: object
            properties:
                mcp_server_id:
                    type: string
                    description: The ID of the remote-backed MCP server.
                    format: uuid
                scopes:
                    type: array
                    items:
                        type: string
                        maxLength: 256
                    description: Scopes to pin on the server's protected resource, shared by servers with the same upstream URL, in request order. Whitespace is trimmed, blanks and duplicates are dropped, and at most 100 scopes may remain; an empty list clears the pin.
                    maxItems: 1000
            required:
                - mcp_server_id
                - scopes
        SetSlackIdentityMappingRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: Membership to change.
                    format: uuid
                mapping_revision:
                    type: integer
                    description: Mapping revision shown in the review dialog.
                    format: int64
                    minimum: 0
                observation_token:
                    type: string
                    description: Directory evidence shown in the review dialog.
                    minLength: 1
                user_id:
                    type: string
                    description: Active same-organization person to confirm. Omit to unmap.
                    minLength: 1
            required:
                - id
                - mapping_revision
                - observation_token
        SetSourceEnvironmentLinkRequestBody:
            type: object
            properties:
                environment_id:
                    type: string
                    description: The ID of the environment to link
                    format: uuid
                source_kind:
                    type: string
                    description: The kind of source (http or function)
                    enum:
                        - http
                        - function
                source_slug:
                    type: string
                    description: The slug of the source
            required:
                - source_kind
                - source_slug
                - environment_id
        SetSpendCapRequestBody:
            type: object
            properties:
                key_type:
                    type: string
                    description: The platform-managed inference key to update. Defaults to chat for compatibility.
                    enum:
                        - chat
                        - internal
                monthly_credits:
                    type: integer
                    description: The monthly inference spend cap in USD
                    format: int64
                    minimum: 1
                    maximum: 10000
            required:
                - monthly_credits
        SetStripeCustomerRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
                stripe_customer_id:
                    type: string
                    pattern: ^cus_[A-Za-z0-9_]+$
                    maxLength: 255
            required:
                - organization_id
                - stripe_customer_id
        SetStripeSubscriptionRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
                stripe_subscription_id:
                    type: string
                    pattern: ^sub_[A-Za-z0-9_]+$
                    maxLength: 255
            required:
                - organization_id
                - stripe_subscription_id
        SetToolMetadataBatchRequestBody:
            type: object
            properties:
                mcp_server_id:
                    type: string
                    description: The ID of the MCP server the tool metadata belongs to
                    format: uuid
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolMetadataForm'
                    description: The authoritative set of tools for the MCP server. Stored tools absent from this list are soft-deleted.
            required:
                - mcp_server_id
                - tools
        SetToolMetadataBatchResult:
            type: object
            properties:
                deleted:
                    type: integer
                    description: The number of stored tools soft-deleted because they were absent from the payload
                    format: int64
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolMetadata'
                    description: The stored tool metadata after the upsert
            description: Result of an authoritative tool metadata batch upsert.
            required:
                - tools
                - deleted
        SetToolMetadataRequestBody:
            type: object
            properties:
                destructive_hint:
                    type: boolean
                    description: Hint that the tool may perform destructive updates to its environment
                idempotent_hint:
                    type: boolean
                    description: Hint that calling the tool repeatedly with the same arguments has no additional effect
                mcp_server_id:
                    type: string
                    description: The ID of the MCP server the tool metadata belongs to
                    format: uuid
                open_world_hint:
                    type: boolean
                    description: Hint that the tool may interact with an open world of external entities
                read_only_hint:
                    type: boolean
                    description: Hint that the tool does not modify its environment
                title:
                    type: string
                    description: A human-readable title for the tool
                tool_name:
                    type: string
                    description: The name of the tool to update
            required:
                - mcp_server_id
                - tool_name
        SetToolVariationsGroupForm:
            type: object
            properties:
                project_slug_input:
                    type: string
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                tool_variations_group_id:
                    type: string
                    description: The tool variations group id to assign, or null to disable filtering.
                    format: uuid
            required:
                - slug
        SetToolVariationsGroupRequestBody:
            type: object
            properties:
                tool_variations_group_id:
                    type: string
                    description: The tool variations group id to assign, or null to disable filtering.
                    format: uuid
        SetToolsetEnvironmentLinkRequestBody:
            type: object
            properties:
                environment_id:
                    type: string
                    description: The ID of the environment to link
                    format: uuid
                toolset_id:
                    type: string
                    description: The ID of the toolset
                    format: uuid
            required:
                - toolset_id
                - environment_id
        SetUserSessionIssuerForm:
            type: object
            properties:
                project_slug_input:
                    type: string
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                user_session_issuer_id:
                    type: string
                    description: The user_session_issuer id to link, or null to unlink.
                    format: uuid
            required:
                - slug
        SetUserSessionIssuerRequestBody:
            type: object
            properties:
                user_session_issuer_id:
                    type: string
                    description: The user_session_issuer id to link, or null to unlink.
                    format: uuid
        SetupTask:
            type: object
            properties:
                assignee:
                    $ref: '#/components/schemas/SetupTaskAssignee'
                blocked_by:
                    type: array
                    items:
                        type: string
                    description: Incomplete prerequisite task keys.
                completed_by_fact:
                    type: boolean
                    description: Whether current organization facts force the effective status to done. This field is read-only.
                description:
                    type: string
                    description: Task description.
                group:
                    type: boolean
                    description: 'True for a group that nests cards. A group has no card of its own: it is hidden when every card under it is, done when every visible card is, and cannot be assigned or marked by hand.'
                hidden:
                    type: boolean
                    description: Whether a platform administrator hid the task.
                key:
                    type: string
                    description: Stable code-owned task key.
                parent_key:
                    type: string
                    description: Key of the group this card sits under. Absent for a top-level card or a group.
                status:
                    type: string
                    description: Effective task status.
                    enum:
                        - todo
                        - in_progress
                        - awaiting_support
                        - done
                title:
                    type: string
                    description: Task title.
            required:
                - key
                - title
                - description
                - status
                - completed_by_fact
                - blocked_by
                - hidden
                - group
        SetupTaskAssignee:
            type: object
            properties:
                email:
                    type: string
                    description: Assignee email address.
                name:
                    type: string
                    description: Resolved member display name.
                photo_url:
                    type: string
                    description: Resolved member photo URL.
                user_id:
                    type: string
                    description: Resolved active organization member ID.
            required:
                - email
        SetupTaskAssigneeInput:
            type: object
            properties:
                email:
                    type: string
                    description: Email address to assign before membership exists. Mutually exclusive with user_id.
                    format: email
                user_id:
                    type: string
                    description: Active organization member to assign. Mutually exclusive with email.
            description: Assignee selector. Exactly one of user_id or email must be present and non-empty.
        ShadowMCPAccessSummary:
            type: object
            properties:
                allowed_for:
                    type: string
                    description: 'Reach of explicit allow grants: everyone when every deny-by-default policy''s audience is covered (an all-users grant, or grants naming the policy''s whole audience), selected when grants free only part of an audience, none without grants. A role grant whose membership happens to span the organization still reads selected — reach compares principal sets, not expanded memberships.'
                    enum:
                        - everyone
                        - selected
                        - none
                blocked_for:
                    type: string
                    description: 'Reach of explicit block mechanisms: an everyone-audience block rule, a targeted rule or targeted deny-by-default policy, or none.'
                    enum:
                        - everyone
                        - some
                        - none
                blocking_default:
                    type: string
                    description: 'What happens to a user no rule names: deny under an everyone-audience deny-by-default policy, allow when blocking exists without one, none when no blocking policy is enabled.'
                    enum:
                        - deny
                        - allow
                        - none
                decision:
                    type: string
                    description: The recorded review decision, when one exists.
                    enum:
                        - approved
                        - denied
                decision_coverage:
                    type: string
                    description: 'How much of the recorded decision enforcement delivers. full: the decision''s own writes are intact — an approval''s grants survive unoverridden (a scoped blast radius is the decision as recorded, not a shortfall), or a denial lands as a project-wide block. partial: something carries the decision but not all of it, such as a denial only a targeted policy enforces, or an approval whose grants were later removed or overridden. none: nothing carries it — no blocking policy exists, the target is a local command (stdio decisions are recorded without writing enforcement), or no decision is recorded at all.'
                    enum:
                        - full
                        - partial
                        - none
                state:
                    type: string
                    description: 'The shape of the user-to-access function: allowed and blocked are uniform, restricted varies by user, unenforced means no blocking policy applies.'
                    enum:
                        - allowed
                        - restricted
                        - blocked
                        - unenforced
            description: The enforcement verdict for a shadow MCP server, computed server-side from policies, grants, and the recorded decision. state is the canonical compression of who may call the server; the remaining fields name the mechanisms so a client renders wording without re-deriving enforcement.
            required:
                - state
                - allowed_for
                - blocked_for
                - blocking_default
                - decision_coverage
        ShadowMCPInventoryApprovalRequest:
            type: object
            properties:
                evidence_changed_at:
                    type: string
                    description: When the daily recheck first found the permission-relevant evidence differing from what the latest approval rested on. Absent when nothing has drifted; cleared only by a new decision.
                    format: date-time
                id:
                    type: string
                    format: uuid
                requester_count:
                    type: integer
                    description: How many distinct people have asked for this server.
                    format: int64
                standing_decision:
                    type: string
                    description: The latest recorded decision still standing for this server, independent of the request's lifecycle status — a reopened request's prior decision keeps enforcing until re-decided, and clients checking an edit against standing intent must read this rather than status. Absent when nothing was ever decided or the decision was superseded.
                    enum:
                        - approved
                        - denied
                status:
                    type: string
                    description: 'superseded means the latest decision was explicitly displaced by a policy URL-list edit: the history is preserved but no enforcement derives from it until someone re-decides.'
                    enum:
                        - unreviewed
                        - requested
                        - approved
                        - denied
                        - superseded
            description: The MCP approval request tracking review status for a server. Status records the review outcome, which may cover only selected principals; the server's access field reports enforcement state.
            required:
                - id
                - status
                - requester_count
        ShadowMCPInventoryPolicyBypassForm:
            type: object
            properties:
                policy_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                project_id:
                    type: string
                    format: uuid
                server_url:
                    type: string
                    format: uri
            required:
                - project_id
                - server_url
                - policy_ids
        ShadowMCPInventoryRequestSummary:
            type: object
            properties:
                id:
                    type: string
                    format: uuid
                policy_id:
                    type: string
                    format: uuid
                requested_at:
                    type: string
                    format: date-time
                requester_email:
                    type: string
                requester_user_id:
                    type: string
            required:
                - id
                - policy_id
                - requester_user_id
                - requester_email
                - requested_at
        ShadowMCPInventoryServer:
            type: object
            properties:
                access:
                    type: string
                    description: 'Deprecated: read access_summary.state. Kept one release so older clients keep rendering, then removed together with making access_summary required. Note the values themselves are corrected in this release: URLs whose bypass grants cover only part of a policy''s audience now read restricted where they previously read allowed.'
                    enum:
                        - none
                        - allowed
                        - blocked
                        - restricted
                access_summary:
                    $ref: '#/components/schemas/ShadowMCPAccessSummary'
                allowed_policy_ids:
                    type: array
                    items:
                        type: string
                approval_request:
                    $ref: '#/components/schemas/ShadowMCPInventoryApprovalRequest'
                blocked_policy_ids:
                    type: array
                    items:
                        type: string
                    description: Enabled blocking policies that block this server via a risk_policy:block grant (allow_all policies only).
                canonical_server_url:
                    type: string
                first_seen:
                    type: string
                    format: date-time
                last_called:
                    type: string
                    format: date-time
                last_seen:
                    type: string
                    format: date-time
                latest_request:
                    $ref: '#/components/schemas/ShadowMCPInventoryRequestSummary'
                observed_use_count:
                    type: integer
                    format: int64
                request_count:
                    type: integer
                    format: int64
                server_name:
                    type: string
                server_slug:
                    type: string
                target_kind:
                    type: string
                    description: 'What the row identifies: a server URL observed or requested, or a local stdio command known only through its review. Absent means server_url.'
                    enum:
                        - server_url
                        - stdio_command
                top_users:
                    type: array
                    items:
                        type: string
                    description: The users who reached this server most.
                url_host:
                    type: string
                user_count:
                    type: integer
                    description: Distinct users who reached this server.
                    format: int64
            required:
                - canonical_server_url
                - server_slug
                - url_host
                - first_seen
                - last_seen
                - observed_use_count
                - user_count
                - top_users
                - access
                - request_count
                - allowed_policy_ids
                - blocked_policy_ids
        ShadowMCPInventoryURLState:
            type: object
            properties:
                access:
                    type: string
                    description: 'Deprecated: read access_summary.state. Kept one release so older clients keep rendering, then removed together with making access_summary required. Note the values themselves are corrected in this release: URLs whose bypass grants cover only part of a policy''s audience now read restricted where they previously read allowed.'
                    enum:
                        - none
                        - allowed
                        - blocked
                        - restricted
                access_summary:
                    $ref: '#/components/schemas/ShadowMCPAccessSummary'
                allowed_policy_ids:
                    type: array
                    items:
                        type: string
                approval_request:
                    $ref: '#/components/schemas/ShadowMCPInventoryApprovalRequest'
                blocked_policy_ids:
                    type: array
                    items:
                        type: string
                    description: Enabled blocking policies that block this server via a risk_policy:block grant (allow_all policies only).
                latest_request:
                    $ref: '#/components/schemas/ShadowMCPInventoryRequestSummary'
                request_count:
                    type: integer
                    format: int64
            required:
                - access
                - request_count
                - allowed_policy_ids
                - blocked_policy_ids
        ShadowMCPInventoryUser:
            type: object
            properties:
                email:
                    type: string
                last_called:
                    type: string
                    format: date-time
                name:
                    type: string
                observed_use_count:
                    type: integer
                    format: int64
                sources:
                    type: array
                    items:
                        $ref: '#/components/schemas/ShadowMCPInventoryUserSource'
                user_key:
                    type: string
            required:
                - user_key
                - last_called
                - observed_use_count
        ShadowMCPInventoryUserSource:
            type: object
            properties:
                observed_use_count:
                    type: integer
                    format: int64
                source:
                    type: string
            required:
                - source
                - observed_use_count
        ShareSkillRequestBody:
            type: object
            properties:
                skill_id:
                    type: string
                    description: The skill ID.
                    format: uuid
            required:
                - skill_id
        SharedSkill:
            type: object
            properties:
                cache_control:
                    type: string
                    description: The Cache-Control response header.
                content:
                    type: string
                    description: The latest SKILL.md content.
                display_name:
                    type: string
                    description: The user-facing skill name.
                name:
                    type: string
                    description: The normalized skill name.
                referrer_policy:
                    type: string
                    description: The Referrer-Policy response header.
                summary:
                    type: string
                    description: The optional skill summary.
                updated_at:
                    type: string
                    description: When the shared content was last updated.
                    format: date-time
                x_robots_tag:
                    type: string
                    description: The X-Robots-Tag response header.
            description: The public view of a shared skill. It deliberately carries no project, organization, or user identifiers.
            required:
                - name
                - display_name
                - content
                - updated_at
        SharedSkill2:
            type: object
            properties:
                content:
                    type: string
                    description: The latest SKILL.md content.
                display_name:
                    type: string
                    description: The user-facing skill name.
                name:
                    type: string
                    description: The normalized skill name.
                summary:
                    type: string
                    description: The optional skill summary.
                updated_at:
                    type: string
                    description: When the shared content was last updated.
                    format: date-time
            required:
                - name
                - display_name
                - content
                - updated_at
        SigintSensor:
            type: object
            properties:
                created_at:
                    type: string
                    description: Creation time
                    format: date-time
                description:
                    type: string
                    description: Optional author-facing description
                enabled:
                    type: boolean
                    description: Whether the sensor is eligible for evaluation. Disabled sensors remain visible and editable.
                id:
                    type: string
                    description: Sensor ID
                    format: uuid
                input_strategy:
                    type: string
                    description: Message context used for classification. Sliding windows classify the current message with preceding messages ordered by timestamp.
                    enum:
                        - single_message
                        - sliding_window
                instructions:
                    type: string
                    description: Optional framing instructions for classification
                match_expression:
                    type: string
                    description: Boolean CEL predicate over message.role (lowercase user, assistant, system, or tool)
                mode:
                    type: string
                    description: 'How a sensor interprets its ordered signals: independently applicable labels, an exclusive choice, or ordered score levels.'
                    enum:
                        - multi_label
                        - exclusive
                        - ordered_score
                name:
                    type: string
                    description: Display name
                project_id:
                    type: string
                    description: Owning project ID
                    format: uuid
                signal_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: Ordered signal IDs. In ordered_score mode the zero-based array index is the score level.
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                updated_at:
                    type: string
                    description: Last update time
                    format: date-time
                window_size:
                    type: integer
                    description: Sliding window size including the target message, between 2 and 10; defaults to 5
                    format: int64
                    minimum: 2
                    maximum: 10
            description: A project-scoped sensor with ordered live references to custom signals. signal_ids is always present, including when empty.
            required:
                - input_strategy
                - window_size
                - enabled
                - match_expression
                - id
                - project_id
                - name
                - slug
                - mode
                - signal_ids
                - created_at
                - updated_at
        SigintSignal:
            type: object
            properties:
                classifier_criteria:
                    type: string
                    description: Optional criteria describing when this signal applies
                created_at:
                    type: string
                    description: Creation time
                    format: date-time
                description:
                    type: string
                    description: Optional author-facing description
                id:
                    type: string
                    description: Signal ID
                    format: uuid
                name:
                    type: string
                    description: Display name
                project_id:
                    type: string
                    description: Owning project ID
                    format: uuid
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                updated_at:
                    type: string
                    description: Last update time
                    format: date-time
            description: A reusable project-scoped custom signal.
            required:
                - id
                - project_id
                - name
                - slug
                - created_at
                - updated_at
        Skill:
            type: object
            properties:
                classification:
                    type: string
                    description: The skill classification.
                created_at:
                    type: string
                    description: When the skill was created.
                    format: date-time
                display_name:
                    type: string
                    description: The user-facing registry name.
                first_seen_at:
                    type: string
                    description: When this skill was first activated.
                    format: date-time
                has_valid_version:
                    type: boolean
                    description: Whether the skill has at least one valid version available to distribute.
                id:
                    type: string
                    description: The skill ID.
                    format: uuid
                last_seen_at:
                    type: string
                    description: When this skill was most recently activated.
                    format: date-time
                latest_version_id:
                    type: string
                    description: The current version ID, selected by effective promotion time.
                    format: uuid
                name:
                    type: string
                    description: The normalized project-unique skill name.
                project_id:
                    type: string
                    description: The project that owns the skill.
                    format: uuid
                seen_count:
                    type: integer
                    description: The number of reconciled activations observed for this skill.
                    format: int64
                share_token:
                    type: string
                    description: The active public share token, absent when the skill is not shared.
                source_kind:
                    type: string
                    description: How the skill entered the registry.
                summary:
                    type: string
                    description: The optional registry summary.
                tags:
                    type: array
                    items:
                        type: string
                    description: Registry tags for categorizing the skill.
                updated_at:
                    type: string
                    description: When the skill was last updated.
                    format: date-time
                version_count:
                    type: integer
                    description: The number of immutable versions recorded for the skill.
                    format: int64
            description: An active project skill. All API reads return active skills, and archive returns an empty response.
            required:
                - id
                - project_id
                - name
                - display_name
                - source_kind
                - classification
                - tags
                - version_count
                - has_valid_version
                - seen_count
                - created_at
                - updated_at
        SkillAdoption:
            type: object
            properties:
                activations_in_window:
                    type: integer
                    description: Activations observed during the rolling window.
                    format: int64
                distinct_hostnames:
                    type: integer
                    description: Distinct non-empty hostnames that activated the skill during the rolling window.
                    format: int64
                window_end:
                    type: string
                    description: End of the rolling adoption window.
                    format: date-time
                window_start:
                    type: string
                    description: Start of the rolling adoption window.
                    format: date-time
            description: Activation adoption metrics for a skill.
            required:
                - window_start
                - window_end
                - distinct_hostnames
                - activations_in_window
        SkillBreakdownRow:
            type: object
            properties:
                skill_name:
                    type: string
                    description: Skill name
                use_count:
                    type: integer
                    description: Use count for this skill/user combination
                    format: int64
                user_email:
                    type: string
                    description: User email address
            description: Per-(skill, user) aggregated counts
            required:
                - skill_name
                - user_email
                - use_count
        SkillDistribution:
            type: object
            properties:
                assistant_id:
                    type: string
                    description: The assistant that carries the skill.
                    format: uuid
                assistant_name:
                    type: string
                    description: The name of the assistant that carries the skill.
                channel:
                    type: string
                    description: The distribution channel.
                    enum:
                        - plugin
                        - assistant
                created_at:
                    type: string
                    description: When the distribution was created.
                    format: date-time
                created_by_user_id:
                    type: string
                    description: The user that created the distribution.
                id:
                    type: string
                    description: The distribution ID.
                    format: uuid
                pinned_version_id:
                    type: string
                    description: The pinned version, absent when tracking the latest valid version.
                    format: uuid
                plugin_id:
                    type: string
                    description: The plugin that carries the skill.
                    format: uuid
                plugin_name:
                    type: string
                    description: The name of the plugin that carries the skill.
                project_id:
                    type: string
                    description: The project that owns the distribution.
                    format: uuid
                resolved_version_id:
                    type: string
                    description: The version currently targeted by this distribution.
                    format: uuid
                skill_display_name:
                    type: string
                    description: The display name of the distributed skill.
                skill_id:
                    type: string
                    description: The distributed skill ID.
                    format: uuid
                skill_name:
                    type: string
                    description: The canonical name of the distributed skill.
                updated_at:
                    type: string
                    description: When the distribution configuration last changed.
                    format: date-time
            description: An active plugin or assistant distribution of a project skill.
            required:
                - id
                - project_id
                - skill_id
                - skill_name
                - skill_display_name
                - resolved_version_id
                - channel
                - created_by_user_id
                - created_at
                - updated_at
        SkillDrift:
            type: object
            properties:
                active_machines:
                    type: integer
                    description: Machines that activated the skill during the window.
                    format: int64
                drifted_machines:
                    type: integer
                    description: Active machines whose latest attributed activation used another version.
                    format: int64
                indeterminate_machines:
                    type: integer
                    description: Active machines without a version or without one unambiguous target.
                    format: int64
                on_target_machines:
                    type: integer
                    description: Active machines whose latest activation used the target version.
                    format: int64
                target_state:
                    type: string
                    description: Whether the skill has no distribution target, one target, or conflicting targets.
                    enum:
                        - not_distributed
                        - single
                        - ambiguous
                target_version_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: Distinct versions targeted by active plugin distributions.
                window_end:
                    type: string
                    description: End of the active-machine window.
                    format: date-time
                window_start:
                    type: string
                    description: Start of the active-machine window.
                    format: date-time
            description: Active-machine convergence against the skill's plugin distribution target.
            required:
                - window_start
                - window_end
                - target_state
                - target_version_ids
                - active_machines
                - on_target_machines
                - drifted_machines
                - indeterminate_machines
        SkillEditSuggestion:
            type: object
            properties:
                applies_cleanly:
                    type: boolean
                    description: Whether every proposed change still applies to the base version.
                approved_at:
                    type: string
                    description: When the suggestion was approved, when present.
                    format: date-time
                approved_by_user_id:
                    type: string
                    description: The user that approved the suggestion, when present.
                base_version_id:
                    type: string
                    description: The version the suggestion was generated from.
                    format: uuid
                changes:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillEditSuggestionChange'
                    description: The separate changes proposed, each reviewable on its own.
                created_at:
                    type: string
                    description: When the suggestion was created.
                    format: date-time
                feedback_count:
                    type: integer
                    description: Feedback records the suggestion was generated from.
                    format: int64
                feedback_session_count:
                    type: integer
                    description: Distinct sessions that reported the feedback behind the suggestion.
                    format: int64
                id:
                    type: string
                    description: The suggestion ID.
                    format: uuid
                proposed_content:
                    type: string
                    description: The complete SKILL.md content produced by taking every proposed change.
                rationale:
                    type: string
                    description: Why the edit was proposed, covering the suggestion as a whole.
                scored_session_count:
                    type: integer
                    description: Scored sessions considered by the suggestion.
                    format: int64
                skill_display_name:
                    type: string
                    description: The user-facing skill name.
                skill_id:
                    type: string
                    description: The skill targeted by the suggestion.
                    format: uuid
                skill_name:
                    type: string
                    description: The canonical skill name.
                status:
                    type: string
                    description: The suggestion state.
                    enum:
                        - open
                        - approved
                        - dismissed
                        - superseded
                updated_at:
                    type: string
                    description: When the suggestion was last updated.
                    format: date-time
            description: A proposed edit to an existing project skill.
            required:
                - id
                - skill_id
                - skill_name
                - skill_display_name
                - base_version_id
                - changes
                - proposed_content
                - applies_cleanly
                - rationale
                - status
                - feedback_count
                - feedback_session_count
                - scored_session_count
                - created_at
                - updated_at
        SkillEditSuggestionChange:
            type: object
            properties:
                applies_cleanly:
                    type: boolean
                    description: Whether the change still applies.
                created_at:
                    type: string
                    description: When the change was recorded.
                    format: date-time
                feedback_count:
                    type: integer
                    description: Feedback records cited as the reason for this change.
                    format: int64
                feedback_session_count:
                    type: integer
                    description: Distinct sessions that reported the feedback behind this change.
                    format: int64
                id:
                    type: string
                    description: The change ID.
                    format: uuid
                proposed_diff:
                    type: string
                    description: The change as a unified diff against the content the changes before it produce.
                rationale:
                    type: string
                    description: Why this change alone was proposed.
                suggestion_id:
                    type: string
                    description: The suggestion the change belongs to.
                    format: uuid
            description: One self-contained edit proposed by a suggestion, applied and reviewed on its own.
            required:
                - id
                - suggestion_id
                - proposed_diff
                - rationale
                - applies_cleanly
                - feedback_count
                - feedback_session_count
                - created_at
        SkillEfficacyInsight:
            type: object
            properties:
                metrics:
                    $ref: '#/components/schemas/SkillInsightMetrics'
                regression_signal:
                    $ref: '#/components/schemas/SkillEfficacyRegressionSignal'
                skill_id:
                    type: string
                    format: uuid
                versions:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillVersionInsight'
            required:
                - skill_id
                - metrics
                - versions
        SkillEfficacyInsightsResult:
            type: object
            properties:
                from:
                    type: string
                    format: date-time
                insights:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillEfficacyInsight'
                interval_seconds:
                    type: integer
                    format: int64
                next_cursor:
                    type: string
                    description: Cursor for the next page of scored sessions; absent when exhausted.
                scored_sessions:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillEfficacyScoredSession'
                scores_available:
                    type: boolean
                to:
                    type: string
                    format: date-time
            required:
                - from
                - to
                - interval_seconds
                - scores_available
                - insights
                - scored_sessions
        SkillEfficacyMetrics:
            type: object
            properties:
                average_score:
                    type: number
                    format: double
                estimated_minutes_saved_average:
                    type: number
                    format: double
                estimated_minutes_saved_samples:
                    type: integer
                    format: int64
                estimated_minutes_saved_total:
                    type: number
                    format: double
                estimated_turns_saved_average:
                    type: number
                    format: double
                estimated_turns_saved_samples:
                    type: integer
                    format: int64
                estimated_turns_saved_total:
                    type: number
                    format: double
                flag_counts:
                    type: object
                    additionalProperties:
                        type: integer
                        format: int64
                roi_confidence_counts:
                    type: object
                    additionalProperties:
                        type: integer
                        format: int64
                scored_sessions:
                    type: integer
                    format: int64
            required:
                - scored_sessions
                - average_score
                - estimated_turns_saved_total
                - estimated_turns_saved_samples
                - estimated_minutes_saved_total
                - estimated_minutes_saved_samples
                - roi_confidence_counts
                - flag_counts
        SkillEfficacyRegressionSignal:
            type: object
            properties:
                comparable:
                    type: boolean
                current_average_score:
                    type: number
                    format: double
                current_scored_sessions:
                    type: integer
                    format: int64
                current_version_id:
                    type: string
                    format: uuid
                predecessor_average_score:
                    type: number
                    format: double
                predecessor_scored_sessions:
                    type: integer
                    format: int64
                predecessor_version_id:
                    type: string
                    format: uuid
                regression:
                    type: boolean
                window_end:
                    type: string
                    format: date-time
                window_start:
                    type: string
                    format: date-time
            description: The current skill version's efficacy comparison using the server suggestion policy.
            required:
                - comparable
                - regression
                - current_version_id
                - current_average_score
                - current_scored_sessions
                - predecessor_average_score
                - predecessor_scored_sessions
                - window_start
                - window_end
        SkillEfficacyScoredSession:
            type: object
            properties:
                activated_at:
                    type: string
                    format: date-time
                estimated_minutes_saved:
                    type: number
                    format: double
                estimated_turns_saved:
                    type: number
                    format: double
                flags:
                    type: array
                    items:
                        type: string
                gram_chat_id:
                    type: string
                    format: uuid
                id:
                    type: string
                    format: uuid
                rationale:
                    type: string
                roi_confidence:
                    type: string
                    enum:
                        - low
                        - med
                        - high
                score:
                    type: number
                    format: double
                scored_at:
                    type: string
                    format: date-time
                skill_id:
                    type: string
                    format: uuid
                skill_version_id:
                    type: string
                    format: uuid
                surface:
                    type: string
                    enum:
                        - dev
                        - assistant
            required:
                - id
                - skill_id
                - skill_version_id
                - surface
                - activated_at
                - scored_at
                - score
                - rationale
                - flags
        SkillEfficacySettings:
            type: object
            properties:
                enabled:
                    type: boolean
                    description: Whether skill efficacy scoring is enabled.
                is_default:
                    type: boolean
                    description: Whether these values are platform defaults rather than stored organization settings.
                new_version_burst:
                    type: integer
                    description: Lifetime evaluations a new skill version may reserve before the per-skill daily cap applies.
                    format: int64
                    minimum: 0
                    maximum: 10000
                org_daily_cap:
                    type: integer
                    description: Maximum evaluations reserved across the organization each UTC day.
                    format: int64
                    minimum: 0
                    maximum: 10000
                organization_id:
                    type: string
                    description: Organization these settings apply to.
                per_skill_daily_cap:
                    type: integer
                    description: Maximum evaluations reserved per skill each UTC day.
                    format: int64
                    minimum: 0
                    maximum: 10000
            description: Per-organization sampling settings for skill efficacy scoring.
            required:
                - organization_id
                - enabled
                - per_skill_daily_cap
                - org_daily_cap
                - new_version_burst
                - is_default
        SkillFeedback:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the feedback was recorded.
                    format: date-time
                id:
                    type: string
                    description: The feedback ID.
                    format: uuid
                note:
                    type: string
                    description: An optional feedback note.
                outcome:
                    type: string
                    description: The reported skill feedback outcome.
                    enum:
                        - helped
                        - partially_helped
                        - did_not_help
                        - misleading
                        - harmful
                reviewed_at:
                    type: string
                    description: When automated suggestion analysis reviewed this feedback.
                    format: date-time
                skill_version_id:
                    type: string
                    description: The attributed skill version, when known.
                    format: uuid
                source:
                    type: string
                    description: Where skill feedback was recorded.
            description: A privacy-minimized feedback row for a skill.
            required:
                - id
                - source
                - outcome
                - created_at
        SkillFeedbackCounts:
            type: object
            properties:
                did_not_help:
                    type: integer
                    format: int64
                harmful:
                    type: integer
                    format: int64
                helped:
                    type: integer
                    format: int64
                misleading:
                    type: integer
                    format: int64
                partially_helped:
                    type: integer
                    format: int64
                total:
                    type: integer
                    format: int64
            description: All-time outcome counts for resolved feedback on a skill.
            required:
                - total
                - helped
                - partially_helped
                - did_not_help
                - misleading
                - harmful
        SkillFeedbackMetrics:
            type: object
            properties:
                activations_in_window:
                    type: integer
                    description: Resolved skill activations during the collection window.
                    format: int64
                converted:
                    type: integer
                    description: All-time feedback linked to a generated suggestion.
                    format: int64
                feedback_activations_in_window:
                    type: integer
                    description: Resolved activations paired to feedback during the collection window.
                    format: int64
                feedback_in_window:
                    type: integer
                    description: Feedback recorded during the collection window.
                    format: int64
                unreviewed:
                    type: integer
                    description: Feedback not yet reviewed by suggestion analysis.
                    format: int64
                window_end:
                    type: string
                    description: The end of the rolling collection window.
                    format: date-time
                window_start:
                    type: string
                    description: The start of the rolling collection window.
                    format: date-time
            description: Feedback collection and suggestion conversion metrics for a skill.
            required:
                - window_start
                - window_end
                - feedback_in_window
                - activations_in_window
                - feedback_activations_in_window
                - unreviewed
                - converted
        SkillFeedbackPayload:
            type: object
            properties:
                note:
                    type: string
                    description: Optional concise context about the outcome.
                    maxLength: 4000
                outcome:
                    type: string
                    description: How the skill affected the task.
                    enum:
                        - helped
                        - partially_helped
                        - did_not_help
                        - misleading
                        - harmful
                schema_version:
                    type: string
                    description: Contract version.
                    enum:
                        - hook.skill-feedback.v1
                skill:
                    type: string
                    description: Canonical name of the skill that was used.
                    pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                    minLength: 1
                    maxLength: 64
            description: Agent-volunteered feedback about a distributed skill.
            required:
                - schema_version
                - skill
                - outcome
        SkillFeedbackTimelinePoint:
            type: object
            properties:
                bucket_start:
                    type: string
                    description: The start of the UTC day.
                    format: date-time
                feedback_count:
                    type: integer
                    format: int64
            description: Feedback volume for one UTC day.
            required:
                - bucket_start
                - feedback_count
        SkillInsightMetrics:
            type: object
            properties:
                activated_sessions:
                    type: integer
                    format: int64
                activations:
                    type: integer
                    format: int64
                average_session_cost_usd:
                    type: number
                    format: double
                efficacy:
                    $ref: '#/components/schemas/SkillEfficacyMetrics'
                session_cost_usd:
                    type: number
                    format: double
            required:
                - activations
                - activated_sessions
                - session_cost_usd
        SkillInsightPoint:
            type: object
            properties:
                activated_sessions:
                    type: integer
                    format: int64
                activations:
                    type: integer
                    format: int64
                average_score:
                    type: number
                    format: double
                bucket_start:
                    type: string
                    format: date-time
                estimated_minutes_saved:
                    type: number
                    format: double
                scored_sessions:
                    type: integer
                    format: int64
                session_cost_usd:
                    type: number
                    format: double
            required:
                - bucket_start
                - activations
                - activated_sessions
                - session_cost_usd
                - scored_sessions
                - estimated_minutes_saved
        SkillPromptInjectionFinding:
            type: object
            properties:
                confidence:
                    type: number
                    description: The classifier confidence from 0 to 1.
                    format: double
                    minimum: 0
                    maximum: 1
                description:
                    type: string
                    description: Why the current skill version was flagged.
                rule_id:
                    type: string
                    description: The rule that produced the finding.
            description: A prompt-injection finding for the current skill version. Raw matched content is intentionally omitted.
            required:
                - rule_id
                - description
                - confidence
        SkillShareLink:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the share link was created.
                    format: date-time
                token:
                    type: string
                    description: The public share token.
            description: An active public share link for a skill.
            required:
                - token
                - created_at
        SkillSightingTimelinePoint:
            type: object
            properties:
                activation_count:
                    type: integer
                    description: Activations observed during the day.
                    format: int64
                bucket_start:
                    type: string
                    description: Start of the UTC day.
                    format: date-time
                skill_version_id:
                    type: string
                    description: The attributed skill version, absent when the observation could not be resolved to a version.
                    format: uuid
            description: A UTC-day activation bucket for one attributed skill version.
            required:
                - bucket_start
                - activation_count
        SkillSuggestionApprovalItem:
            type: object
            properties:
                message:
                    type: string
                    description: A safe explanation for a conflict or failure.
                outcome:
                    type: string
                    description: The item's processing outcome.
                    enum:
                        - applied
                        - superseded
                        - conflict
                        - failed
                resulting_version_id:
                    type: string
                    description: The created version for an applied item.
                    format: uuid
                skill_display_name:
                    type: string
                    description: The user-facing skill name.
                skill_id:
                    type: string
                    description: The targeted skill ID.
                    format: uuid
                skill_name:
                    type: string
                    description: The canonical skill name.
                suggestion_id:
                    type: string
                    description: The suggestion ID.
                    format: uuid
            description: The result of one item in a bulk suggestion approval.
            required:
                - suggestion_id
                - skill_id
                - skill_name
                - skill_display_name
                - outcome
        SkillSummary:
            type: object
            properties:
                skill_name:
                    type: string
                    description: Skill name (extracted from tool name)
                unique_users:
                    type: integer
                    description: Number of unique users who used this skill
                    format: int64
                use_count:
                    type: integer
                    description: Total number of times this skill was used
                    format: int64
            description: Aggregated skills metrics for a single skill
            required:
                - skill_name
                - use_count
                - unique_users
        SkillTimeSeriesPoint:
            type: object
            properties:
                bucket_start_ns:
                    type: string
                    description: Bucket start time in Unix nanoseconds (string for JS int64 precision)
                event_count:
                    type: integer
                    description: Number of skill use events in this bucket
                    format: int64
                skill_name:
                    type: string
                    description: Skill name
            description: A single time-series bucket for skill usage activity
            required:
                - bucket_start_ns
                - skill_name
                - event_count
        SkillValidationError:
            type: object
            properties:
                code:
                    type: string
                    description: A stable validation error code.
                field:
                    type: string
                    description: The manifest field associated with the problem.
                message:
                    type: string
                    description: A human-readable explanation of the problem.
            description: A validation problem found in an uploaded skill manifest.
            required:
                - code
                - field
                - message
        SkillVersion:
            type: object
            properties:
                canonical_sha256:
                    type: string
                    description: The SHA-256 manifest digest derived from canonicalized SKILL.md content.
                content:
                    type: string
                    description: The exact uploaded SKILL.md content.
                created_at:
                    type: string
                    description: When this immutable version was recorded.
                    format: date-time
                created_by_user_id:
                    type: string
                    description: The user that recorded this version.
                derived_from_version_id:
                    type: string
                    description: The source version this version was derived from.
                    format: uuid
                description:
                    type: string
                    description: The optional description from this manifest version.
                first_seen_at:
                    type: string
                    description: When this exact version was first activated.
                    format: date-time
                frontmatter:
                    type: object
                    description: All top-level frontmatter fields parsed from this manifest version.
                    additionalProperties: true
                id:
                    type: string
                    description: The skill version ID.
                    format: uuid
                last_seen_at:
                    type: string
                    description: When this exact version was most recently activated.
                    format: date-time
                metadata:
                    type: object
                    description: Metadata parsed from this manifest version.
                    additionalProperties: true
                raw_sha256:
                    type: string
                    description: The SHA-256 digest of the exact uploaded SKILL.md content.
                seen_count:
                    type: integer
                    description: The number of activations attributed to this exact version.
                    format: int64
                skill_id:
                    type: string
                    description: The skill that owns this version.
                    format: uuid
                spec_valid:
                    type: boolean
                    description: Whether this manifest version conforms to the Agent Skills specification.
                validation_errors:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillValidationError'
                    description: Specification validation problems recorded for this manifest version.
            description: An immutable version of a skill manifest.
            required:
                - id
                - skill_id
                - content
                - canonical_sha256
                - raw_sha256
                - metadata
                - frontmatter
                - spec_valid
                - validation_errors
                - created_at
                - created_by_user_id
                - seen_count
        SkillVersionInsight:
            type: object
            properties:
                metrics:
                    $ref: '#/components/schemas/SkillInsightMetrics'
                skill_version_id:
                    type: string
                    format: uuid
                trend:
                    type: array
                    items:
                        $ref: '#/components/schemas/SkillInsightPoint'
            required:
                - skill_version_id
                - metrics
                - trend
        SlackDirectoryConnection:
            type: object
            properties:
                directory_status:
                    type: string
                    description: Whether a snapshot belongs to the usable current authorization.
                    enum:
                        - never_synced
                        - current
                        - stale
                disconnected_at:
                    type: string
                    description: When credentials were removed.
                    format: date-time
                generation:
                    type: string
                    description: Connection generation used to reject stale changes.
                    format: uuid
                granted_scopes:
                    type: array
                    items:
                        type: string
                    description: Permissions granted by Slack.
                id:
                    type: string
                    description: Durable organization workspace connection ID.
                    format: uuid
                last_error_code:
                    type: string
                    description: Bounded authorization failure code, when known.
                last_full_sync_succeeded_at:
                    type: string
                    description: Last complete directory publication, possibly from an earlier authorization.
                    format: date-time
                last_sync_failed_at:
                    type: string
                    description: Most recent failed attempt; may precede a successful sync.
                    format: date-time
                last_sync_started_at:
                    type: string
                    description: Start of the latest attempted sync.
                    format: date-time
                member_count:
                    type: integer
                    description: Members observed in the last complete snapshot, including guests and bots.
                    format: int64
                status:
                    type: string
                    description: Authorization status, independent of directory sync.
                    enum:
                        - connected
                        - disconnected
                        - reconnect_required
                sync_members:
                    type: integer
                    description: Verified members fetched in the current attempt.
                    format: int64
                sync_pages:
                    type: integer
                    description: Completed pages in the current attempt.
                    format: int64
                sync_phase:
                    type: string
                    description: Bounded progress phase while syncing.
                sync_status:
                    type: string
                    description: Latest workflow state. Unknown means progress could not be checked.
                    enum:
                        - idle
                        - queued
                        - running
                        - retrying
                        - failed
                        - unknown
                updated_at:
                    type: string
                    description: Last connection change timestamp.
                    format: date-time
                workspace_id:
                    type: string
                    description: Verified Slack workspace ID.
                workspace_name:
                    type: string
                    description: Workspace display name from Slack.
            description: An organization Slack workspace authorization. Authorization does not indicate directory sync or invocation protection.
            required:
                - id
                - workspace_id
                - workspace_name
                - status
                - generation
                - granted_scopes
                - updated_at
                - member_count
                - directory_status
                - sync_status
        SlackDirectoryMember:
            type: object
            properties:
                connection_id:
                    type: string
                    description: Connection that observed this workspace member.
                    format: uuid
                display_name:
                    type: string
                    description: Optional observed display name.
                email:
                    type: string
                    description: Observed email; never evidence of a confirmed Speakeasy identity.
                id:
                    type: string
                    description: Durable membership ID.
                    format: uuid
                last_seen_at:
                    type: string
                    description: Latest published observation.
                    format: date-time
                mapping:
                    $ref: '#/components/schemas/SlackIdentityMapping'
                mapping_conflict_detected_at:
                    type: string
                    description: When the finding was first recorded.
                    format: date-time
                mapping_conflict_reason:
                    type: string
                    description: Sticky directory review finding, cleared only by an admin decision.
                mapping_revision:
                    type: integer
                    description: Version of admin mapping decisions, independent of directory sync.
                    format: int64
                mapping_status:
                    type: string
                    description: Mapping state, separate from source state and freshness.
                    enum:
                        - unmapped
                        - mapped
                        - needs_review
                member_type:
                    type: string
                    description: Observed account type.
                    enum:
                        - person
                        - guest
                        - single_channel_guest
                        - bot
                        - unknown
                observation_token:
                    type: string
                    description: Opaque token for the directory evidence reviewed by the administrator.
                observed_in_last_sync:
                    type: boolean
                    description: Whether this row was present in its workspace's last complete snapshot.
                slack_user_id:
                    type: string
                    description: Slack workspace user ID.
                status:
                    type: string
                    description: Observed account state.
                    enum:
                        - active
                        - deactivated
                        - invited
                        - unknown
                workspace_id:
                    type: string
                    description: Verified member workspace.
                workspace_name:
                    type: string
                    description: Workspace display name.
            required:
                - mapping_revision
                - observation_token
                - mapping_status
                - id
                - connection_id
                - workspace_id
                - workspace_name
                - slack_user_id
                - status
                - member_type
                - last_seen_at
                - observed_in_last_sync
        SlackIdentityMapping:
            type: object
            properties:
                active:
                    type: boolean
                    description: Whether the person and organization membership are active.
                display_name:
                    type: string
                    description: Person's current display name.
                email:
                    type: string
                    description: Person's current email.
                id:
                    type: string
                    description: Immutable confirmation ID.
                    format: uuid
                photo_url:
                    type: string
                    description: Person's avatar URL.
                user_id:
                    type: string
                    description: Existing organization person ID.
            required:
                - id
                - user_id
                - display_name
                - email
                - active
        SlackPersonAccount:
            type: object
            properties:
                directory_status:
                    type: string
                    description: Freshness of the workspace snapshot, independent of mapping state.
                    enum:
                        - never_synced
                        - current
                        - stale
                last_full_sync_succeeded_at:
                    type: string
                    description: Last complete directory publication, possibly from an earlier authorization.
                    format: date-time
                member:
                    $ref: '#/components/schemas/SlackDirectoryMember'
            description: An existing admin-confirmed workspace membership for one active organization person. Read-only and grants no permissions. The shared member view includes revision and evidence fields; using them to change a mapping still requires organization administration.
            required:
                - member
                - directory_status
        SourceEnvironmentLink:
            type: object
            properties:
                environment_id:
                    type: string
                    description: The ID of the environment
                    format: uuid
                id:
                    type: string
                    description: The ID of the source environment link
                    format: uuid
                source_kind:
                    type: string
                    description: The kind of source that can be linked to an environment
                    enum:
                        - http
                        - function
                source_slug:
                    type: string
                    description: The slug of the source
            description: A link between a source and an environment
            required:
                - id
                - source_kind
                - source_slug
                - environment_id
        SpendBreakdownResponse:
            type: object
            properties:
                availability:
                    type: string
                    description: Whether spend estimates are available for the organization's plan
                    enum:
                        - available
                        - unsupported_plan
                billing_cycles:
                    type: array
                    items:
                        $ref: '#/components/schemas/MeterUsageWindow'
                    description: Trailing twelve billing-cycle date windows
                currency:
                    type: string
                    enum:
                        - USD
                pricing_basis:
                    type: string
                    enum:
                        - current_payg_list_price
                products:
                    type: array
                    items:
                        $ref: '#/components/schemas/SpendProduct'
                    description: The three metered PAYG products in stable display order when available; empty when availability is unsupported_plan
                queried_at:
                    type: string
                    description: Retrieval timestamp used to distinguish current and future buckets
                    format: date-time
                total_cost_usd:
                    type: string
                    description: Exact estimated total at current PAYG list prices; zero when availability is unsupported_plan, meaning no estimate was calculated
                window:
                    $ref: '#/components/schemas/MeterUsageWindow'
            required:
                - availability
                - window
                - billing_cycles
                - currency
                - pricing_basis
                - queried_at
                - total_cost_usd
                - products
        SpendBucket:
            type: object
            properties:
                cost_usd:
                    type: string
                    description: Exact estimated cost at current PAYG list prices
                from:
                    type: string
                    description: Inclusive bucket boundary
                    format: date-time
                quantity:
                    type: string
                    description: Exact integer ordinary usage quantity as a decimal string
                to:
                    type: string
                    description: Exclusive bucket boundary
                    format: date-time
            required:
                - from
                - to
                - quantity
                - cost_usd
        SpendCap:
            type: object
            properties:
                key_type:
                    type: string
                    description: The platform-managed inference key whose cap is reported
                    enum:
                        - chat
                        - internal
                monthly_credits:
                    type: integer
                    description: The monthly inference spend cap in USD
                    format: int64
                    minimum: 1
                    maximum: 10000
            required:
                - key_type
                - monthly_credits
        SpendProduct:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/SpendBucket'
                    description: Dense UTC daily product buckets, including in-progress and future days
                cost_usd:
                    type: string
                    description: Exact estimated product cost at current PAYG list prices
                id:
                    type: string
                    enum:
                        - agent_session_storage
                        - risk_content_scans
                        - mcp_egress
                label:
                    type: string
                quantity:
                    type: string
                    description: Exact integer ordinary usage quantity as a decimal string
                rate_quantity:
                    type: string
                    description: Exact integer quantity to which rate_usd applies
                rate_usd:
                    type: string
                    description: Exact current PAYG USD list price
                unit:
                    type: string
                    enum:
                        - stokens
                        - bytes
            required:
                - id
                - label
                - unit
                - quantity
                - rate_quantity
                - rate_usd
                - cost_usd
                - buckets
        SpendRule:
            type: object
            properties:
                action:
                    type: string
                    description: 'Rule action: flag (record events only) or block (deny agent traffic on breach).'
                    enum:
                        - flag
                        - block
                created_at:
                    type: string
                    description: When the rule was created.
                    format: date-time
                description:
                    type: string
                    description: Description of what the rule covers. Empty when unset.
                enabled:
                    type: boolean
                    description: Whether the rule is active.
                id:
                    type: string
                    description: 'The budget rule ID. Identifies one immutable version row: edits produce a successor row with a fresh ID.'
                    format: uuid
                limit_usd:
                    type: number
                    description: Per-person budget in USD for one window.
                    format: double
                name:
                    type: string
                    description: The rule name.
                organization_id:
                    type: string
                    description: The organization ID.
                rule_expr:
                    type: string
                    description: CEL boolean expression over actor usage that identifies a budget breach for matched members.
                slug:
                    type: string
                    description: URL-safe identifier derived from the name at creation time. Unique per organization and immutable; the rule URN embeds it.
                target:
                    $ref: '#/components/schemas/SpendRuleTargetCondition'
                target_expr:
                    type: string
                    description: CEL boolean expression over member attributes (email, directory attributes, groups, roles) selecting who the rule applies to.
                updated_at:
                    type: string
                    description: When the rule was last updated.
                    format: date-time
                urn:
                    type: string
                    description: Versioned rule URN, e.g. spend_rule:eng-monthly-cap:v3. Pins the exact rule configuration that produced an event.
                version:
                    type: integer
                    description: Position of this row in its slug lineage; every edit archives the current row and creates version + 1.
                    format: int64
                warn_at_pct:
                    type: integer
                    description: Percentage of the limit at which a warning event is emitted.
                    format: int64
                window_kind:
                    type: string
                    description: UTC calendar window the budget covers.
                    enum:
                        - daily
                        - weekly
                        - monthly
            required:
                - id
                - urn
                - organization_id
                - name
                - slug
                - description
                - target
                - target_expr
                - rule_expr
                - limit_usd
                - window_kind
                - warn_at_pct
                - action
                - enabled
                - version
                - created_at
                - updated_at
        SpendRuleActorUsage:
            type: object
            properties:
                breached:
                    type: boolean
                    description: Whether the rule expression currently matches this actor usage.
                display_name:
                    type: string
                    description: Actor display name, when known.
                email:
                    type: string
                    description: Actor email.
                limit_usd:
                    type: number
                    description: Per-person budget in USD.
                    format: double
                spend_usd:
                    type: number
                    description: Actor spend in USD within the current window.
                    format: double
                used_pct:
                    type: number
                    description: Spend as a percentage of the limit (may exceed 100).
                    format: double
                user_id:
                    type: string
                    description: Speakeasy user ID of the actor, when linked.
            required:
                - email
                - spend_usd
                - limit_usd
                - used_pct
                - breached
        SpendRuleEvent:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the event was recorded.
                    format: date-time
                display_name:
                    type: string
                    description: Actor display name, when known.
                email:
                    type: string
                    description: Actor email.
                event_type:
                    type: string
                    description: Event type.
                    enum:
                        - warning
                        - breach
                id:
                    type: string
                    description: The event ID.
                    format: uuid
                limit_usd:
                    type: number
                    description: Per-person budget in USD the rule granted at the pinned version.
                    format: double
                rule_id:
                    type: string
                    description: ID of the exact rule version row that produced the event.
                    format: uuid
                rule_name:
                    type: string
                    description: Name of the rule as of the version that fired.
                rule_urn:
                    type: string
                    description: Versioned rule URN pinning the config that produced the event.
                spend_usd:
                    type: number
                    description: Actor spend in USD at evaluation time.
                    format: double
                user_id:
                    type: string
                    description: Speakeasy user ID of the actor, when linked.
                window_end:
                    type: string
                    description: Exclusive end of the budget window; the budget resets at this instant.
                    format: date-time
                window_start:
                    type: string
                    description: Inclusive start of the budget window.
                    format: date-time
            required:
                - id
                - rule_id
                - rule_urn
                - rule_name
                - event_type
                - email
                - spend_usd
                - limit_usd
                - window_start
                - window_end
                - created_at
        SpendRuleTargetCondition:
            type: object
            properties:
                attribute:
                    type: string
                    description: Member attribute name.
                operator:
                    type: string
                    description: 'Comparison operator: equals, not_equals, starts_with, ends_with, contains, matches, or includes.'
                value:
                    type: string
                    description: Comparison value.
            required:
                - attribute
                - operator
                - value
        SpendRuleUsage:
            type: object
            properties:
                budget_usd:
                    type: number
                    description: Total budgeted spend in USD (per-person limit times matched users).
                    format: double
                matched_users:
                    type: integer
                    description: Number of organization members the rule currently matches.
                    format: int64
                rule_id:
                    type: string
                    description: The budget rule ID.
                    format: uuid
                spend_usd:
                    type: number
                    description: Total spend in USD across matched users within the current window.
                    format: double
                status:
                    type: string
                    description: Derived rule status from the worst matched actor.
                    enum:
                        - healthy
                        - approaching
                        - flagging
                        - blocking
                users_breached:
                    type: integer
                    description: Matched users at or past the limit.
                    format: int64
                users_warned:
                    type: integer
                    description: Matched users at or past the warning threshold but under the limit.
                    format: int64
                worst_used_pct:
                    type: number
                    description: Highest per-actor usage percentage across matched users (may exceed 100).
                    format: double
            required:
                - rule_id
                - matched_users
                - users_warned
                - users_breached
                - spend_usd
                - budget_usd
                - worst_used_pct
                - status
        SpendRulesOverviewResult:
            type: object
            properties:
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/SpendRuleUsage'
                    description: Current-window usage per enabled rule.
                rules_total:
                    type: integer
                    description: Total enabled rules.
                    format: int64
                rules_unhealthy:
                    type: integer
                    description: Enabled rules whose status is not healthy.
                    format: int64
                spend_over_budget_usd:
                    type: number
                    description: Current spend over planned budget in USD, summed across actors over their per-person limits.
                    format: double
                total_budget_usd:
                    type: number
                    description: Total budgeted spend in USD across enabled rules (per-person limits times matched users).
                    format: double
                total_spend_usd:
                    type: number
                    description: Spend in USD across all users matched by enabled rules, in each rule's current window.
                    format: double
                users_breached:
                    type: integer
                    description: Distinct users at or past the limit of at least one enabled rule.
                    format: int64
                users_total:
                    type: integer
                    description: Distinct users matched by at least one enabled rule.
                    format: int64
            required:
                - total_spend_usd
                - total_budget_usd
                - users_breached
                - users_total
                - rules_unhealthy
                - rules_total
                - spend_over_budget_usd
                - rules
        StartOnboardingRequestBody:
            type: object
            properties:
                source_surface:
                    type: string
                    description: Bounded dashboard surface that opened setup.
                    enum:
                        - platform_mcp_settings
                        - organization_setup
                        - platform_plugins
                        - sidebar_footer
                        - sources_empty
                        - project_overview_zero_data
                        - organization_home
        StartTrialRequestBody:
            type: object
            properties:
                days:
                    type: integer
                    description: Number of days the trial runs for, counted from now.
                    format: int64
                    minimum: 1
                    maximum: 365
                id:
                    type: string
                    description: Organization ID.
                    minLength: 1
            required:
                - id
                - days
        StripeSubscription:
            type: object
            properties:
                cancel_at:
                    type: string
                    description: Scheduled cancellation time, when present
                    format: date-time
                cancel_at_period_end:
                    type: boolean
                    description: Whether Stripe will cancel the subscription at the end of the current period
                canceled_at:
                    type: string
                    description: Time cancellation was requested or completed, when present
                    format: date-time
                current_period_end:
                    type: string
                    description: End of the current Stripe service period (exclusive)
                    format: date-time
                current_period_start:
                    type: string
                    description: Start of the current Stripe service period
                    format: date-time
                discount_description:
                    type: string
                    description: Verified terms of a currently applied Stripe subscription discount; absent when unsupported or inactive
                discount_ends_at:
                    type: string
                    description: Discount expiration reported by Stripe, when present
                    format: date-time
                gateway_promotion_applied:
                    type: boolean
                    description: Whether the live discount and gateway price verify the monthly five GiB promotion
                payment_failed:
                    type: boolean
                    description: Whether a past-due subscription has an open latest invoice with an unpaid balance
                status:
                    type: string
                    description: The live Stripe subscription status
                    enum:
                        - incomplete
                        - incomplete_expired
                        - trialing
                        - active
                        - past_due
                        - canceled
                        - unpaid
                        - paused
                trial_end:
                    type: string
                    description: End of the Stripe trial, when one is configured
                    format: date-time
                trial_start:
                    type: string
                    description: Start of the Stripe trial, when the subscription is trialing
                    format: date-time
            required:
                - status
                - current_period_start
                - current_period_end
                - cancel_at_period_end
                - payment_failed
        SubmitFeedbackRequestBody:
            type: object
            properties:
                feedback:
                    type: string
                    description: 'User feedback: success or failure'
                    enum:
                        - success
                        - failure
                id:
                    type: string
                    description: The ID of the chat
            required:
                - id
                - feedback
        SubmitIdentityProviderConnectionClientIDRequestBody:
            type: object
            properties:
                client_id:
                    type: string
                    description: Okta application client ID (0oa...).
                client_secret:
                    type: string
                    description: Client secret from the Speakeasy integration installed from the Okta Integration Network. Required for connections created with listing_mode oin; rejected otherwise. Encrypted before persisting and never returned.
                id:
                    type: string
                    description: Connection ID.
                    format: uuid
            required:
                - id
                - client_id
        SubmitOnboardingSurveyRequestBody:
            type: object
            properties:
                use_case:
                    type: string
                    description: Use case the survey answers resolved to.
            required:
                - use_case
        SubmitRiskBlockFeedbackRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The block ID (the underlying risk result ID).
                    format: uuid
                sentiment:
                    type: string
                    description: Feedback sentiment.
                    enum:
                        - up
                        - down
            required:
                - id
                - sentiment
        SuggestCustomDetectionRuleRequestBody:
            type: object
            properties:
                existing_rule_ids:
                    type: array
                    items:
                        type: string
                    description: Existing built-in and custom rule ids the suggested id must avoid colliding with.
                prompt:
                    type: string
                    description: Natural-language description of what the rule should detect.
                    minLength: 3
                    maxLength: 500
            required:
                - prompt
        SuggestCustomDetectionRuleResult:
            type: object
            properties:
                description:
                    type: string
                    description: Description of what the rule detects and why it matters.
                detection_expr:
                    type: string
                    description: Suggested CEL detection predicate.
                regex:
                    type: string
                    description: Deprecated legacy regex suggestion; superseded by detection_expr. Present for backward compatibility.
                rule_id:
                    type: string
                    description: Suggested stable identifier, prefixed with `custom.`.
                severity:
                    type: string
                    description: Suggested severity level.
                    enum:
                        - info
                        - low
                        - medium
                        - high
                        - critical
                title:
                    type: string
                    description: Short, human-friendly title for the rule.
            required:
                - rule_id
                - title
                - description
                - regex
                - severity
        SuggestExclusionRequestBody:
            type: object
            properties:
                finding_ids:
                    type: array
                    items:
                        type: string
                    description: IDs of example findings (e.g. a multiselect batch) to derive a suggestion from. Looked up server-side rather than trusted from the client, but only rule_id/source cross into the suggestion — a finding's matched value (a detected secret/PII value the caller hasn't reviewed) is never read for this, so batch-derived suggestions are rule_id/source scoped rather than exact-value. Optional when prompt is provided.
                    maxItems: 50
                known_rule_ids:
                    type: array
                    items:
                        type: string
                    description: Built-in and custom rule ids the suggestion may reference in rule_id filters.
                prompt:
                    type: string
                    description: Natural-language description of the findings to stop flagging. Optional when finding_ids is provided.
                    minLength: 3
                    maxLength: 500
        SuggestExclusionResult:
            type: object
            properties:
                match_type:
                    type: string
                    description: How match_value is interpreted (exact, regex, rule_id, source, entity_type).
                match_value:
                    type: string
                    description: The value matched against findings, interpreted per match_type.
                rule_id_filter:
                    type: string
                    description: Only apply within this rule_id. Empty means any.
                source_filter:
                    type: string
                    description: Only apply within this source. Empty means any.
            required:
                - match_type
                - match_value
        SuggestRiskPolicyRequestBody:
            type: object
            properties:
                prompt:
                    type: string
                    description: Plain-language description of what the policy should catch or prevent.
                    minLength: 3
                    maxLength: 500
            required:
                - prompt
        SuggestRiskPolicyResult:
            type: object
            properties:
                action:
                    type: string
                    description: Suggested enforcement action.
                    enum:
                        - flag
                        - warn
                        - block
                        - quarantine
                alternatives:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskPresetMatch'
                    description: Other presets that partially matched, best first.
                confidence:
                    type: number
                    description: Fit between 0 and 1; 0 for a bespoke draft.
                    format: double
                name:
                    type: string
                    description: Suggested policy name.
                policy_type:
                    type: string
                    description: Policy type of the draft.
                    enum:
                        - standard
                        - prompt_based
                preset_id:
                    type: string
                    description: Matched preset identifier; empty when the draft is a bespoke prompt-based guardrail.
                presidio_entities:
                    type: array
                    items:
                        type: string
                    description: Presidio entities for a standard draft that includes presidio.
                prompt:
                    type: string
                    description: Judge instruction for a prompt-based draft; empty otherwise.
                rationale:
                    type: string
                    description: Why this draft was chosen.
                score:
                    type: number
                    description: Suggested CVSS-style severity (0.1-10).
                    format: double
                sources:
                    type: array
                    items:
                        type: string
                    description: Detector sources for a standard draft; empty for prompt-based drafts.
                user_message:
                    type: string
                    description: Suggested user-facing message when the policy warns or blocks; empty when none.
            description: A policy draft derived from a plain-language description. The fields mirror createRiskPolicy so the dashboard can prefill the create form.
            required:
                - preset_id
                - policy_type
                - name
                - action
                - score
                - sources
                - presidio_entities
                - prompt
                - user_message
                - rationale
                - confidence
                - alternatives
        SummarizeChatResult:
            type: object
            properties:
                cached:
                    type: boolean
                    description: True when an existing summary was returned without regenerating
                summary:
                    type: string
                    description: The session summary text
                summary_generated_at:
                    type: string
                    description: When the summary was last generated.
                    format: date-time
            required:
                - summary
                - summary_generated_at
                - cached
        SummarizeRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the chat to summarize
                    format: uuid
                regenerate:
                    type: boolean
                    description: When true, regenerate and overwrite any existing summary. Defaults to false.
                    default: false
            required:
                - id
        SummarizeToolCallRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the chat containing the tool call
                    format: uuid
                message_id:
                    type: string
                    description: The ID of the assistant message containing the tool call
                    format: uuid
                tool_call_id:
                    type: string
                    description: The provider-assigned ID of the tool call
            required:
                - id
                - message_id
                - tool_call_id
        SummarizeToolCallResult:
            type: object
            properties:
                cached:
                    type: boolean
                    description: True when a stored summary was returned without calling the model
                impact:
                    type: string
                    description: Whether the tool call only read data or could change state
                    enum:
                        - read_only
                        - destructive
                summary:
                    type: string
                    description: A concise two-sentence description of the tool call and its effect
            required:
                - summary
                - impact
                - cached
        SupportCapability:
            type: object
            properties:
                group:
                    type: string
                id:
                    type: string
                name:
                    type: string
            required:
                - id
                - name
                - group
        SupportCoverageCell:
            type: object
            properties:
                capability:
                    type: string
                    description: Capability the cell reports on.
                    enum:
                        - session
                        - blocking
                        - identity
                        - cost
                        - shadow
                detail:
                    type: string
                    description: Short qualifier rendered under the value. Empty when there is nothing to qualify.
                last_seen:
                    type: string
                    description: RFC3339 timestamp of the most recent supporting evidence. Absent unless observed.
                    format: date-time
                status:
                    type: string
                    description: Whether evidence was found, absent, or not answerable yet.
                    enum:
                        - observed
                        - none
                        - pending
                surface:
                    type: string
                    description: Consuming surface the cell reports on.
                    enum:
                        - claude_code
                        - claude_chat
                        - cowork
                        - codex
                        - cursor
                        - other
                value:
                    type: integer
                    description: 'Primary measure: sessions, tokens, blocks, attributed sessions or distinct shadow servers depending on the capability. Zero unless observed.'
                    format: int64
            description: Observed evidence for one capability on one surface.
            required:
                - capability
                - surface
                - status
                - value
                - detail
        SupportCoverageResult:
            type: object
            properties:
                cells:
                    type: array
                    items:
                        $ref: '#/components/schemas/SupportCoverageCell'
                    description: One cell per (capability, surface) pair. Always fully populated.
                from:
                    type: string
                    description: RFC3339 start of the observation window.
                    format: date-time
                to:
                    type: string
                    description: RFC3339 end of the observation window.
                    format: date-time
                unmapped:
                    type: array
                    items:
                        $ref: '#/components/schemas/SupportCoverageUnmapped'
                    description: Activity whose hook_source folded to no surface.
                window_days:
                    type: integer
                    description: Length of the observation window in days.
                    format: int64
            description: Observed support coverage for one organization over a fixed window.
            required:
                - cells
                - unmapped
                - window_days
                - from
                - to
        SupportCoverageUnmapped:
            type: object
            properties:
                hook_source:
                    type: string
                    description: The raw, unrecognized hook_source.
                sessions:
                    type: integer
                    description: Sessions observed under it inside the window.
                    format: int64
            description: A hook_source the surface fold did not recognize.
            required:
                - hook_source
                - sessions
        SupportDraft:
            type: object
            properties:
                mappings:
                    type: object
                    additionalProperties:
                        $ref: '#/components/schemas/SupportMapping'
                references:
                    type: object
                    additionalProperties:
                        type: object
                        additionalProperties:
                            $ref: '#/components/schemas/SupportFact'
            required:
                - mappings
                - references
        SupportFact:
            type: object
            properties:
                note:
                    type: string
                    maxLength: 10000
                status:
                    type: string
                    enum:
                        - supported
                        - partial
                        - unimplemented
                        - impossible
                        - na
                        - unknown
                verify:
                    type: boolean
            required:
                - status
                - note
                - verify
        SupportMapping:
            type: object
            properties:
                applicability:
                    type: string
                    enum:
                        - unknown
                        - applicable
                        - na
                conditions:
                    type: string
                    maxLength: 10000
                facts:
                    type: object
                    additionalProperties:
                        $ref: '#/components/schemas/SupportFact'
            required:
                - applicability
                - conditions
                - facts
        SupportMatrix:
            type: object
            properties:
                capabilities:
                    type: array
                    items:
                        $ref: '#/components/schemas/SupportCapability'
                draft:
                    $ref: '#/components/schemas/SupportDraft'
                methods:
                    type: array
                    items:
                        $ref: '#/components/schemas/SupportMethod'
                products:
                    type: array
                    items:
                        $ref: '#/components/schemas/SupportPlatform'
                revision:
                    type: string
            required:
                - methods
                - products
                - capabilities
                - draft
                - revision
        SupportMethod:
            type: object
            properties:
                facts:
                    type: object
                    additionalProperties:
                        $ref: '#/components/schemas/SupportFact'
                id:
                    type: string
                name:
                    type: string
                plans:
                    type: string
                vendor:
                    type: string
            required:
                - id
                - name
                - vendor
                - plans
                - facts
        SupportPlatform:
            type: object
            properties:
                family:
                    type: string
                id:
                    type: string
                name:
                    type: string
                surface:
                    type: string
                vendor:
                    type: string
            required:
                - id
                - name
                - vendor
                - family
                - surface
        SyncDirectoryGroupsResult:
            type: object
            properties:
                group_count:
                    type: integer
                    description: Number of groups WorkOS returned across the organization's directories.
                    format: int64
            required:
                - group_count
        SyncIdentityProviderConnectionApplicationsRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: Connection ID.
                    format: uuid
            required:
                - id
        SyncResponseBody:
            type: object
            properties:
                accepted:
                    type: boolean
                    description: The durable sync was started or already running.
            required:
                - accepted
        SyncSlackDirectoryRequestBody:
            type: object
            properties:
                generation:
                    type: string
                    description: Generation last read by the administrator.
                    format: uuid
                id:
                    type: string
                    description: Connection to sync.
                    format: uuid
            required:
                - id
                - generation
        SyncedAgentUser:
            type: object
            properties:
                email:
                    type: string
                    description: Email the device agent reported on sync. Resolve against org members for display.
                    example: dev@acme.corp
                first_seen_at:
                    type: string
                    description: First time this email was seen syncing the device agent.
                    format: date-time
                last_seen_at:
                    type: string
                    description: Most recent time this email was seen syncing the device agent.
                    format: date-time
            required:
                - email
                - first_seen_at
                - last_seen_at
        TUMPeriod:
            type: object
            properties:
                days:
                    type: array
                    items:
                        $ref: '#/components/schemas/TUMPeriodDay'
                    description: Daily breakdown of TUM within the cycle. Days without usage are omitted.
                period_end:
                    type: string
                    description: End of the billing cycle (exclusive)
                    format: date-time
                period_start:
                    type: string
                    description: Start of the billing cycle
                    format: date-time
                tokens:
                    type: integer
                    description: Tokens under management consumed during the cycle
                    format: int64
            required:
                - period_start
                - period_end
                - tokens
                - days
        TUMPeriodDay:
            type: object
            properties:
                date:
                    type: string
                    description: The UTC day
                    format: date
                tokens:
                    type: integer
                    description: Tokens under management consumed on this day
                    format: int64
            required:
                - date
                - tokens
        TelemetryFilter:
            type: object
            properties:
                deployment_id:
                    type: string
                    description: Deployment ID filter
                    format: uuid
                from:
                    type: string
                    description: Start time in ISO 8601 format (e.g., '2025-12-19T10:00:00Z')
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                function_id:
                    type: string
                    description: Function ID filter
                    format: uuid
                gram_urn:
                    type: string
                    description: Speakeasy URN filter (single URN, use gram_urns for multiple)
                to:
                    type: string
                    description: End time in ISO 8601 format (e.g., '2025-12-19T11:00:00Z')
                    example: "2025-12-19T11:00:00Z"
                    format: date-time
            description: Filter criteria for telemetry queries
        TelemetryLogRecord:
            type: object
            properties:
                attributes:
                    description: Log attributes as JSON object
                body:
                    type: string
                    description: The primary log message
                id:
                    type: string
                    description: Log record ID
                    format: uuid
                observed_time_unix_nano:
                    type: string
                    description: Unix time in nanoseconds when event was observed (string for JS int64 precision)
                resource_attributes:
                    description: Resource attributes as JSON object
                service:
                    $ref: '#/components/schemas/ServiceInfo'
                severity_text:
                    type: string
                    description: Text representation of severity
                span_id:
                    type: string
                    description: W3C span ID (16 hex characters)
                time_unix_nano:
                    type: string
                    description: Unix time in nanoseconds when event occurred (string for JS int64 precision)
                trace_id:
                    type: string
                    description: W3C trace ID (32 hex characters)
            description: OpenTelemetry log record
            required:
                - id
                - time_unix_nano
                - observed_time_unix_nano
                - body
                - attributes
                - resource_attributes
                - service
        TelemetryWindowPayload:
            type: object
            properties:
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    example: "2025-12-19T10:00:00Z"
                    format: date-time
                project_id:
                    type: string
                    description: Optional project to scope to; defaults to every project in the organization.
                    format: uuid
                to:
                    type: string
                    description: End time in ISO 8601 format
                    example: "2025-12-26T10:00:00Z"
                    format: date-time
            description: An org-scoped time window, optionally narrowed to one project
            required:
                - from
                - to
        TestDetectionRuleMatch:
            type: object
            properties:
                confidence:
                    type: number
                    description: Confidence score in the range 0.0 to 1.0.
                    format: double
                description:
                    type: string
                    description: Human-readable description of why this match was flagged.
                end_pos:
                    type: integer
                    description: Exclusive end byte offset of the match in the sample.
                    format: int64
                match:
                    type: string
                    description: Matched substring of the sample.
                rule_id:
                    type: string
                    description: Canonical rule id of the match (may differ from the requested rule id when one input matches multiple rules).
                source:
                    type: string
                    description: Detection source (e.g. `gitleaks`, `presidio`, `prompt_injection`, `custom`).
                start_pos:
                    type: integer
                    description: Inclusive start byte offset of the match in the sample.
                    format: int64
                tags:
                    type: array
                    items:
                        type: string
                    description: Tags from the underlying rule.
            required:
                - rule_id
                - match
                - start_pos
                - end_pos
                - source
                - confidence
        TestDetectionRuleRequestBody:
            type: object
            properties:
                detection_expr:
                    type: string
                    description: CEL detection predicate for `custom.*` rule ids, evaluated against the sample message.
                rule_id:
                    type: string
                    description: Rule identifier to evaluate (e.g. `secret.aws_access_token`, `pii.email_address`, `custom.acme_token`).
                    minLength: 1
                    maxLength: 200
                text:
                    type: string
                    description: Sample text to scan.
                    minLength: 1
                    maxLength: 50000
            required:
                - rule_id
                - text
        TestDetectionRuleResult:
            type: object
            properties:
                matches:
                    type: array
                    items:
                        $ref: '#/components/schemas/TestDetectionRuleMatch'
                    description: Matches the rule found in the sample.
                reason:
                    type: string
                    description: Why the rule isn't supported when `supported` is false.
                supported:
                    type: boolean
                    description: False when the rule has no text-only detector (e.g. `shadow_mcp`, `destructive_tool`).
            required:
                - matches
                - supported
        TierLimits:
            type: object
            properties:
                add_on_bullets:
                    type: array
                    items:
                        type: string
                    description: Add-on items bullets of the tier (optional)
                base_price:
                    type: number
                    description: The base price for the tier
                    format: double
                feature_bullets:
                    type: array
                    items:
                        type: string
                    description: Key feature bullets of the tier
                included_bullets:
                    type: array
                    items:
                        type: string
                    description: Included items bullets of the tier
                included_credits:
                    type: integer
                    description: The number of credits included in the tier for playground and other dashboard activities
                    format: int64
                included_servers:
                    type: integer
                    description: The number of servers included in the tier
                    format: int64
                included_tool_calls:
                    type: integer
                    description: The number of tool calls included in the tier
                    format: int64
                mcp_egress_price_per_gib_usd:
                    type: string
                    description: Exact USD list price per GiB of MCP gateway egress (optional)
                price_per_additional_server:
                    type: number
                    description: The price per additional server
                    format: double
                price_per_additional_tool_call:
                    type: number
                    description: The price per additional tool call
                    format: double
                risk_scan_price_per_million_usd:
                    type: string
                    description: Exact USD list price per million tokens scanned for risk (optional)
                tum_price_per_million_usd:
                    type: string
                    description: Exact USD list price per million tokens under management (optional)
            required:
                - base_price
                - included_tool_calls
                - included_servers
                - included_credits
                - price_per_additional_tool_call
                - price_per_additional_server
                - feature_bullets
                - included_bullets
        TimeSeriesBucket:
            type: object
            properties:
                abandoned_chats:
                    type: integer
                    description: Abandoned chat sessions in this bucket
                    format: int64
                avg_session_duration_ms:
                    type: number
                    description: Average session duration in milliseconds
                    format: double
                avg_tool_latency_ms:
                    type: number
                    description: Average tool latency in milliseconds
                    format: double
                bucket_time_unix_nano:
                    type: string
                    description: Bucket start time in Unix nanoseconds (string for JS precision)
                cache_creation_input_tokens:
                    type: integer
                    description: Sum of cache creation input tokens in this bucket
                    format: int64
                cache_read_input_tokens:
                    type: integer
                    description: Sum of cache read input tokens in this bucket
                    format: int64
                failed_chats:
                    type: integer
                    description: Failed chat sessions in this bucket
                    format: int64
                failed_tool_calls:
                    type: integer
                    description: Failed tool calls in this bucket
                    format: int64
                partial_chats:
                    type: integer
                    description: Partially resolved chat sessions in this bucket
                    format: int64
                resolved_chats:
                    type: integer
                    description: Resolved chat sessions in this bucket
                    format: int64
                total_chats:
                    type: integer
                    description: Total chat sessions in this bucket
                    format: int64
                total_cost:
                    type: number
                    description: Total cost in this bucket
                    format: double
                total_input_tokens:
                    type: integer
                    description: Sum of input tokens in this bucket
                    format: int64
                total_output_tokens:
                    type: integer
                    description: Sum of output tokens in this bucket
                    format: int64
                total_tokens:
                    type: integer
                    description: Sum of all tokens in this bucket
                    format: int64
                total_tool_calls:
                    type: integer
                    description: Total tool calls in this bucket
                    format: int64
            description: A single time bucket for time series metrics
            required:
                - bucket_time_unix_nano
                - total_chats
                - resolved_chats
                - failed_chats
                - partial_chats
                - abandoned_chats
                - total_input_tokens
                - total_output_tokens
                - total_tokens
                - cache_read_input_tokens
                - cache_creation_input_tokens
                - total_cost
                - total_tool_calls
                - failed_tool_calls
                - avg_tool_latency_ms
                - avg_session_duration_ms
        TokenResult:
            type: object
            properties:
                access_token:
                    type: string
                    description: The raw per-user API key (carries the `agent_user` scope). Returned exactly once; store it securely. Presented as the Gram-Key on downstream user-scoped endpoints.
                expires_in:
                    type: integer
                    description: Always zero. The minted key has no expiry (api_keys has no TTL).
                    format: int64
                refresh_token:
                    type: string
                    description: Always empty. The minted key is long-lived and does not refresh; its lifecycle lever is revocation.
                user_email:
                    type: string
                    description: Email the key was minted for.
            description: A minted per-user API key for the device agent.
            required:
                - access_token
                - refresh_token
                - expires_in
                - user_email
        TokensUnderManagement:
            type: object
            properties:
                alert_email:
                    type: string
                    description: Email address to notify on TUM threshold events. Only populated for platform admins.
                billing_cycle_anchor_day:
                    type: integer
                    description: Day of month (1-31) the billing cycle starts, at 00:00 UTC
                    format: int64
                history:
                    type: array
                    items:
                        $ref: '#/components/schemas/TUMPeriod'
                    description: TUM usage per billing cycle for the trailing cycles, oldest first. The last entry is the active cycle.
                monthly_token_limit:
                    type: integer
                    description: The contracted monthly tokens under management limit, if one has been configured
                    format: int64
                period_end:
                    type: string
                    description: End of the active billing cycle (exclusive)
                    format: date-time
                period_start:
                    type: string
                    description: Start of the active billing cycle
                    format: date-time
                tokens:
                    type: integer
                    description: Tokens under management consumed during the active billing cycle
                    format: int64
                tunneled_mcp_server_limit:
                    type: integer
                    description: The contracted tunneled MCP server source cap, if one has been configured
                    format: int64
            required:
                - period_start
                - period_end
                - tokens
                - billing_cycle_anchor_day
                - history
        Tool:
            type: object
            properties:
                external_mcp_tool_definition:
                    $ref: '#/components/schemas/ExternalMCPToolDefinition'
                function_tool_definition:
                    $ref: '#/components/schemas/FunctionToolDefinition'
                http_tool_definition:
                    $ref: '#/components/schemas/HTTPToolDefinition'
                platform_tool_definition:
                    $ref: '#/components/schemas/PlatformToolDefinition'
                prompt_template:
                    $ref: '#/components/schemas/PromptTemplate'
            description: A polymorphic tool - can be an HTTP tool, function tool, prompt template, or external MCP proxy
        ToolAnnotations:
            type: object
            properties:
                destructive_hint:
                    type: boolean
                    description: If true, the tool may perform destructive updates (only meaningful when read_only_hint is false)
                idempotent_hint:
                    type: boolean
                    description: If true, repeated calls with same arguments have no additional effect (only meaningful when read_only_hint is false)
                open_world_hint:
                    type: boolean
                    description: If true, the tool interacts with external entities beyond its local environment
                read_only_hint:
                    type: boolean
                    description: If true, the tool does not modify its environment
                title:
                    type: string
                    description: Human-readable display name for the tool
            description: Tool annotations providing behavioral hints about the tool
        ToolCallSummary:
            type: object
            properties:
                event_source:
                    type: string
                    description: Event source (from attributes.gram.event.source)
                gram_urn:
                    type: string
                    description: Speakeasy URN associated with this tool call
                http_status_code:
                    type: integer
                    description: HTTP status code (if applicable)
                    format: int32
                log_count:
                    type: integer
                    description: Total number of logs in this tool call
                    format: int64
                start_time_unix_nano:
                    type: string
                    description: Earliest log timestamp in Unix nanoseconds (string for JS int64 precision)
                tool_name:
                    type: string
                    description: Tool name (from attributes.gram.tool.name)
                tool_source:
                    type: string
                    description: Tool call source (from attributes.gram.tool_call.source)
                trace_id:
                    type: string
                    description: Trace ID (32 hex characters)
                    pattern: ^[a-f0-9]{32}$
            description: Summary information for a tool call
            required:
                - trace_id
                - start_time_unix_nano
                - log_count
                - gram_urn
        ToolEntry:
            type: object
            properties:
                annotations:
                    $ref: '#/components/schemas/ToolAnnotations'
                http_method:
                    type: string
                    description: HTTP method for HTTP tools (GET, POST, PUT, PATCH, DELETE)
                id:
                    type: string
                    description: The ID of the tool
                name:
                    type: string
                    description: The name of the tool
                tool_urn:
                    type: string
                    description: The URN of the tool
                type:
                    type: string
                    description: The type of tool
                    enum:
                        - http
                        - prompt
                        - function
                        - platform
                        - externalmcp
            required:
                - type
                - id
                - name
                - tool_urn
        ToolFilterScope:
            type: object
            properties:
                tag:
                    type: string
                    description: The filter tag
                tool_count:
                    type: integer
                    description: The number of tools under this scope
                    format: int64
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolFilterTool'
                    description: The tools under this scope
            description: A filter tag ("scope") and the tools reachable when filtering by it via the runtime ?tags= parameter.
            required:
                - tag
                - tool_count
                - tools
        ToolFilterTool:
            type: object
            properties:
                name:
                    type: string
                    description: The display name of the tool, with any variation rename from the resolved group applied (matching the runtime wire)
                tool_urn:
                    type: string
                    description: The URN of the tool
            description: A tool referenced by a tool filter scope, identified by URN and display name.
            required:
                - tool_urn
                - name
        ToolMetadata:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the tool metadata entry was created
                    format: date-time
                deleted_at:
                    type: string
                    description: When the tool metadata entry was deleted. Only present on deleted entries returned by listToolMetadata with include_deleted.
                    format: date-time
                destructive_hint:
                    type: boolean
                    description: Hint that the tool may perform destructive updates to its environment
                idempotent_hint:
                    type: boolean
                    description: Hint that calling the tool repeatedly with the same arguments has no additional effect
                mcp_server_id:
                    type: string
                    description: The ID of the MCP server the tool metadata belongs to
                    format: uuid
                open_world_hint:
                    type: boolean
                    description: Hint that the tool may interact with an open world of external entities
                read_only_hint:
                    type: boolean
                    description: Hint that the tool does not modify its environment
                title:
                    type: string
                    description: A human-readable title for the tool
                tool_name:
                    type: string
                    description: The name of the tool
                updated_at:
                    type: string
                    description: When the tool metadata entry was last updated
                    format: date-time
            description: Stored metadata about a tool exposed by an MCP server. The annotation hints mirror MCP tool annotations and drive annotation-aware authorization.
            required:
                - mcp_server_id
                - tool_name
                - created_at
                - updated_at
        ToolMetadataForm:
            type: object
            properties:
                destructive_hint:
                    type: boolean
                    description: Hint that the tool may perform destructive updates to its environment
                idempotent_hint:
                    type: boolean
                    description: Hint that calling the tool repeatedly with the same arguments has no additional effect
                open_world_hint:
                    type: boolean
                    description: Hint that the tool may interact with an open world of external entities
                read_only_hint:
                    type: boolean
                    description: Hint that the tool does not modify its environment
                title:
                    type: string
                    description: A human-readable title for the tool
                tool_name:
                    type: string
                    description: The name of the tool
            description: A single tool entry in a tool metadata batch.
            required:
                - tool_name
        ToolMetric:
            type: object
            properties:
                avg_latency_ms:
                    type: number
                    description: Average latency in milliseconds
                    format: double
                call_count:
                    type: integer
                    description: Total number of calls
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed calls
                    format: int64
                failure_rate:
                    type: number
                    description: Failure rate (0.0 to 1.0)
                    format: double
                gram_urn:
                    type: string
                    description: Tool URN
                success_count:
                    type: integer
                    description: Number of successful calls
                    format: int64
            description: Aggregated metrics for a single tool
            required:
                - gram_urn
                - call_count
                - success_count
                - failure_count
                - avg_latency_ms
                - failure_rate
        ToolSchemaStaticValue:
            type: object
            properties:
                keyword:
                    type: string
                    description: The JSON Schema keyword containing the value
                schema_path:
                    type: string
                    description: JSON Pointer to the schema object containing the keyword
                value_json:
                    type: string
                    description: JSON-encoded literal value, preserving null and number precision
            description: A literal value carried by a JSON Schema keyword.
            required:
                - schema_path
                - keyword
                - value_json
        ToolSchemaStaticValues:
            type: object
            properties:
                tool_name:
                    type: string
                    description: The tool name
                tool_urn:
                    type: string
                    description: The tool URN
                values:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolSchemaStaticValue'
                    description: Static values in the tool input schema
            description: Static values found in one tool input schema.
            required:
                - tool_urn
                - tool_name
                - values
        ToolUsage:
            type: object
            properties:
                count:
                    type: integer
                    description: Total call count
                    format: int64
                failure_count:
                    type: integer
                    description: Failed calls (4xx/5xx status)
                    format: int64
                success_count:
                    type: integer
                    description: Successful calls (2xx status)
                    format: int64
                urn:
                    type: string
                    description: Tool URN
            description: Tool usage statistics
            required:
                - urn
                - count
                - success_count
                - failure_count
        ToolUsageClientFilterOption:
            type: object
            properties:
                client_key:
                    type: string
                    description: Stable MCP client identity used by filters
                client_label:
                    type: string
                    description: User-facing label for the MCP client
                event_count:
                    type: integer
                    description: Number of tool usage events observed for the MCP client
                    format: int64
            description: MCP client filter option with usage in the selected time window
            required:
                - client_key
                - client_label
                - event_count
        ToolUsageClientSummary:
            type: object
            properties:
                client_key:
                    type: string
                    description: Stable MCP client identity used by filters and chart grouping
                client_label:
                    type: string
                    description: User-facing label for the MCP client
                event_count:
                    type: integer
                    description: Total number of tool usage events for the MCP client
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool usage events for the MCP client
                    format: int64
                failure_rate:
                    type: number
                    description: Fraction of completed tool usage events for the MCP client that failed
                    format: double
                success_count:
                    type: integer
                    description: Number of successful tool usage events for the MCP client
                    format: int64
                unique_tools:
                    type: integer
                    description: Number of distinct tools observed for the MCP client
                    format: int64
            description: Aggregated tool usage metrics for one MCP client
            required:
                - client_key
                - client_label
                - event_count
                - unique_tools
                - success_count
                - failure_count
                - failure_rate
        ToolUsageClientToolBreakdownRow:
            type: object
            properties:
                client_key:
                    type: string
                    description: Stable MCP client identity used by filters and chart grouping
                client_label:
                    type: string
                    description: User-facing label for the MCP client
                event_count:
                    type: integer
                    description: Total number of tool usage events for the MCP client and tool
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool usage events for the MCP client and tool
                    format: int64
                failure_rate:
                    type: number
                    description: Fraction of completed tool usage events for the MCP client and tool that failed
                    format: double
                success_count:
                    type: integer
                    description: Number of successful tool usage events for the MCP client and tool
                    format: int64
                tool_name:
                    type: string
                    description: Observed tool name
            description: Aggregated tool usage metrics for one MCP client and tool
            required:
                - client_key
                - client_label
                - tool_name
                - event_count
                - success_count
                - failure_count
                - failure_rate
        ToolUsageGatewayFilterOption:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Number of tool usage events dispatched through or observed against the gateway
                    format: int64
                meta_mcp_server_id:
                    type: string
                    description: Gateway (meta MCP server) id
                name:
                    type: string
                    description: Gateway display name; a deleted gateway keeps its last name
            description: Gateway (meta MCP server) filter option with usage in the selected time window
            required:
                - meta_mcp_server_id
                - name
                - event_count
        ToolUsageHostedServerFilterOption:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Number of tool usage events observed for the hosted MCP server
                    format: int64
                toolset_name:
                    type: string
                    description: Hosted MCP toolset display name
                toolset_slug:
                    type: string
                    description: Hosted MCP toolset slug
            description: Hosted MCP server filter option with usage in the selected time window
            required:
                - toolset_slug
                - toolset_name
                - event_count
        ToolUsageShadowServerFilterOption:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Number of tool usage events observed for the Shadow MCP server
                    format: int64
                server_name:
                    type: string
                    description: Observed Shadow MCP server name
            description: Shadow MCP server filter option with usage in the selected time window
            required:
                - server_name
                - event_count
        ToolUsageTargetSummary:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Total number of tool usage events for the target
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool usage events for the target
                    format: int64
                failure_rate:
                    type: number
                    description: Fraction of completed tool usage events for the target that failed
                    format: double
                success_count:
                    type: integer
                    description: Number of successful tool usage events for the target
                    format: int64
                target_id:
                    type: string
                    description: Stable target identifier used by filters and chart grouping
                target_kind:
                    type: string
                    description: Tool usage aggregation target kind
                    enum:
                        - server
                        - local_tools
                        - skill
                target_label:
                    type: string
                    description: User-facing label for the target
                target_type:
                    type: string
                    description: Tool usage target type
                    enum:
                        - hosted_mcp_server
                        - tunneled_mcp_server
                        - meta_mcp_server
                        - shadow_mcp_server
                        - local_tool
                        - skill
                unique_tools:
                    type: integer
                    description: Number of distinct tools observed for the target
                    format: int64
            description: Aggregated tool usage metrics for one target
            required:
                - target_type
                - target_kind
                - target_id
                - target_label
                - event_count
                - unique_tools
                - success_count
                - failure_count
                - failure_rate
        ToolUsageTargetTimeSeriesPoint:
            type: object
            properties:
                blocked_count:
                    type: integer
                    description: Number of tool usage events denied by a hook in the bucket
                    format: int64
                bucket_start_ns:
                    type: string
                    description: Bucket start time in Unix nanoseconds as a string for JavaScript integer safety
                event_count:
                    type: integer
                    description: Number of tool usage events in the bucket
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool usage events in the bucket
                    format: int64
                pending_count:
                    type: integer
                    description: Number of tool usage events observed starting but never finishing in the bucket
                    format: int64
                target_id:
                    type: string
                    description: Stable target identifier used by filters and chart grouping
                target_kind:
                    type: string
                    description: Tool usage aggregation target kind
                    enum:
                        - server
                        - local_tools
                        - skill
                target_label:
                    type: string
                    description: User-facing label for the target
                target_type:
                    type: string
                    description: Tool usage target type
                    enum:
                        - hosted_mcp_server
                        - tunneled_mcp_server
                        - meta_mcp_server
                        - shadow_mcp_server
                        - local_tool
                        - skill
            description: A time-series bucket for one tool usage target
            required:
                - bucket_start_ns
                - target_type
                - target_kind
                - target_id
                - target_label
                - event_count
                - failure_count
                - blocked_count
                - pending_count
        ToolUsageTargetToolBreakdownRow:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Total number of tool usage events for the target and tool
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool usage events for the target and tool
                    format: int64
                failure_rate:
                    type: number
                    description: Fraction of completed tool usage events for the target and tool that failed
                    format: double
                success_count:
                    type: integer
                    description: Number of successful tool usage events for the target and tool
                    format: int64
                target_id:
                    type: string
                    description: Stable target identifier used by filters and chart grouping
                target_kind:
                    type: string
                    description: Tool usage aggregation target kind
                    enum:
                        - server
                        - local_tools
                        - skill
                target_label:
                    type: string
                    description: User-facing label for the target
                target_type:
                    type: string
                    description: Tool usage target type
                    enum:
                        - hosted_mcp_server
                        - tunneled_mcp_server
                        - meta_mcp_server
                        - shadow_mcp_server
                        - local_tool
                        - skill
                tool_name:
                    type: string
                    description: Observed tool name
            description: Aggregated tool usage metrics for one target and tool
            required:
                - target_type
                - target_kind
                - target_id
                - target_label
                - tool_name
                - event_count
                - success_count
                - failure_count
                - failure_rate
        ToolUsageTotals:
            type: object
            properties:
                blocked_count:
                    type: integer
                    description: Number of tool usage events a policy denied
                    format: int64
                blocked_rate:
                    type: number
                    description: Fraction of all tool usage events a policy denied
                    format: double
                event_count:
                    type: integer
                    description: Total number of tool usage events
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool usage events
                    format: int64
                failure_rate:
                    type: number
                    description: Fraction of completed tool usage events that failed
                    format: double
                success_count:
                    type: integer
                    description: Number of successful tool usage events
                    format: int64
                unique_targets:
                    type: integer
                    description: Number of distinct usage targets observed
                    format: int64
                unique_tools:
                    type: integer
                    description: Number of distinct tools observed
                    format: int64
                unique_users:
                    type: integer
                    description: Number of distinct user identities observed
                    format: int64
            description: Target-aware MCP and tool usage totals
            required:
                - event_count
                - success_count
                - failure_count
                - failure_rate
                - blocked_count
                - blocked_rate
                - unique_tools
                - unique_users
                - unique_targets
        ToolUsageTraceLogGroup:
            type: object
            properties:
                kind:
                    type: string
                    description: Child-log lookup strategy for a tool usage trace row
                    enum:
                        - trace_id
                        - correlation_id
                        - trigger_event_id
                        - log_id
                value:
                    type: string
                    description: Lookup value
            description: Descriptor used by the dashboard to fetch child logs for a trace row
            required:
                - kind
                - value
        ToolUsageTraceSummary:
            type: object
            properties:
                account_type:
                    type: string
                    description: AI account classification ('team' or 'personal'); empty/absent when unclassified
                block_reason:
                    type: string
                    description: Hook block reason when hook_status is blocked
                client_key:
                    type: string
                    description: Stable MCP client identity used by filters; 'unattributed' when the caller never reported one
                client_label:
                    type: string
                    description: User-facing MCP client label as the client reported it
                client_version:
                    type: string
                    description: MCP client version when the client reported one alongside its name
                event_source:
                    type: string
                    description: Telemetry event source
                gram_urn:
                    type: string
                    description: Speakeasy URN associated with the trace
                hook_source:
                    type: string
                    description: Hook plugin source when the row came from hook telemetry
                hook_status:
                    type: string
                    description: Hook execution status when the row came from hook telemetry
                    enum:
                        - success
                        - failure
                        - blocked
                        - pending
                http_status_code:
                    type: integer
                    description: HTTP status code when available
                    format: int32
                id:
                    type: string
                    description: Stable row identity for React keys and expansion state
                log_count:
                    type: integer
                    description: Number of logs in the trace
                    format: int64
                log_group:
                    $ref: '#/components/schemas/ToolUsageTraceLogGroup'
                start_time_unix_nano:
                    type: string
                    description: Earliest log timestamp in Unix nanoseconds as a string for JavaScript integer safety
                target_id:
                    type: string
                    description: Stable target identifier used by filters
                target_kind:
                    type: string
                    description: Tool usage aggregation target kind
                    enum:
                        - server
                        - local_tools
                        - skill
                target_label:
                    type: string
                    description: User-facing target label
                target_type:
                    type: string
                    description: Tool usage target type
                    enum:
                        - hosted_mcp_server
                        - tunneled_mcp_server
                        - meta_mcp_server
                        - shadow_mcp_server
                        - local_tool
                        - skill
                tool_name:
                    type: string
                    description: Tool name shown in the row
                trace_id:
                    type: string
                    description: Real OTel trace ID when the grouped logs have one
                user_key:
                    type: string
                    description: Stable user identity value
                user_kind:
                    type: string
                    description: Tool usage user identity kind
                    enum:
                        - email
                        - external_user_id
                        - user_id
                        - agent_id
                        - unknown
                user_label:
                    type: string
                    description: User-facing user identity label
                via_meta_mcp_server_id:
                    type: string
                    description: Gateway (meta MCP server) that dispatched this call to the target; absent for direct calls and for calls observed against a gateway itself
                via_meta_mcp_server_name:
                    type: string
                    description: Display name of the dispatching gateway; a deleted gateway keeps its last name
            description: A single target-aware tool usage trace row
            required:
                - id
                - log_group
                - start_time_unix_nano
                - log_count
                - gram_urn
                - tool_name
                - target_type
                - target_kind
                - target_id
                - target_label
                - user_key
                - user_label
                - user_kind
                - event_source
                - client_key
                - client_label
        ToolUsageUserFilter:
            type: object
            properties:
                key:
                    type: string
                    description: User identity value to include
                kind:
                    type: string
                    description: Tool usage user identity kind
                    enum:
                        - email
                        - external_user_id
                        - user_id
                        - agent_id
                        - unknown
            description: Typed user identity filter
            required:
                - kind
                - key
        ToolUsageUserFilterOption:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Number of tool usage events observed for the user identity
                    format: int64
                user_key:
                    type: string
                    description: Stable user identity value used by filters
                user_kind:
                    type: string
                    description: Tool usage user identity kind
                    enum:
                        - email
                        - external_user_id
                        - user_id
                        - agent_id
                        - unknown
                user_label:
                    type: string
                    description: User-facing label for the user identity
            description: Tool usage user filter option with usage in the selected time window
            required:
                - user_key
                - user_label
                - user_kind
                - event_count
        ToolUsageUserSummary:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Total number of tool usage events for the user identity
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool usage events for the user identity
                    format: int64
                failure_rate:
                    type: number
                    description: Fraction of completed tool usage events for the user identity that failed
                    format: double
                success_count:
                    type: integer
                    description: Number of successful tool usage events for the user identity
                    format: int64
                unique_tools:
                    type: integer
                    description: Number of distinct tools observed for the user identity
                    format: int64
                user_key:
                    type: string
                    description: Stable user identity value used by filters and chart grouping
                user_kind:
                    type: string
                    description: Tool usage user identity kind
                    enum:
                        - email
                        - external_user_id
                        - user_id
                        - agent_id
                        - unknown
                user_label:
                    type: string
                    description: User-facing label for the user identity
            description: Aggregated tool usage metrics for one user identity
            required:
                - user_key
                - user_label
                - user_kind
                - event_count
                - unique_tools
                - success_count
                - failure_count
                - failure_rate
        ToolUsageUserTimeSeriesPoint:
            type: object
            properties:
                bucket_start_ns:
                    type: string
                    description: Bucket start time in Unix nanoseconds as a string for JavaScript integer safety
                event_count:
                    type: integer
                    description: Number of tool usage events in the bucket
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool usage events in the bucket
                    format: int64
                user_key:
                    type: string
                    description: Stable user identity value used by filters and chart grouping
                user_kind:
                    type: string
                    description: Tool usage user identity kind
                    enum:
                        - email
                        - external_user_id
                        - user_id
                        - agent_id
                        - unknown
                user_label:
                    type: string
                    description: User-facing label for the user identity
            description: A time-series bucket for one tool usage user identity
            required:
                - bucket_start_ns
                - user_key
                - user_label
                - user_kind
                - event_count
                - failure_count
        ToolUsageUsersByTargetRow:
            type: object
            properties:
                event_count:
                    type: integer
                    description: Total number of tool usage events for the target and user identity
                    format: int64
                failure_count:
                    type: integer
                    description: Number of failed tool usage events for the target and user identity
                    format: int64
                target_id:
                    type: string
                    description: Stable target identifier used by filters and chart grouping
                target_kind:
                    type: string
                    description: Tool usage aggregation target kind
                    enum:
                        - server
                        - local_tools
                        - skill
                target_label:
                    type: string
                    description: User-facing label for the target
                target_type:
                    type: string
                    description: Tool usage target type
                    enum:
                        - hosted_mcp_server
                        - tunneled_mcp_server
                        - meta_mcp_server
                        - shadow_mcp_server
                        - local_tool
                        - skill
                user_key:
                    type: string
                    description: Stable user identity value used by filters and chart grouping
                user_kind:
                    type: string
                    description: Tool usage user identity kind
                    enum:
                        - email
                        - external_user_id
                        - user_id
                        - agent_id
                        - unknown
                user_label:
                    type: string
                    description: User-facing label for the user identity
            description: Aggregated tool usage metrics for one target and user identity
            required:
                - target_type
                - target_kind
                - target_id
                - target_label
                - user_key
                - user_label
                - user_kind
                - event_count
                - failure_count
        ToolVariation:
            type: object
            properties:
                confirm:
                    type: string
                    description: The confirmation mode for the tool variation
                confirm_prompt:
                    type: string
                    description: The confirmation prompt for the tool variation
                created_at:
                    type: string
                    description: The creation date of the tool variation
                description:
                    type: string
                    description: The description of the tool variation
                destructive_hint:
                    type: boolean
                    description: 'Override: if true, the tool may perform destructive updates'
                group_id:
                    type: string
                    description: The ID of the tool variation group
                id:
                    type: string
                    description: The ID of the tool variation
                idempotent_hint:
                    type: boolean
                    description: 'Override: if true, repeated calls have no additional effect'
                name:
                    type: string
                    description: The name of the tool variation
                open_world_hint:
                    type: boolean
                    description: 'Override: if true, the tool interacts with external entities'
                read_only_hint:
                    type: boolean
                    description: 'Override: if true, the tool does not modify its environment'
                src_tool_name:
                    type: string
                    description: The name of the source tool
                src_tool_urn:
                    type: string
                    description: The URN of the source tool
                summarizer:
                    type: string
                    description: The summarizer of the tool variation
                tags:
                    type: array
                    items:
                        type: string
                    description: The tags of the tool variation
                title:
                    type: string
                    description: Display name override for the tool
                updated_at:
                    type: string
                    description: The last update date of the tool variation
            required:
                - id
                - group_id
                - src_tool_name
                - src_tool_urn
                - created_at
                - updated_at
        ToolVariationGroup:
            type: object
            properties:
                created_at:
                    type: string
                    description: The creation date of the tool variation group
                description:
                    type: string
                    description: The description of the tool variation group
                id:
                    type: string
                    description: The ID of the tool variation group
                name:
                    type: string
                    description: The name of the tool variation group
                updated_at:
                    type: string
                    description: The last update date of the tool variation group
            required:
                - id
                - name
                - created_at
                - updated_at
        ToolVariationGroupResult:
            type: object
            properties:
                group:
                    $ref: '#/components/schemas/ToolVariationGroup'
            required:
                - group
        Toolset:
            type: object
            properties:
                account_type:
                    type: string
                    description: The account type of the organization
                created_at:
                    type: string
                    description: When the toolset was created.
                    format: date-time
                custom_domain_id:
                    type: string
                    description: The ID of the custom domain to use for the toolset
                default_environment_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                description:
                    type: string
                    description: Description of the toolset
                external_mcp_header_definitions:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalMCPHeaderDefinition'
                    description: The external MCP header definitions that are relevant to the toolset
                external_oauth_server:
                    $ref: '#/components/schemas/ExternalOAuthServer'
                function_environment_variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/FunctionEnvironmentVariable'
                    description: The function environment variables that are relevant to the toolset
                id:
                    type: string
                    description: The ID of the toolset
                mcp_enabled:
                    type: boolean
                    description: Whether the toolset is enabled for MCP
                mcp_is_public:
                    type: boolean
                    description: Whether the toolset is public in MCP
                mcp_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                name:
                    type: string
                    description: The name of the toolset
                network_access_mode:
                    type: string
                    description: The network surfaces through which a Speakeasy-hosted MCP server may be reached.
                    enum:
                        - public_only
                        - dual
                        - private_only
                oauth_enablement_metadata:
                    $ref: '#/components/schemas/OAuthEnablementMetadata'
                organization_id:
                    type: string
                    description: The organization ID this toolset belongs to
                origin:
                    $ref: '#/components/schemas/ToolsetOrigin'
                project_id:
                    type: string
                    description: The project ID this toolset belongs to
                prompt_templates:
                    type: array
                    items:
                        $ref: '#/components/schemas/PromptTemplate'
                    description: 'The prompt templates in this toolset -- Note: these are actual prompts, as in MCP prompts'
                resource_urns:
                    type: array
                    items:
                        type: string
                    description: The resource URNs in this toolset
                resources:
                    type: array
                    items:
                        $ref: '#/components/schemas/Resource'
                    description: The resources in this toolset
                security_variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/SecurityVariable'
                    description: The security variables that are relevant to the toolset
                server_variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/ServerVariable'
                    description: The server variables that are relevant to the toolset
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                tool_selection_mode:
                    type: string
                    description: The mode to use for tool selection
                tool_urns:
                    type: array
                    items:
                        type: string
                    description: The tool URNs in this toolset
                tool_variations_group_id:
                    type: string
                    description: The id of the tool variations group enabling MCP tool filtering for this toolset. Set via toolsets.setToolVariationsGroup; null when filtering is disabled.
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/Tool'
                    description: The tools in this toolset
                toolset_version:
                    type: integer
                    description: The version of the toolset (will be 0 if none exists)
                    format: int64
                updated_at:
                    type: string
                    description: When the toolset was last updated.
                    format: date-time
                user_session_issuer_id:
                    type: string
                    description: The id of the user_session_issuer wired to this toolset. Set via toolsets.setUserSessionIssuer; null when no USI is linked.
                user_session_issuer_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - id
                - project_id
                - organization_id
                - account_type
                - name
                - slug
                - tools
                - tool_selection_mode
                - toolset_version
                - prompt_templates
                - tool_urns
                - resources
                - resource_urns
                - oauth_enablement_metadata
                - created_at
                - updated_at
        ToolsetEntry:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the toolset was created.
                    format: date-time
                custom_domain_id:
                    type: string
                    description: The ID of the custom domain to use for the toolset
                default_environment_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                description:
                    type: string
                    description: Description of the toolset
                external_mcp_header_definitions:
                    type: array
                    items:
                        $ref: '#/components/schemas/ExternalMCPHeaderDefinition'
                    description: The external MCP header definitions that are relevant to the toolset
                function_environment_variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/FunctionEnvironmentVariable'
                    description: The function environment variables that are relevant to the toolset
                id:
                    type: string
                    description: The ID of the toolset
                mcp_enabled:
                    type: boolean
                    description: Whether the toolset is enabled for MCP
                mcp_is_public:
                    type: boolean
                    description: Whether the toolset is public in MCP
                mcp_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                name:
                    type: string
                    description: The name of the toolset
                organization_id:
                    type: string
                    description: The organization ID this toolset belongs to
                origin:
                    $ref: '#/components/schemas/ToolsetOrigin'
                project_id:
                    type: string
                    description: The project ID this toolset belongs to
                prompt_templates:
                    type: array
                    items:
                        $ref: '#/components/schemas/PromptTemplateEntry'
                    description: 'The prompt templates in this toolset -- Note: these are actual prompts, as in MCP prompts'
                resource_urns:
                    type: array
                    items:
                        type: string
                    description: The resource URNs in this toolset
                resources:
                    type: array
                    items:
                        $ref: '#/components/schemas/ResourceEntry'
                    description: The resources in this toolset
                security_variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/SecurityVariable'
                    description: The security variables that are relevant to the toolset
                server_variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/ServerVariable'
                    description: The server variables that are relevant to the toolset
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                tool_selection_mode:
                    type: string
                    description: The mode to use for tool selection
                tool_urns:
                    type: array
                    items:
                        type: string
                    description: The tool URNs in this toolset
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolEntry'
                    description: The tools in this toolset
                updated_at:
                    type: string
                    description: When the toolset was last updated.
                    format: date-time
            required:
                - id
                - project_id
                - organization_id
                - name
                - slug
                - tools
                - tool_selection_mode
                - prompt_templates
                - tool_urns
                - resources
                - resource_urns
                - created_at
                - updated_at
        ToolsetEnvironmentLink:
            type: object
            properties:
                environment_id:
                    type: string
                    description: The ID of the environment
                    format: uuid
                id:
                    type: string
                    description: The ID of the toolset environment link
                    format: uuid
                toolset_id:
                    type: string
                    description: The ID of the toolset
                    format: uuid
            description: A link between a toolset and an environment
            required:
                - id
                - toolset_id
                - environment_id
        ToolsetOrigin:
            type: object
            properties:
                registry_specifier:
                    type: string
                    description: The globally unique registry specifier this toolset originated from
            required:
                - registry_specifier
        ToolsetSummary:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the toolset was created.
                    format: date-time
                default_environment_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                id:
                    type: string
                    description: The ID of the toolset
                mcp_enabled:
                    type: boolean
                    description: Whether the toolset is enabled for MCP
                mcp_is_public:
                    type: boolean
                    description: Whether the toolset is public in MCP
                mcp_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                name:
                    type: string
                    description: The name of the toolset
                organization_id:
                    type: string
                    description: The organization ID this toolset belongs to
                project_id:
                    type: string
                    description: The project ID this toolset belongs to
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                tool_selection_mode:
                    type: string
                    description: The mode to use for tool selection
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolEntry'
                    description: The tools in this toolset
                updated_at:
                    type: string
                    description: When the toolset was last updated.
                    format: date-time
            description: A lightweight summary of a toolset, containing only the fields needed for org-level listing (e.g. RBAC UI).
            required:
                - id
                - project_id
                - organization_id
                - name
                - slug
                - tool_selection_mode
                - tools
                - created_at
                - updated_at
        TopServer:
            type: object
            properties:
                server_name:
                    type: string
                    description: MCP server name
                tool_call_count:
                    type: integer
                    description: Total number of tool calls
                    format: int64
            description: Top MCP server by tool call count
            required:
                - server_name
                - tool_call_count
        TopUser:
            type: object
            properties:
                activity_count:
                    type: integer
                    description: Number of messages (session mode) or tool calls (tool_call mode)
                    format: int64
                user_id:
                    type: string
                    description: User ID (internal or external depending on availability)
                user_type:
                    type: string
                    description: Type of user ID
                    enum:
                        - internal
                        - external
            description: Top user by activity
            required:
                - user_id
                - user_type
                - activity_count
        Trial:
            type: object
            properties:
                ends_at:
                    type: string
                    format: date-time
                started_at:
                    type: string
                    format: date-time
            required:
                - started_at
                - ends_at
        TriggerAnalysisRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
                    description: Organization whose projects to signal.
            required:
                - organization_id
        TriggerDefinition:
            type: object
            properties:
                config_schema:
                    type: string
                    description: JSON schema describing the trigger config.
                    format: json
                description:
                    type: string
                    description: Description of the trigger definition.
                env_requirements:
                    type: array
                    items:
                        $ref: '#/components/schemas/TriggerEnvRequirement'
                    description: Environment variables required by this trigger definition.
                kind:
                    type: string
                    description: The ingress kind for the trigger definition.
                    enum:
                        - webhook
                        - schedule
                slug:
                    type: string
                    description: The trigger definition slug.
                title:
                    type: string
                    description: The trigger definition title.
            required:
                - slug
                - title
                - description
                - kind
                - config_schema
                - env_requirements
        TriggerEnvRequirement:
            type: object
            properties:
                description:
                    type: string
                    description: Description of the variable.
                name:
                    type: string
                    description: The environment variable name.
                required:
                    type: boolean
                    description: Whether the variable is required.
            required:
                - name
                - required
        TriggerEvent:
            type: object
            properties:
                attempts:
                    type: integer
                    description: Number of processing attempts.
                    format: int64
                chat_id:
                    type: string
                    description: The conversation the event was routed to.
                    format: uuid
                created_at:
                    type: string
                    description: Creation timestamp.
                    format: date-time
                id:
                    type: string
                    description: The trigger event ID.
                    format: uuid
                last_error:
                    type: string
                    description: The last processing error, if any.
                processed_at:
                    type: string
                    description: Processing completion timestamp.
                    format: date-time
                status:
                    type: string
                    description: The processing status of the event.
                    enum:
                        - pending
                        - processing
                        - completed
                        - failed
                trigger_instance_id:
                    type: string
                    description: The trigger instance that dispatched the event.
                    format: uuid
            required:
                - id
                - trigger_instance_id
                - status
                - attempts
                - created_at
        TriggerInstance:
            type: object
            properties:
                config:
                    type: object
                    description: The trigger config payload.
                    additionalProperties: true
                created_at:
                    type: string
                    description: Creation timestamp.
                    format: date-time
                definition_slug:
                    type: string
                    description: The trigger definition slug.
                environment_id:
                    type: string
                    description: The linked environment ID.
                    format: uuid
                id:
                    type: string
                    description: The trigger instance ID.
                    format: uuid
                name:
                    type: string
                    description: The trigger instance name.
                project_id:
                    type: string
                    description: The project ID owning the trigger instance.
                    format: uuid
                status:
                    type: string
                    description: The trigger instance status.
                    enum:
                        - active
                        - paused
                        - fired
                        - cancelled
                target_display:
                    type: string
                    description: The user-facing target display value.
                target_kind:
                    type: string
                    description: The target kind for the trigger instance.
                target_ref:
                    type: string
                    description: The opaque target reference.
                updated_at:
                    type: string
                    description: Last update timestamp.
                    format: date-time
                webhook_url:
                    type: string
                    description: Webhook URL for webhook-backed triggers.
            required:
                - id
                - project_id
                - definition_slug
                - name
                - target_kind
                - target_ref
                - target_display
                - config
                - status
                - created_at
                - updated_at
        TriggerOrganizationChatAnalysisRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
            required:
                - organization_id
        TriggerRiskAnalysisRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The policy ID.
                    format: uuid
                limit:
                    type: integer
                    description: Cap the backfill at the most recent N unanalyzed messages. Defaults to 100 (the recent-N drain budget). Pass 0 to request a full backfill of every unanalyzed message.
                    default: 100
                    format: int32
                    minimum: 0
            required:
                - id
        TriggerSkillSuggestionRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The skill ID.
                    format: uuid
            required:
                - id
        TrustedClientUserSessionIssuerReference:
            type: object
            properties:
                id:
                    type: string
                    description: The user_session_issuer id.
                    format: uuid
                slug:
                    type: string
                    description: The user_session_issuer slug.
            description: An organization-owned user-session issuer that uses this client for identity-provider login.
            required:
                - id
                - slug
        TrustedUserSessionIssuerReference:
            type: object
            properties:
                id:
                    type: string
                    description: The user_session_issuer id.
                    format: uuid
                slug:
                    type: string
                    description: The user_session_issuer slug.
            description: An organization-owned user_session_issuer that uses a remote_session_issuer as its trust anchor.
            required:
                - id
                - slug
        TumDetailsBreakdown:
            type: object
            properties:
                key:
                    type: string
                    description: The breakdown dimension key (model, hook_source, provider, account_type, email, division_name, department_name, role, project_id) — the public telemetry dimension identifiers, so the same keys work as telemetry.query filters. project_id rows carry project UUIDs; clients map them to names.
                rows:
                    type: array
                    items:
                        $ref: '#/components/schemas/TumDetailsBreakdownRow'
                    description: Top values by tokens in descending order, with the remainder rolled into 'Other'
            description: Per-dimension billed token breakdown for the usage details table
            required:
                - key
                - rows
        TumDetailsBreakdownRow:
            type: object
            properties:
                series:
                    type: array
                    items:
                        type: integer
                        format: int64
                    description: Daily tokens aligned to the result's points buckets
                total_tokens:
                    type: integer
                    description: Billed tokens for this value over the range
                    format: int64
                value:
                    type: string
                    description: The dimension value; empty for rows recorded before the dimension existed
            description: One value of a breakdown dimension with its billed token usage over the range
            required:
                - value
                - total_tokens
                - series
        TumDetailsPoint:
            type: object
            properties:
                bucket_time_unix_nano:
                    type: string
                    description: Bucket start time in Unix nanoseconds (string for JS precision)
                cache_creation_tokens:
                    type: integer
                    description: Observed cache-write tokens — prompt content entering the provider cache, counted once
                    format: int64
                input_tokens:
                    type: integer
                    description: Observed input tokens (cache reads excluded)
                    format: int64
                output_tokens:
                    type: integer
                    description: Observed output tokens
                    format: int64
                total_tokens:
                    type: integer
                    description: 'Tokens under management: input + output + cache writes'
                    format: int64
            description: One UTC day of billing usage details
            required:
                - input_tokens
                - output_tokens
                - cache_creation_tokens
                - total_tokens
                - bucket_time_unix_nano
        TumDetailsResult:
            type: object
            properties:
                breakdowns:
                    type: array
                    items:
                        $ref: '#/components/schemas/TumDetailsBreakdown'
                    description: Billed token usage per breakdown dimension
                interval_seconds:
                    type: integer
                    description: Timeseries bucket width in seconds. Always 86400 — the details are bucketed daily.
                    format: int64
                points:
                    type: array
                    items:
                        $ref: '#/components/schemas/TumDetailsPoint'
                    description: Gap-filled daily buckets in ascending time order
                totals:
                    $ref: '#/components/schemas/TumDetailsTotals'
            description: Result of the billing usage details query. Everything derives from the tokens-under-management population — observed agent traffic with cache reads excluded — computed live from the telemetry aggregate. Matches the billed totals for cycles billed under this definition; cycles finalized before the observed-traffic redefinition serve immutable snapshot totals on the usage endpoint that can differ from this live compute.
            required:
                - interval_seconds
                - points
                - totals
                - breakdowns
        TumDetailsTotals:
            type: object
            properties:
                cache_creation_tokens:
                    type: integer
                    description: Observed cache-write tokens — prompt content entering the provider cache, counted once
                    format: int64
                input_tokens:
                    type: integer
                    description: Observed input tokens (cache reads excluded)
                    format: int64
                output_tokens:
                    type: integer
                    description: Observed output tokens
                    format: int64
                total_tokens:
                    type: integer
                    description: 'Tokens under management: input + output + cache writes'
                    format: int64
            description: Whole-range totals for the billing usage details
            required:
                - input_tokens
                - output_tokens
                - cache_creation_tokens
                - total_tokens
        TunnelClientCount:
            type: object
            properties:
                family:
                    type: string
                requests:
                    type: integer
                    format: int64
            required:
                - family
                - requests
        TunnelDiagnosticStep:
            type: object
            properties:
                duration_ms:
                    type: integer
                    description: Elapsed probe time in milliseconds
                    format: int64
                failure:
                    type: string
                    description: Bounded failure category, never raw error text
                state:
                    type: string
                    description: Probe state
                    enum:
                        - pass
                        - fail
                        - not_applicable
                        - not_tested
            required:
                - state
                - duration_ms
                - failure
        TunnelDiagnostics:
            type: object
            properties:
                consecutive_failures:
                    type: integer
                    description: Consecutive failed transport probes
                    format: int64
                dns:
                    $ref: '#/components/schemas/TunnelDiagnosticStep'
                http_progress:
                    $ref: '#/components/schemas/TunnelHTTPProgress'
                last_http_response_age_ms:
                    type: integer
                    description: HTTP response age at view time, -1 if absent
                    format: int64
                last_http_status:
                    type: integer
                    description: Last observed HTTP status, including authentication challenges
                    format: int64
                last_transport_error:
                    type: string
                    description: Last transport failure category
                last_transport_error_age_ms:
                    type: integer
                    description: Transport failure age at view time, -1 if absent
                    format: int64
                received_at:
                    type: string
                    description: Gateway receipt time
                    format: date-time
                requests_total:
                    type: integer
                    description: HTTP attempts since agent process start
                    format: int64
                sample_age_ms:
                    type: integer
                    description: Probe age at view time, -1 if never sampled
                    format: int64
                state:
                    type: string
                    description: Diagnostic collection state
                    enum:
                        - pending
                        - available
                        - stale
                        - unavailable
                        - unsupported
                        - disabled
                target_state:
                    type: string
                    description: Reachable means transport only, not MCP success.
                    enum:
                        - pending
                        - reachable
                        - unreachable
                        - unknown
                tcp:
                    $ref: '#/components/schemas/TunnelDiagnosticStep'
                tls:
                    $ref: '#/components/schemas/TunnelDiagnosticStep'
                transport_errors_total:
                    type: integer
                    description: Transport errors since agent process start
                    format: int64
            required:
                - state
        TunnelHTTPProgress:
            type: object
            properties:
                open_responses:
                    type: integer
                    description: Open HTTP response bodies at the last sample; long-lived SSE may be expected
                    format: int64
                waiting_headers:
                    type: integer
                    description: Requests awaiting final HTTP response headers at the last sample
                    format: int64
            required:
                - waiting_headers
                - open_responses
        TunnelMetricPoint:
            type: object
            properties:
                active_requests:
                    type: number
                    format: double
                canceled:
                    type: integer
                    format: int64
                collection_partial:
                    type: boolean
                    description: An observed producer reported aggregate loss since its last restart
                connections:
                    type: number
                    description: Average of time-aligned sums of observed gateway connections. Missing owners are not zero.
                    format: double
                connections_opened:
                    type: integer
                    format: int64
                consumer_sessions:
                    type: number
                    format: double
                coverage_samples:
                    type: integer
                    description: Number of observed 15-second gateway sampling slots
                    format: int64
                errors:
                    type: integer
                    description: Terminal errors completed in this bucket
                    format: int64
                incomplete:
                    type: integer
                    format: int64
                other_requests:
                    type: integer
                    description: Other observed MCP request attempts
                    format: int64
                p50_ms:
                    type: integer
                    description: Histogram upper bound for median completion latency, -1 means above 60 seconds
                    format: int64
                p95_ms:
                    type: integer
                    description: Histogram upper bound for p95 completion latency, -1 means above 60 seconds
                    format: int64
                rejected:
                    type: integer
                    description: Requests Speakeasy rejected before they reached the MCP server, for example by policy. Not counted as errors.
                    format: int64
                request_coverage_samples:
                    type: integer
                    description: Observed producer-minute heartbeats; proves only observed coverage, not every replica
                    format: int64
                successes:
                    type: integer
                    description: Terminal MCP successes completed in this bucket
                    format: int64
                time:
                    type: string
                    format: date-time
                tool_calls:
                    type: integer
                    description: Observed tools/call attempts
                    format: int64
                tools_list:
                    type: integer
                    description: Observed tools/list attempts
                    format: int64
            required:
                - time
                - coverage_samples
                - request_coverage_samples
                - collection_partial
        TunnelMetrics:
            type: object
            properties:
                active_servers:
                    type: integer
                    description: Distinct fronting MCP servers with requests in this range
                    format: int64
                bucket_seconds:
                    type: integer
                    format: int64
                clients:
                    type: array
                    items:
                        $ref: '#/components/schemas/TunnelClientCount'
                last_sample_at:
                    type: string
                    format: date-time
                observed_at:
                    type: string
                    format: date-time
                points:
                    type: array
                    items:
                        $ref: '#/components/schemas/TunnelMetricPoint'
                state:
                    type: string
                    description: History availability
                    enum:
                        - available
                        - unavailable
                        - too_large
            required:
                - state
                - observed_at
                - bucket_seconds
                - points
                - clients
                - active_servers
        TunneledMcpConnection:
            type: object
            properties:
                active_consumer_sessions:
                    type: integer
                    description: Number of MCP consumer sessions currently pinned to this tunnel connection
                    format: int64
                active_substreams:
                    type: integer
                    description: Number of active request substreams on this tunnel session
                    format: int64
                agent_version:
                    type: string
                    description: Tunnel agent version reported by the connection
                connected_at:
                    type: string
                    description: When this tunnel session connected
                    format: date-time
                diagnostics:
                    $ref: '#/components/schemas/TunnelDiagnostics'
                gateway_session_id:
                    type: string
                    description: Gateway session ID for a live tunnel connection
                last_heartbeat_at:
                    type: string
                    description: Most recent heartbeat observed for this tunnel session
                    format: date-time
                metadata:
                    type: object
                    description: User-provided tunnel metadata reported by the agent
                    additionalProperties:
                        type: string
                remote_addr:
                    type: string
                    description: Remote address reported by the gateway
                service_version:
                    type: string
                    description: Customer-declared version of the MCP service behind this tunnel connection
                target_display:
                    type: string
                    description: Agent target scheme, hostname and port. The path, credentials, query and fragment are never shown, because some MCP servers put secrets in the path.
            required:
                - gateway_session_id
                - service_version
                - connected_at
                - last_heartbeat_at
                - active_substreams
                - active_consumer_sessions
                - metadata
        TunneledMcpServer:
            type: object
            properties:
                active_connection_count:
                    type: integer
                    description: Number of active tunnel connections currently visible in Redis
                    format: int64
                active_consumer_session_count:
                    type: integer
                    description: Total MCP consumer sessions currently pinned across active tunnel connections
                    format: int64
                agent_version:
                    type: string
                    description: Most recent agent version reported by the tunnel
                allow_public:
                    type: boolean
                    description: Whether the owner has consented to serving this source through a public, anonymous MCP endpoint
                connection_status:
                    type: string
                    description: Derived live connection status for a tunneled MCP server source
                    enum:
                        - connected
                        - inactive
                        - never_connected
                created_at:
                    type: string
                    description: When the tunneled MCP server source was created
                    format: date-time
                effective_public_request_burst:
                    type: integer
                    description: 'The token-bucket capacity actually applied to this tunnel: the stored burst when a rate is stored alongside it, twice the stored rate when only a rate is stored, or the deployment default when no rate is stored (a burst stored without a rate is ignored).'
                    format: int64
                effective_public_request_rate_per_second:
                    type: integer
                    description: 'The sustained anonymous MCP request rate actually applied to this tunnel: the stored value, or the deployment default when no rate is stored.'
                    format: int64
                id:
                    type: string
                    description: The ID of the tunneled MCP server
                    format: uuid
                key_prefix:
                    type: string
                    description: Non-secret prefix of the tunnel key
                last_seen_at:
                    type: string
                    description: Most recent persisted heartbeat timestamp
                    format: date-time
                name:
                    type: string
                    description: Human-readable name for the tunneled MCP server
                project_id:
                    type: string
                    description: The project ID this tunneled MCP server belongs to
                    format: uuid
                public_request_burst:
                    type: integer
                    description: 'Token-bucket capacity for public_request_rate_per_second: how many requests are admitted back-to-back from an idle tunnel before admission drops to the sustained rate. Unset means twice the sustained rate.'
                    format: int64
                public_request_rate_per_second:
                    type: integer
                    description: Sustained anonymous MCP requests per second admitted for this tunnel when it is served through a public MCP endpoint. Applies to every MCP interaction. Unset means the deployment-wide default applies.
                    format: int64
                resource_identifier:
                    type: string
                    description: RFC 9728 protected resource identifier of the tunneled server, used for credential routing and as the signed caller assertion audience; never dialed by Speakeasy. The exact identifier is preserved, including trailing slashes. When unset, caller assertions use tunneled-mcp-server:<ID>
                status:
                    type: string
                    description: Stored lifecycle status for a tunneled MCP server source
                    enum:
                        - created
                        - active
                        - revoked
                updated_at:
                    type: string
                    description: When the tunneled MCP server source was last updated
                    format: date-time
            description: A customer-hosted MCP server connected through a tunnel
            required:
                - id
                - project_id
                - name
                - key_prefix
                - status
                - connection_status
                - allow_public
                - active_connection_count
                - active_consumer_session_count
                - created_at
                - updated_at
                - effective_public_request_rate_per_second
                - effective_public_request_burst
        TunneledMcpServerConnections:
            type: object
            properties:
                active_connection_count:
                    type: integer
                    description: Number of active tunnel connections currently visible in Redis
                    format: int64
                active_consumer_session_count:
                    type: integer
                    description: Total MCP consumer sessions currently pinned across active tunnel connections
                    format: int64
                collection_state:
                    type: string
                    description: 'available or unavailable: whether live connection storage could be read'
                connections:
                    type: array
                    items:
                        $ref: '#/components/schemas/TunneledMcpConnection'
                    description: Live tunnel connections currently visible in Redis
                observed_at:
                    type: string
                    description: Server time when this view was read
                    format: date-time
            description: Live connection details for a tunneled MCP server
            required:
                - connections
                - active_connection_count
                - active_consumer_session_count
        UndistributeSkillRequestBody:
            type: object
            properties:
                assistant_id:
                    type: string
                    description: The assistant the skill was distributed to.
                    format: uuid
                id:
                    type: string
                    description: The skill ID.
                    format: uuid
                plugin_id:
                    type: string
                    description: The plugin the skill was distributed to.
                    format: uuid
            example:
                id: 550e8400-e29b-41d4-a716-446655440000
                plugin_id: 550e8400-e29b-41d4-a716-446655440001
            required:
                - id
        UnknownSkillActivation:
            type: object
            properties:
                id:
                    type: string
                    description: The activation observation ID.
                    format: uuid
                provider:
                    type: string
                    description: The agent provider that reported the activation.
                reason:
                    type: string
                    description: Why exact version attribution failed.
                    enum:
                        - invalid_name
                        - unresolved_hash
                        - ambiguous_hash
                seen_at:
                    type: string
                    description: When the activation occurred.
                    format: date-time
                skill_name:
                    type: string
                    description: The skill name reported by the agent.
                source:
                    type: string
                    description: The optional provider-specific source.
                source_level:
                    type: string
                    description: The optional source precedence level.
            description: A completed activation that could not be attributed to a skill version.
            required:
                - id
                - skill_name
                - provider
                - seen_at
                - reason
        UnlinkEMARequestBody:
            type: object
            properties:
                expected_generation:
                    type: integer
                    description: Optimistic binding generation.
                    format: int64
                    minimum: 0
                remote_session_issuer_id:
                    type: string
                    format: uuid
                resource:
                    type: string
                    description: Canonical intended resource URI.
                    format: uri
                    minLength: 1
                    maxLength: 2048
                user_session_issuer_id:
                    type: string
                    format: uuid
            required:
                - expected_generation
                - user_session_issuer_id
                - remote_session_issuer_id
                - resource
        UnmarkRiskResultsFalsePositiveRequestBody:
            type: object
            properties:
                result_ids:
                    type: array
                    items:
                        type: string
                    description: IDs of the risk results to restore.
                    minItems: 1
                    maxItems: 500
            required:
                - result_ids
        UnproxiedMcpServer:
            type: object
            properties:
                created_at:
                    type: string
                    description: When the unproxied MCP server was created
                    format: date-time
                description:
                    type: string
                    description: Optional description shown alongside the server.
                id:
                    type: string
                    description: The ID of the unproxied MCP server
                    format: uuid
                name:
                    type: string
                    description: Optional human-readable name for the unproxied MCP server
                project_id:
                    type: string
                    description: The project ID this unproxied MCP server belongs to
                    format: uuid
                slug:
                    type: string
                    description: URL-friendly slug derived from the URL and ID.
                updated_at:
                    type: string
                    description: When the unproxied MCP server was last updated
                    format: date-time
                url:
                    type: string
                    description: The URL of the vendor's MCP server
                    format: uri
            description: An unproxied MCP server configuration
            required:
                - id
                - project_id
                - url
                - created_at
                - updated_at
        UnproxiedMcpServerClientUsageRow:
            type: object
            properties:
                call_count:
                    type: integer
                    description: Number of observed calls from this client
                    format: int64
                client:
                    type: string
                    description: The hook-reported client/agent surface
            description: Call activity for a single client/agent surface (e.g. claude-code, cursor, codex) calling an unproxied MCP server
            required:
                - client
                - call_count
        UnproxiedMcpServerToolUsageRow:
            type: object
            properties:
                call_count:
                    type: integer
                    description: Number of observed calls to this tool
                    format: int64
                failure_count:
                    type: integer
                    description: Number of observed calls that errored
                    format: int64
                tool_name:
                    type: string
                    description: The tool's name
            description: Call activity for a single tool on an unproxied MCP server
            required:
                - tool_name
                - call_count
                - failure_count
        UnproxiedMcpServerUsageBreakdownPayload:
            type: object
            properties:
                cursor:
                    type: string
                    description: Cursor for pagination
                from:
                    type: string
                    description: Start time in ISO 8601 format
                    format: date-time
                limit:
                    type: integer
                    description: Number of items to return (1-500)
                    default: 50
                    format: int64
                    minimum: 1
                    maximum: 500
                to:
                    type: string
                    description: End time in ISO 8601 format
                    format: date-time
                url:
                    type: string
                    description: The unproxied MCP server's vendor URL
                    format: uri
            description: Shared payload shape for the unproxied MCP server tool/user/client usage breakdowns
            required:
                - url
                - from
                - to
        UnproxiedMcpServerUsageBucket:
            type: object
            properties:
                call_count:
                    type: integer
                    description: Number of observed tool calls in this bucket
                    format: int64
                date:
                    type: string
                    description: Bucket date (YYYY-MM-DD, UTC)
            description: A single day's Shadow-MCP-observed call count for an unproxied MCP server
            required:
                - date
                - call_count
        UnproxiedMcpServerUserUsageRow:
            type: object
            properties:
                call_count:
                    type: integer
                    description: Number of observed calls from this user
                    format: int64
                last_called_at:
                    type: string
                    description: Time of the user's most recent observed call, ISO 8601
                    format: date-time
                user_email:
                    type: string
                    description: The calling user's email, when Shadow MCP could resolve one
            description: Call activity for a single user of an unproxied MCP server
            required:
                - user_email
                - call_count
                - last_called_at
        UnshareSkillRequestBody:
            type: object
            properties:
                skill_id:
                    type: string
                    description: The skill ID.
                    format: uuid
            required:
                - skill_id
        UpdateAgentPolicyGrantForm:
            type: object
            properties:
                agent_id:
                    type: string
                    description: First-class agent identifier
                    format: uuid
                effect:
                    type: string
                    description: Grant effect; direct agent policy is allow-only
                    enum:
                        - allow
                grant_id:
                    type: string
                    description: Direct policy grant identifier
                    format: uuid
                scope:
                    type: string
                    description: Agent-runtime-safe scope to grant
                    minLength: 1
                selector:
                    $ref: '#/components/schemas/AgentPolicySelector'
            required:
                - grant_id
                - agent_id
                - scope
                - effect
                - selector
        UpdateAssistantForm:
            type: object
            properties:
                expected_runtime_version:
                    type: integer
                    description: The runtime version read before requesting a switch. Required with runtime_version; conflicts require a fresh read.
                    enum:
                        - 2
                        - 3
                    format: int64
                id:
                    type: string
                    description: The assistant ID.
                    format: uuid
                instructions:
                    type: string
                    description: The system instructions for the assistant.
                max_concurrency:
                    type: integer
                    description: Maximum active warm runtimes.
                    format: int64
                mcp_servers:
                    type: array
                    items:
                        $ref: '#/components/schemas/AssistantMCPServerRef'
                    description: MCP servers to attach. When sent, replaces the assistant's servers that are not hosted (toolset-backed). A hosted server listed here is attached if it is not already; attached hosted servers are left unchanged, and toolsets governs them when both are sent.
                model:
                    type: string
                    description: The model identifier used by the assistant.
                name:
                    type: string
                    description: The assistant name.
                runtime_version:
                    type: integer
                    description: 'Desired runtime protocol: 2 for the default runtime, 3 for Kit. Switching requires the assistant and all background work to be settled.'
                    enum:
                        - 2
                        - 3
                    format: int64
                status:
                    type: string
                    description: The assistant status.
                    enum:
                        - active
                        - paused
                toolsets:
                    type: array
                    items:
                        $ref: '#/components/schemas/AssistantToolsetRef'
                    description: Hosted (toolset-backed) MCP servers to attach, by toolset slug. When sent, replaces the assistant's hosted servers.
                warm_ttl_seconds:
                    type: integer
                    description: Warm runtime TTL in seconds.
                    format: int64
            required:
                - id
        UpdateAwsIamCredentialRequestBody:
            type: object
            properties:
                assume_role_arn:
                    type: string
                    description: The customer IAM role ARN Speakeasy assumes. Omit for a KMS key-policy grant.
                id:
                    type: string
                    description: The ID of the credential to update.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the credential.
                oidc_audience:
                    type: string
                    description: The OIDC audience. Provide (with assume_role_arn) to assume the role with a web identity.
                oidc_subject:
                    type: string
                    description: Optional OIDC subject pin; only valid alongside oidc_audience.
                sts_region:
                    type: string
                    description: Optional STS region override.
            required:
                - id
                - name
        UpdateAwsKmsKeyForm:
            type: object
            properties:
                customer_grant_reference:
                    type: string
                    description: Optional. The AWS principal ARN the customer granted on the key in its key policy. Not a secret.
                external_credential_id:
                    type: string
                    description: The external credential Speakeasy uses to authenticate to the key. Must be an aws_iam credential belonging to the same organization.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key.
            required:
                - external_credential_id
                - name
        UpdateAwsKmsKeyRequestBody:
            type: object
            properties:
                customer_grant_reference:
                    type: string
                    description: Optional. The AWS principal ARN the customer granted on the key in its key policy. Not a secret.
                external_credential_id:
                    type: string
                    description: The external credential Speakeasy uses to authenticate to the key. Must be an aws_iam credential belonging to the same organization.
                    format: uuid
                id:
                    type: string
                    description: The ID of the key to update.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key.
            required:
                - id
                - external_credential_id
                - name
        UpdateConfigurationRequestBody:
            type: object
            properties:
                config:
                    type: object
                    description: Shareable device-agent settings. Supported keys include platforms, update_channel, auto_update, pinned_target, blocked_versions, sync_interval_seconds, ai_scan_interval_seconds, and disable_ai_scan. update_channel and blocked_versions can only be set by Speakeasy platform administrators; per-device identity and secret keys are forbidden, as is ai_scan, which Speakeasy injects from the organization's scan target list when serving agents.
                    additionalProperties: true
            required:
                - config
        UpdateCustomDetectionRuleRequestBody:
            type: object
            properties:
                description:
                    type: string
                    description: Description of what the rule detects.
                detection_expr:
                    type: string
                    description: 'CEL detection predicate: a boolean expression over message fields whose true verdict produces a finding.'
                id:
                    type: string
                    description: The custom detection rule ID.
                    format: uuid
                regex:
                    type: string
                    description: Deprecated legacy RE2 regex pattern; superseded by detection_expr. Accepted for backward compatibility.
                severity:
                    type: string
                    description: Severity level for findings produced by this rule.
                    enum:
                        - info
                        - low
                        - medium
                        - high
                        - critical
                title:
                    type: string
                    description: Human-readable title for the rule.
            required:
                - id
                - title
                - severity
        UpdateDashboardRequestBody:
            type: object
            properties:
                description:
                    type: string
                    description: What the dashboard is for, at most 2000 characters
                    maxLength: 2000
                id:
                    type: string
                    description: The dashboard to update
                    format: uuid
                name:
                    type: string
                    description: Display name, at most 200 characters
                    minLength: 1
                    maxLength: 200
            required:
                - id
                - name
        UpdateDataExportRouteForm:
            type: object
            properties:
                data_source:
                    type: string
                    description: Class of data exported by this route.
                    enum:
                        - product_telemetry
                        - risk_findings
                        - tool_call_logs
                enabled:
                    type: boolean
                    description: Whether the route is enabled.
                id:
                    type: string
                    description: Route ID.
                    format: uuid
                otel_destination_id:
                    type: string
                    description: OTEL destination configured on this route. Required when enabled.
                    format: uuid
            description: Full replacement form for the selected data source's export route. Omit otel_destination_id to clear its OTEL destination.
            required:
                - id
                - data_source
                - enabled
        UpdateDestinationForm:
            type: object
            properties:
                destination_type:
                    type: string
                    description: Destination transport type.
                    enum:
                        - otel
                id:
                    type: string
                    description: Destination ID.
                    format: uuid
                name:
                    type: string
                    description: Human-readable destination name.
                otel:
                    $ref: '#/components/schemas/UpdateOtelDestinationInput'
                sensitive_data:
                    type: string
                    description: Sensitive-data policy.
                    enum:
                        - exclude
                        - include
            description: Full replacement form for a data export destination. Supply the transport configuration selected by destination_type.
            required:
                - id
                - name
                - destination_type
                - sensitive_data
        UpdateDestinationRequestBody:
            type: object
            properties:
                destination_type:
                    type: string
                    description: Destination transport type.
                    enum:
                        - otel
                name:
                    type: string
                    description: Human-readable destination name.
                otel:
                    $ref: '#/components/schemas/UpdateOtelDestinationInput'
                sensitive_data:
                    type: string
                    description: Sensitive-data policy.
                    enum:
                        - exclude
                        - include
            required:
                - name
                - destination_type
                - sensitive_data
        UpdateDomainRequestBody:
            type: object
            properties:
                ip_allowlist:
                    type: array
                    items:
                        type: string
                    description: Replacement IP allowlist. Pass an empty list to remove all restrictions.
                openai_apps_challenge_token:
                    type: string
                    description: Replacement OpenAI app-submission verification token. Pass an empty string to clear it.
        UpdateEnvironmentForm:
            type: object
            properties:
                description:
                    type: string
                    description: The description of the environment
                entries_to_remove:
                    type: array
                    items:
                        type: string
                    description: List of environment entry names to remove
                entries_to_update:
                    type: array
                    items:
                        $ref: '#/components/schemas/EnvironmentEntryInput'
                    description: List of environment entries to update or create
                name:
                    type: string
                    description: The name of the environment
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            description: Form for updating an environment
            required:
                - slug
                - entries_to_update
                - entries_to_remove
        UpdateEnvironmentRequestBody:
            type: object
            properties:
                description:
                    type: string
                    description: The description of the environment
                entries_to_remove:
                    type: array
                    items:
                        type: string
                    description: List of environment entry names to remove
                entries_to_update:
                    type: array
                    items:
                        $ref: '#/components/schemas/EnvironmentEntryInput'
                    description: List of environment entries to update or create
                name:
                    type: string
                    description: The name of the environment
            required:
                - entries_to_update
                - entries_to_remove
        UpdateExternalOAuthServerForm:
            type: object
            properties:
                authorization_server_issuer:
                    type: string
                    description: Exact HTTPS issuer to set for provider-hosted discovery. Speakeasy strictly discovers and verifies it before the atomic update. Supply exactly one of authorization_server_issuer and metadata; clients may need to register or authenticate again after a mode change.
                    format: uri
                    pattern: ^https://
                    maxLength: 500
                metadata:
                    description: JSON object metadata to restore Speakeasy-hosted compatibility mode. Supply exactly one of metadata and authorization_server_issuer.
                project_slug_input:
                    type: string
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - slug
        UpdateExternalOAuthServerRequestBody:
            type: object
            properties:
                authorization_server_issuer:
                    type: string
                    description: Exact HTTPS issuer to set for provider-hosted discovery. Speakeasy strictly discovers and verifies it before the atomic update. Supply exactly one of authorization_server_issuer and metadata; clients may need to register or authenticate again after a mode change.
                    format: uri
                    pattern: ^https://
                    maxLength: 500
                metadata:
                    description: JSON object metadata to restore Speakeasy-hosted compatibility mode. Supply exactly one of metadata and authorization_server_issuer.
        UpdateGcpIamCredentialRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the credential to update.
                    format: uuid
                impersonate_service_account:
                    type: string
                    description: The service account in your project that Speakeasy impersonates. Grant Speakeasy's own service account roles/iam.serviceAccountTokenCreator on it — see externalCredentials.getGcpSetupInfo.
                name:
                    type: string
                    description: A human-readable name for the credential.
            required:
                - id
                - name
                - impersonate_service_account
        UpdateGcpIamPlatformCredentialRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the credential to update.
                    format: uuid
                impersonate_service_account:
                    type: string
                    description: The service account Speakeasy impersonates. Set alone for direct impersonation, or as the hop alongside the wif_* fields.
                name:
                    type: string
                    description: A human-readable name for the credential.
                wif_pool_id:
                    type: string
                    description: Workload Identity Federation pool ID. Set together with the other wif_* fields.
                wif_project_number:
                    type: string
                    description: GCP project number backing the WIF pool. Set together with the other wif_* fields.
                wif_provider_id:
                    type: string
                    description: Workload Identity Federation provider ID. Set together with the other wif_* fields.
            required:
                - id
                - name
        UpdateGcpKmsKeyForm:
            type: object
            properties:
                customer_grant_reference:
                    type: string
                    description: Optional. The Speakeasy service-account email the customer granted on the key in an IAM binding. Not a secret.
                external_credential_id:
                    type: string
                    description: The external credential Speakeasy uses to authenticate to the key. Must be a gcp_iam credential belonging to the same organization.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key.
            required:
                - external_credential_id
                - name
        UpdateGcpKmsKeyRequestBody:
            type: object
            properties:
                customer_grant_reference:
                    type: string
                    description: Optional. The Speakeasy service-account email the customer granted on the key in an IAM binding. Not a secret.
                external_credential_id:
                    type: string
                    description: The external credential Speakeasy uses to authenticate to the key. Must be a gcp_iam credential belonging to the same organization.
                    format: uuid
                id:
                    type: string
                    description: The ID of the key to update.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key.
            required:
                - id
                - external_credential_id
                - name
        UpdateGlobalRemoteSessionClientForm:
            type: object
            properties:
                audience:
                    type: string
                    description: Replace the upstream OAuth audience sent for this client. Omit to leave unchanged.
                    pattern: ^[!-~]+$
                    maxLength: 512
                client_secret:
                    type: string
                    description: Rotate the client secret. Speakeasy re-encrypts before persisting.
                id:
                    type: string
                    description: The remote_session_client id.
                    format: uuid
                scope:
                    type: array
                    items:
                        type: string
                        pattern: ^[!#-[\]-~]+$
                        maxLength: 128
                    description: Replace the explicit upstream OAuth scopes for this client. Omit to leave unchanged.
                token_endpoint_auth_method:
                    type: string
                    description: Change how the client authenticates at the issuer's token endpoint.
                    enum:
                        - client_secret_basic
                        - client_secret_post
                        - none
            description: Form for updating a global remote_session_client without organization-owned signing keys.
            required:
                - id
        UpdateIngressRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                hostname:
                    type: string
                identity_required:
                    type: boolean
        UpdateInviteRoleRequestBody:
            type: object
            properties:
                invitation_id:
                    type: string
                    description: WorkOS invitation ID.
                role_id:
                    type: string
                    description: Role ID to assign to the invitee.
            required:
                - invitation_id
                - role_id
        UpdateJSONWebKeySetForm:
            type: object
            properties:
                external_key_id:
                    type: string
                    description: 'The external key to back the set with from now on. Must be a live, organization-owned GCP KMS key; AWS KMS keys are not supported yet. Already-published keys are unaffected: each keeps signing with the external key it was minted from.'
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key set.
            required:
                - name
                - external_key_id
        UpdateJSONWebKeySetRequestBody:
            type: object
            properties:
                external_key_id:
                    type: string
                    description: 'The external key to back the set with from now on. Must be a live, organization-owned GCP KMS key; AWS KMS keys are not supported yet. Already-published keys are unaffected: each keeps signing with the external key it was minted from.'
                    format: uuid
                id:
                    type: string
                    description: The ID of the key set to update.
                    format: uuid
                name:
                    type: string
                    description: A human-readable name for the key set.
            required:
                - id
                - name
                - external_key_id
        UpdateMarketplaceSettingsRequestBody:
            type: object
            properties:
                marketplace_name:
                    type: string
                    description: Override for the marketplace name (the identifier users type as `<plugin>@<marketplace>`). Pass an empty string to clear the override and fall back to the default. Omit to leave the current override unchanged.
                observability_enabled:
                    type: boolean
                    description: Whether this project's observability plugin is included in the published marketplace and installed by the device agent. Omit to leave the current value unchanged.
        UpdateMarketplaceSettingsResult:
            type: object
            properties:
                hooks_update_deferred:
                    type: boolean
                    description: True when the new name reached the MCP plugins and marketplace manifests but the observability (hooks) plugin could not be updated yet because the organization is not approved for the latest hooks version; it will update automatically once the organization is rolled forward.
                republished:
                    type: boolean
                    description: Whether the marketplace was automatically republished to GitHub as part of this update.
                settings:
                    $ref: '#/components/schemas/MarketplaceSettingsResult'
            required:
                - settings
                - republished
        UpdateMcpEndpointForm:
            type: object
            properties:
                custom_domain_id:
                    type: string
                    description: The ID of the custom domain to register the endpoint slug under. Omit to move the endpoint to a platform domain.
                    format: uuid
                id:
                    type: string
                    description: The ID of the MCP endpoint to update
                    format: uuid
                mcp_server_id:
                    type: string
                    description: The ID of the MCP server this endpoint addresses. Mutually exclusive with meta_mcp_server_id.
                    format: uuid
                meta_mcp_server_id:
                    type: string
                    description: The ID of the meta MCP server this endpoint addresses. Mutually exclusive with mcp_server_id.
                    format: uuid
                slug:
                    type: string
                    description: A url-friendly label (up to 128 characters) that addresses an MCP server through a slug-based URL. Platform-domain slugs (no custom domain) must be prefixed with the organization slug.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 128
            description: 'Form for updating an MCP endpoint. This is a full-record replace: the custom_domain_id field omitted from the request becomes null on the stored record. Provide exactly one of mcp_server_id or meta_mcp_server_id. Platform-domain endpoint slugs (no custom_domain_id) must be prefixed with the organization slug.'
            required:
                - id
                - slug
        UpdateMcpServerForm:
            type: object
            properties:
                environment_id:
                    type: string
                    description: The ID of the environment to associate with the server
                    format: uuid
                id:
                    type: string
                    description: The ID of the MCP server to update
                    format: uuid
                name:
                    type: string
                    description: A human-readable display name for the server. Omit to leave the existing name unchanged; if provided, must be non-empty.
                network_access_mode:
                    type: string
                    description: The network surfaces through which a Speakeasy-hosted MCP server may be reached.
                    enum:
                        - public_only
                        - dual
                        - private_only
                remote_mcp_server_id:
                    type: string
                    description: The ID of the remote MCP server to use as the backend
                    format: uuid
                tool_variations_group_id:
                    type: string
                    description: The ID of the tool variations group enabling MCP tool filtering for this server. Omit to disable filtering (cleared to null, consistent with the full-record replace semantics of the other UUID references).
                    format: uuid
                toolset_id:
                    type: string
                    description: The ID of the toolset to use as the backend
                    format: uuid
                tunneled_mcp_server_id:
                    type: string
                    description: The ID of the tunneled MCP server to use as the backend
                    format: uuid
                unproxied_mcp_server_id:
                    type: string
                    description: The ID of the unproxied MCP server to use as the backend
                    format: uuid
                user_session_issuer_id:
                    type: string
                    description: The ID of an existing project- or organization-owned user session issuer to attach. Omit to preserve the current issuer.
                    format: uuid
                visibility:
                    type: string
                    description: The visibility of an MCP server
                    enum:
                        - disabled
                        - private
                        - public
            description: 'Form for updating an MCP server. This is a full-record replace for backend references: fields omitted from the request become null on the stored record. Exactly one of remote_mcp_server_id, tunneled_mcp_server_id, toolset_id, or unproxied_mcp_server_id must be provided. Omit name or user_session_issuer_id to preserve the existing value; the slug is recomputed server-side from the resulting name.'
            required:
                - id
                - visibility
        UpdateMemberRolesForm:
            type: object
            properties:
                role_ids:
                    type: array
                    items:
                        type: string
                    description: The role IDs to assign. Replaces all existing role assignments.
                user_id:
                    type: string
                    description: The user ID to update.
            required:
                - user_id
                - role_ids
        UpdateMetaMcpMemberForm:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the membership to update
                    format: uuid
                sort_order:
                    type: integer
                    description: The position of the member in the ordered member set
                    format: int64
            description: Form for updating a meta MCP membership.
            required:
                - id
                - sort_order
        UpdateMetaMcpServerForm:
            type: object
            properties:
                discovery_mode:
                    type: string
                    description: The default discovery mode for connections without an explicit override. Omit to preserve the stored default.
                    enum:
                        - progressive
                        - direct
                id:
                    type: string
                    description: The ID of the meta MCP server to update
                    format: uuid
                instructions:
                    type: string
                    description: Custom server instructions replace Speakeasy's built-in gateway instructions in MCP initialize and server/discover responses. Omit to leave them unchanged; send an empty string to restore Speakeasy's built-in gateway instructions. Limited to 10000 Unicode characters after removing NUL characters and trimming whitespace.
                name:
                    type: string
                    description: The display name of the meta MCP server
                    minLength: 1
                    maxLength: 100
                network_access_mode:
                    type: string
                    description: The network surfaces through which a Speakeasy-hosted MCP server may be reached.
                    enum:
                        - public_only
                        - dual
                        - private_only
                user_session_issuer_id:
                    type: string
                    description: The ID of the user session issuer used to authenticate callers. Omit for no issuer.
                    format: uuid
                visibility:
                    type: string
                    description: The visibility of a meta MCP server. Disabled refuses traffic; private requires a user session.
                    enum:
                        - disabled
                        - private
            description: Form for updating a meta MCP server. Omitting user_session_issuer_id preserves the stored issuer (one is minted if the gateway has none); omitting visibility or network_access_mode preserves the respective stored value.
            required:
                - id
                - name
        UpdateOnboardingPlaybookRequestBody:
            type: object
            properties:
                description:
                    type: string
                is_default:
                    type: boolean
                name:
                    type: string
                playbook_id:
                    type: string
                step_slugs:
                    type: array
                    items:
                        type: string
            required:
                - playbook_id
                - name
                - step_slugs
        UpdateOnboardingUseCaseRequestBody:
            type: object
            properties:
                description:
                    type: string
                name:
                    type: string
                use_case_id:
                    type: string
            required:
                - use_case_id
                - name
        UpdateOrganizationRequestBody:
            type: object
            properties:
                account_type:
                    type: string
                    description: New gram_account_type (free, pro, payg, or enterprise).
                    enum:
                        - free
                        - pro
                        - payg
                        - enterprise
                id:
                    type: string
                    description: Organization ID.
                whitelisted:
                    type: boolean
                    description: New whitelisted flag.
            required:
                - id
        UpdateOrganizationUserSessionIssuerForm:
            type: object
            properties:
                authn_challenge_mode:
                    type: string
                    description: chain | interactive.
                    enum:
                        - chain
                        - interactive
                client_id_metadata_admission_mode:
                    type: string
                    description: Which CIMD (OAuth Client ID Metadata Document) clients this issuer admits. 'presets' admits Speakeasy's curated catalog plus this issuer's custom URLs; 'open' admits any spec-valid document; 'disabled' admits none and stops advertising CIMD support. Omit to leave unchanged.
                    enum:
                        - disabled
                        - presets
                        - open
                id:
                    type: string
                    description: The user_session_issuer id.
                    format: uuid
                session_duration_hours:
                    type: integer
                    description: Maximum issued user session lifetime, in hours.
                    format: int64
                    minimum: 1
                    maximum: 2.562047e+06
                slug:
                    type: string
                    description: Rename the slug.
                trusted_remote_session_client_id:
                    type: string
                    description: Organization-level remote_session_client Speakeasy uses with the trusted issuer. Omit to leave unchanged; pass an empty string to clear the link. The resulting issuer and client must either both be configured or both be absent.
                trusted_remote_session_issuer_id:
                    type: string
                    description: Organization-level or global remote_session_issuer whose assertions this issuer trusts. Omit to leave unchanged; pass an empty string to clear the link.
            description: Form for updating an organization-owned user_session_issuer. All non-id fields are optional patches.
            required:
                - id
        UpdateOtelDestinationHeaderInput:
            type: object
            properties:
                name:
                    type: string
                    description: Header name.
                value:
                    type: string
                    description: Write-only header value. Omit to preserve an existing value; provide an empty string to clear it.
            description: An HTTP header supplied when updating an OTEL destination. Omit value to preserve the encrypted value stored for the same case-insensitive name.
            required:
                - name
        UpdateOtelDestinationInput:
            type: object
            properties:
                endpoint_url:
                    type: string
                    description: OTEL collector endpoint URL.
                    format: uri
                headers:
                    type: array
                    items:
                        $ref: '#/components/schemas/UpdateOtelDestinationHeaderInput'
                    description: Complete HTTP header-name set for the OTEL destination.
            description: OTEL-specific configuration supplied when updating a destination.
            required:
                - endpoint_url
                - headers
        UpdatePackageForm:
            type: object
            properties:
                description:
                    type: string
                    description: The description of the package. Limited markdown syntax is supported.
                    maxLength: 10000
                id:
                    type: string
                    description: The id of the package to update
                    maxLength: 50
                image_asset_id:
                    type: string
                    description: The asset ID of the image to show for this package
                    maxLength: 50
                keywords:
                    type: array
                    items:
                        type: string
                    description: The keywords of the package
                    maxItems: 5
                summary:
                    type: string
                    description: The summary of the package
                    maxLength: 80
                title:
                    type: string
                    description: The title of the package
                    maxLength: 100
                url:
                    type: string
                    description: External URL for the package owner
                    maxLength: 100
            required:
                - id
        UpdatePackageResult:
            type: object
            properties:
                package:
                    $ref: '#/components/schemas/Package'
            required:
                - package
        UpdatePluginForm:
            type: object
            properties:
                description:
                    type: string
                    description: Updated description.
                id:
                    type: string
                    format: uuid
                name:
                    type: string
                    description: Updated display name.
                slug:
                    type: string
                    description: Updated slug.
            required:
                - id
                - name
                - slug
        UpdatePluginServerForm:
            type: object
            properties:
                display_name:
                    type: string
                id:
                    type: string
                    format: uuid
                plugin_id:
                    type: string
                    format: uuid
                policy:
                    type: string
                    default: required
                    enum:
                        - required
                        - optional
                sort_order:
                    type: integer
                    default: 0
                    format: int32
            required:
                - id
                - plugin_id
                - display_name
        UpdateProjectForm:
            type: object
            properties:
                name:
                    type: string
                    description: The display name of the project
            required:
                - name
        UpdateProjectResult:
            type: object
            properties:
                project:
                    $ref: '#/components/schemas/Project'
            required:
                - project
        UpdatePromptTemplateForm:
            type: object
            properties:
                arguments:
                    type: string
                    description: The JSON Schema defining the placeholders found in the prompt template
                    format: json
                description:
                    type: string
                    description: The description of the prompt template
                engine:
                    type: string
                    description: The template engine
                    enum:
                        - mustache
                id:
                    type: string
                    description: The ID of the prompt template to update
                kind:
                    type: string
                    description: The kind of prompt the template is used for
                    enum:
                        - prompt
                name:
                    type: string
                    description: The name of the prompt template. Will be updated via variation
                prompt:
                    type: string
                    description: The template content
                tool_urns_hint:
                    type: array
                    items:
                        type: string
                    description: The suggested tool URNS associated with the prompt template
                    maxItems: 20
                tools_hint:
                    type: array
                    items:
                        type: string
                    description: The suggested tool names associated with the prompt template
                    maxItems: 20
            required:
                - id
        UpdatePromptTemplateResult:
            type: object
            properties:
                template:
                    $ref: '#/components/schemas/PromptTemplate'
            required:
                - template
        UpdateRemoteSessionClientForm:
            type: object
            properties:
                audience:
                    type: string
                    description: Replace the upstream OAuth audience sent for this client. Omit to leave unchanged.
                    pattern: ^[!-~]+$
                    maxLength: 512
                client_secret:
                    type: string
                    description: Rotate the client secret. Speakeasy re-encrypts before persisting.
                id:
                    type: string
                    description: The remote_session_client id.
                    format: uuid
                legacy_callback_url:
                    type: boolean
                    description: Platform admins only. Set true to run the client in compatibility mode with the legacy callback URL, or false to migrate it to the current callback URL once that URL is registered with the identity provider. Omit to leave unchanged.
                scope:
                    type: array
                    items:
                        type: string
                        pattern: ^[!#-[\]-~]+$
                        maxLength: 128
                    description: Replace the explicit upstream OAuth scopes for this client. Omit to leave unchanged.
                token_endpoint_auth_audience_format:
                    type: string
                    description: Change the aud claim format used in private_key_jwt assertions. Omit to leave unchanged.
                    enum:
                        - issuer
                        - token_endpoint
                token_endpoint_auth_method:
                    type: string
                    description: Change how the client authenticates at the issuer's token endpoint.
                    enum:
                        - client_secret_basic
                        - client_secret_post
                        - none
                        - private_key_jwt
            description: Form for updating a remote_session_client. All non-id fields are optional patches. credential_owner is fixed at creation and cannot be changed.
            required:
                - id
        UpdateRemoteSessionIssuerForm:
            type: object
            properties:
                authorization_endpoint:
                    type: string
                    description: Upstream authorization endpoint.
                authorization_grant_profiles_supported:
                    type: array
                    items:
                        type: string
                    description: Advertised grant profiles; metadata evidence is not client authorization or user access.
                authorization_response_iss_parameter_supported:
                    type: boolean
                    description: Whether the issuer includes the RFC 9207 iss parameter in authorization responses. Omitting the field leaves the stored value unchanged.
                backchannel_logout_supported:
                    type: boolean
                    description: Whether the issuer supports OpenID Connect Back-Channel Logout. Omitting the field leaves the stored value unchanged.
                claims_supported:
                    type: array
                    items:
                        type: string
                    description: Claims the issuer can return in ID tokens and from userinfo. Omitting the field leaves the stored value unchanged; an empty array records that the issuer advertises none.
                client_id_metadata_document_supported:
                    type: boolean
                    description: Whether the issuer accepts a Client ID Metadata Document URL as client_id (OAuth CIMD draft).
                client_setup_documentation_url:
                    type: string
                    description: Set or clear the URL of OAuth client setup documentation shown when creating clients. An empty string clears it to NULL; any other value must be an absolute http(s) URL.
                code_challenge_methods_supported:
                    type: array
                    items:
                        type: string
                    description: PKCE code challenge methods advertised by the issuer (RFC 8414 code_challenge_methods_supported). Omitting the field leaves the stored value unchanged; an empty array records that the issuer advertises no methods.
                grant_types_supported:
                    type: array
                    items:
                        type: string
                id:
                    type: string
                    description: The remote_session_issuer id.
                    format: uuid
                id_token_signing_alg_values_supported:
                    type: array
                    items:
                        type: string
                    description: JWS algorithms the issuer signs ID tokens with. Omitting the field leaves the stored value unchanged; an empty array records that the issuer advertises none.
                introspection_endpoint:
                    type: string
                    description: Set or clear the RFC 7662 token introspection endpoint. An empty string clears it to NULL; any other value must be an absolute https URL, or http on loopback.
                introspection_endpoint_auth_methods_supported:
                    type: array
                    items:
                        type: string
                    description: Client authentication methods the introspection endpoint accepts. Omitting the field leaves the stored value unchanged; an empty array records that the issuer advertises none.
                issuer:
                    type: string
                    description: Issuer URL; matches the iss claim.
                jwks_uri:
                    type: string
                    description: Upstream JWKS URI.
                logo_asset_id:
                    type: string
                    description: Set or clear the logo asset id. An empty string clears it to NULL; any other value must be a uuid.
                name:
                    type: string
                    description: Set or clear the display name. An empty string clears it to NULL.
                oidc:
                    type: boolean
                omit_scope_fallback:
                    type: boolean
                    description: When true, a login that would otherwise request the authorization server's whole scopes_supported omits the scope parameter so the server applies its default. Omit or send null to keep the stored value; false restores the default.
                op_policy_uri:
                    type: string
                    description: Set or clear RFC 8414 op_policy_uri. An empty string clears it to NULL; any other value must be an absolute http(s) URL.
                op_tos_uri:
                    type: string
                    description: Set or clear RFC 8414 op_tos_uri. An empty string clears it to NULL; any other value must be an absolute http(s) URL.
                passthrough:
                    type: boolean
                registration_endpoint:
                    type: string
                    description: Upstream RFC 7591 registration endpoint.
                resource_indicator_supported:
                    type: boolean
                    description: Whether the issuer accepts the RFC 8707 resource parameter. Omitting the field leaves the stored value unchanged.
                response_types_supported:
                    type: array
                    items:
                        type: string
                revocation_endpoint:
                    type: string
                    description: Upstream RFC 7009 revocation endpoint.
                scope_override:
                    type: array
                    items:
                        type: string
                    description: Set or clear the operator-pinned scope request. Omitting the field (or sending null) leaves the stored value unchanged; an empty array clears it.
                scopes_supported:
                    type: array
                    items:
                        type: string
                service_documentation:
                    type: string
                    description: Set or clear RFC 8414 service_documentation. An empty string clears it to NULL; any other value must be an absolute http(s) URL.
                slug:
                    type: string
                    description: Rename the slug.
                token_endpoint:
                    type: string
                    description: Upstream token endpoint.
                token_endpoint_auth_methods_supported:
                    type: array
                    items:
                        type: string
                tunneled_mcp_server_id:
                    type: string
                    description: Set or clear this issuer's MCP tunnel binding. Omission keeps the binding; an empty string clears it; any other value must be a tunneled MCP server in the same project. Platform admins only.
                userinfo_endpoint:
                    type: string
                    description: Set or clear the OpenID Connect userinfo endpoint. An empty string clears it to NULL; any other value must be an absolute https URL, or http on loopback.
            description: Form for updating a remote_session_issuer. All non-id fields are optional patches.
            required:
                - id
        UpdateRiskExclusionRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                    description: Whether the exclusion is active. Omit to leave unchanged.
                id:
                    type: string
                    description: The exclusion ID.
                    format: uuid
                match_type:
                    type: string
                    description: How match_value is interpreted.
                    enum:
                        - exact
                        - regex
                        - rule_id
                        - source
                        - entity_type
                match_value:
                    type: string
                    description: The value matched against findings, interpreted per match_type.
                risk_policy_id:
                    type: string
                    description: Bind the exclusion to a single policy. Omit for a global (project-wide) exclusion.
                    format: uuid
                rule_id_filter:
                    type: string
                    description: 'Optional: only apply within this rule_id. Empty means any.'
                    default: ""
                source_filter:
                    type: string
                    description: 'Optional: only apply within this source. Empty means any.'
                    default: ""
            required:
                - id
                - match_type
                - match_value
        UpdateRiskPolicyRequestBody:
            type: object
            properties:
                action:
                    type: string
                    description: 'Policy action: flag, warn (challenge), block, or quarantine (deny and freeze the hook session). MCP-scoped policies support flag and block only.'
                    enum:
                        - flag
                        - warn
                        - block
                        - quarantine
                approved_email_domains:
                    type: array
                    items:
                        type: string
                    description: 'For the account_identity source: corporate email domains considered approved. Omit to preserve the current list; send an empty array to clear it.'
                audience_principal_urns:
                    type: array
                    items:
                        type: string
                    description: Principal URNs this policy applies to. Omit to preserve the current target principals.
                audience_type:
                    type: string
                    description: 'Policy audience type: everyone or targeted. Omit to preserve the current audience type.'
                    enum:
                        - everyone
                        - targeted
                auto_name:
                    type: boolean
                    description: Whether the policy name should be auto-generated.
                custom_rule_ids:
                    type: array
                    items:
                        type: string
                    description: 'Custom detection rule ids to attach as detectors: a match produces a finding. Omit to preserve the current selection.'
                detection_scopes:
                    type: array
                    items:
                        $ref: '#/components/schemas/RiskDetectionScope'
                    description: Per-category detection scopes. Each specified category replaces its centrally recommended scope; a scope with both predicates empty scans every message surface. Omit to preserve the current value; send empty to clear.
                disabled_rules:
                    type: array
                    items:
                        type: string
                    description: Canonical rule_ids the user has unchecked within otherwise-enabled categories. Matching findings are dropped at scan time.
                enabled:
                    type: boolean
                    description: Whether the policy is active.
                id:
                    type: string
                    description: The policy ID.
                    format: uuid
                mcp_scope:
                    $ref: '#/components/schemas/RiskMCPScope'
                model_config:
                    $ref: '#/components/schemas/RiskPolicyModelConfig'
                name:
                    type: string
                    description: The policy name.
                presidio_entities:
                    type: array
                    items:
                        type: string
                    description: Presidio entity types to detect.
                presidio_score_threshold:
                    type: number
                    description: Minimum Presidio confidence (0.0-1.0) a PII match must clear to surface. Omit/null applies the default (0.5).
                    example: 0.75
                    format: double
                    minimum: 0
                    maximum: 1
                prompt:
                    type: string
                    description: 'For prompt_based policies: the guardrail prompt the LLM judge evaluates each in-scope message against. Omit to preserve the current value.'
                prompt_injection_rules:
                    type: array
                    items:
                        type: string
                    description: Prompt-injection detection rule ids to enable in addition to the heuristic baseline.
                score:
                    type: number
                    description: CVSS-style severity (0.1-10) assigned to findings this policy produces. Omit to preserve the current value.
                    example: 5
                    format: double
                    minimum: 0.1
                    maximum: 10
                shadow_mcp_allowed_urls:
                    type: array
                    items:
                        type: string
                    description: Complete desired canonical URL allow set for this policy. Omit to preserve; send empty to clear.
                shadow_mcp_blocked_urls:
                    type: array
                    items:
                        type: string
                    description: 'For allow_all policies: complete desired canonical URL block set. Omit to preserve; send empty to clear.'
                shadow_mcp_disposition:
                    type: string
                    description: 'The policy''s shadow MCP disposition. Immutable: omit, or send the current value unchanged; any other value is rejected. Switching posture requires delete + recreate.'
                    enum:
                        - block_all
                        - allow_all
                sources:
                    type: array
                    items:
                        type: string
                    description: Detection sources to enable.
                supersede_decisions:
                    type: boolean
                    description: Confirms that this edit may displace standing MCP approval decisions its URL lists contradict, transitioning them to superseded (audit-logged, decision history preserved). Without it, a contradicting edit is rejected with a conflict naming the affected servers.
                user_message:
                    type: string
                    description: Optional message shown to end users when this policy blocks an action or surfaces a flagged finding. Send an empty string to clear.
            required:
                - id
                - name
        UpdateRoleForm:
            type: object
            properties:
                add_grants:
                    type: array
                    items:
                        $ref: '#/components/schemas/RoleGrant'
                    description: Scope grants to add.
                agent_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: The complete set of agent IDs assigned to this role. Unlike member_ids this replaces the role's agent membership, because agents have no other surface to be removed from a role on. Omit to leave agent membership untouched.
                description:
                    type: string
                    description: Updated description.
                id:
                    type: string
                    description: The ID of the role to update.
                member_ids:
                    type: array
                    items:
                        type: string
                    description: Optional member IDs to additionally assign to this role. Existing assignments are preserved.
                name:
                    type: string
                    description: Updated display name.
                remove_grants:
                    type: array
                    items:
                        $ref: '#/components/schemas/RoleGrant'
                    description: Scope grants to remove.
            required:
                - id
        UpdateRouteRequestBody:
            type: object
            properties:
                data_source:
                    type: string
                    description: Class of data exported by this route.
                    enum:
                        - product_telemetry
                        - risk_findings
                        - tool_call_logs
                enabled:
                    type: boolean
                    description: Whether the route is enabled.
                otel_destination_id:
                    type: string
                    description: OTEL destination configured on this route. Required when enabled.
                    format: uuid
            required:
                - data_source
                - enabled
        UpdateSecurityVariableDisplayNameForm:
            type: object
            properties:
                display_name:
                    type: string
                    description: The user-friendly display name. Set to empty string to clear and use the original name.
                    maxLength: 120
                project_slug_input:
                    type: string
                security_key:
                    type: string
                    description: The security scheme key (e.g., 'BearerAuth', 'ApiKeyAuth') from the OpenAPI spec
                    maxLength: 60
                toolset_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - toolset_slug
                - security_key
                - display_name
        UpdateServerForm:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the remote MCP server to update
                name:
                    type: string
                    description: Optional human-readable name. Pass an empty string to clear the existing name.
                transport_type:
                    type: string
                    description: The transport type for the remote MCP server
                url:
                    type: string
                    description: The URL of the remote MCP server
                    format: uri
            description: Form for updating a remote MCP server
            required:
                - id
        UpdateServerHeaderForm:
            type: object
            properties:
                description:
                    type: string
                    description: Description of the header
                id:
                    type: string
                    description: The ID of the header to update
                    format: uuid
                is_required:
                    type: boolean
                    description: Whether the header is required. Defaults to false.
                is_secret:
                    type: boolean
                    description: Whether the header value is a secret. Defaults to false. Incompatible with value_from_request_header.
                name:
                    type: string
                    description: The header name
                value:
                    type: string
                    description: Static header value (mutually exclusive with value_from_request_header). Omit on an existing secret header to preserve its stored value.
                value_from_request_header:
                    type: string
                    description: Name of the inbound request header to pass through (mutually exclusive with value)
            description: 'Form for updating a remote MCP server header. Replaces every mutable field, so omitted optional fields are reset to their defaults. The one exception is value: omitting it for a header that is already secret preserves the stored value rather than clearing it.'
            required:
                - id
                - name
        UpdateSetupTaskRequestBody:
            type: object
            properties:
                assignee:
                    $ref: '#/components/schemas/SetupTaskAssigneeInput'
                clear_assignee:
                    type: boolean
                    description: Clear the current task assignee. Must not be true when assignee is set.
                hidden:
                    type: boolean
                    description: Hide or restore the task.
                status:
                    type: string
                    description: Setup task status.
                    enum:
                        - todo
                        - in_progress
                        - awaiting_support
                        - done
                task_key:
                    type: string
                    description: Stable setup task key.
            required:
                - task_key
        UpdateShadowMCPInventoryServerNameForm:
            type: object
            properties:
                name:
                    type: string
                    maxLength: 255
                project_id:
                    type: string
                    format: uuid
                server_url:
                    type: string
                    format: uri
            required:
                - project_id
                - server_url
                - name
        UpdateSigintSensorForm:
            type: object
            properties:
                description:
                    type: string
                    description: Replacement description; empty clears it
                enabled:
                    type: boolean
                    description: Enable or disable evaluation; omission preserves the current state. Evaluations already in progress may finish.
                id:
                    type: string
                    description: Sensor ID
                    format: uuid
                input_strategy:
                    type: string
                    description: Message context used for classification. Sliding windows classify the current message with preceding messages ordered by timestamp.
                    enum:
                        - single_message
                        - sliding_window
                instructions:
                    type: string
                    description: Replacement instructions; empty clears it
                match_expression:
                    type: string
                    description: Replacement boolean CEL predicate, at most 4096 UTF-8 bytes; omission preserves it
                mode:
                    type: string
                    description: 'How a sensor interprets its ordered signals: independently applicable labels, an exclusive choice, or ordered score levels.'
                    enum:
                        - multi_label
                        - exclusive
                        - ordered_score
                name:
                    type: string
                    description: Replacement display name; trimmed before enforcing the 1 to 200 character limit
                signal_ids:
                    type: array
                    items:
                        type: string
                        format: uuid
                    description: Authoritative ordered signal IDs. Omit or send null to preserve; send [] to clear.
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                window_size:
                    type: integer
                    description: Replacement total sliding window messages, including the target; omission preserves it
                    format: int64
                    minimum: 2
                    maximum: 10
            required:
                - id
        UpdateSigintSignalForm:
            type: object
            properties:
                classifier_criteria:
                    type: string
                    description: Replacement classifier criteria; empty clears it
                description:
                    type: string
                    description: Replacement description; empty clears it
                id:
                    type: string
                    description: Signal ID
                    format: uuid
                name:
                    type: string
                    description: Replacement display name; trimmed before enforcing the 1 to 200 character limit
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
            required:
                - id
        UpdateSignupOfferRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                id:
                    type: string
                    format: uuid
                name:
                    type: string
                    minLength: 1
                    maxLength: 200
                signup_flow:
                    type: string
                    enum:
                        - tailscale_partner_gateway
                stripe_promotion_code_id:
                    type: string
                    pattern: ^promo_[A-Za-z0-9_]+$
                    maxLength: 255
            required:
                - name
                - stripe_promotion_code_id
                - signup_flow
                - id
                - enabled
        UpdateSkillRequestBody:
            type: object
            properties:
                display_name:
                    type: string
                    description: The user-facing skill name.
                    maxLength: 256
                expected_latest_version_id:
                    type: string
                    description: The version the caller believes is current. When set, the write is rejected as a conflict if the skill has moved on.
                    format: uuid
                id:
                    type: string
                    description: The skill ID.
                    format: uuid
                name:
                    type: string
                    description: The canonical skill name.
                    maxLength: 64
                summary:
                    type: string
                    description: The optional skill summary.
                    maxLength: 1024
                tags:
                    type: array
                    items:
                        type: string
                        maxLength: 64
                    description: Registry tags for categorizing the skill. At most 40 tags.
                    maxItems: 40
            required:
                - id
                - name
                - display_name
                - tags
        UpdateSpendRuleRequestBody:
            type: object
            properties:
                action:
                    type: string
                    description: 'Rule action: flag or block. Omit to preserve the current action.'
                    enum:
                        - flag
                        - block
                description:
                    type: string
                    description: Description of what the rule covers. Omit to preserve the current description.
                enabled:
                    type: boolean
                    description: Whether the rule is active. Omit to preserve the current state.
                id:
                    type: string
                    description: The rule ID.
                    format: uuid
                limit_usd:
                    type: number
                    description: Per-person budget in USD for one window. Omit to preserve the current limit.
                    format: double
                    minimum: 0
                name:
                    type: string
                    description: The rule name. Omit to preserve the current name.
                target:
                    $ref: '#/components/schemas/SpendRuleTargetCondition'
                warn_at_pct:
                    type: integer
                    description: Percentage of the limit at which a warning event is emitted. Omit to preserve the current threshold.
                    format: int64
                    minimum: 1
                    maximum: 100
                window_kind:
                    type: string
                    description: UTC calendar window the budget covers. Omit to preserve the current window.
                    enum:
                        - daily
                        - weekly
                        - monthly
            required:
                - id
        UpdateSupportMatrixRequestBody:
            type: object
            properties:
                draft:
                    $ref: '#/components/schemas/SupportDraft'
                revision:
                    type: string
                    minLength: 64
                    maxLength: 64
            required:
                - revision
                - draft
        UpdateToolsetForm:
            type: object
            properties:
                custom_domain_id:
                    description: 'Deprecated: use mcpEndpoints.create or mcpEndpoints.update. The ID of the custom domain to use for the toolset'
                    type: string
                    x-speakeasy-deprecation-message: Use mcpEndpoints.create or mcpEndpoints.update instead
                default_environment_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                description:
                    type: string
                    description: The new description of the toolset
                mcp_enabled:
                    description: 'Deprecated: use mcpServers.update. Whether the toolset is enabled for MCP'
                    type: boolean
                    x-speakeasy-deprecation-message: Use mcpServers.update instead
                mcp_is_public:
                    description: 'Deprecated: use mcpServers.update. Whether the toolset is public in MCP'
                    type: boolean
                    x-speakeasy-deprecation-message: Use mcpServers.update instead
                mcp_slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                name:
                    type: string
                    description: The new name of the toolset
                network_access_mode:
                    type: string
                    description: The network surfaces through which a Speakeasy-hosted MCP server may be reached.
                    enum:
                        - public_only
                        - dual
                        - private_only
                project_slug_input:
                    type: string
                prompt_template_names:
                    type: array
                    items:
                        type: string
                    description: 'List of prompt template names to include (note: for actual prompts, not tools)'
                resource_urns:
                    type: array
                    items:
                        type: string
                    description: List of resource URNs to include in the toolset
                slug:
                    type: string
                    description: A short url-friendly label that uniquely identifies a resource.
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                tool_selection_mode:
                    type: string
                    description: The mode to use for tool selection
                tool_urns:
                    type: array
                    items:
                        type: string
                    description: List of tool URNs to include in the toolset
            required:
                - slug
        UpdateToolsetRequestBody:
            type: object
            properties:
                custom_domain_id:
                    description: 'Deprecated: use mcpEndpoints.create or mcpEndpoints.update. The ID of the custom domain to use for the toolset'
                    type: string
                    x-speakeasy-deprecation-message: Use mcpEndpoints.create or mcpEndpoints.update instead
                default_environment_slug:
                    type: string
                    description: The slug of the environment to use as the default for the toolset
                    pattern: ^[a-z0-9_-]{1,128}$
                    maxLength: 40
                description:
                    type: string
                    description: The new description of the toolset
                mcp_enabled:
                    description: 'Deprecated: use mcpServers.update. Whether the toolset is enabled for MCP'
                    type: boolean
                    x-speakeasy-deprecation-message: Use mcpServers.update instead
                mcp_is_public:
                    description: 'Deprecated: use mcpServers.update. Whether the toolset is public in MCP'
                    type: boolean
                    x-speakeasy-deprecation-message: Use mcpServers.update instead
                mcp_slug:
                    description: 'Deprecated: use mcpEndpoints.create or mcpEndpoints.update. The slug of the MCP to use for the toolset'
                    maxLength: 40
                    pattern: ^[a-z0-9_-]{1,128}$
                    type: string
                    x-speakeasy-deprecation-message: Use mcpEndpoints.create or mcpEndpoints.update instead
                name:
                    type: string
                    description: The new name of the toolset
                network_access_mode:
                    description: 'Deprecated: use mcpServers.update. Where the hosted MCP is accessible: public_only, dual, or private_only'
                    enum:
                        - public_only
                        - dual
                        - private_only
                    type: string
                    x-speakeasy-deprecation-message: Use mcpServers.update instead
                prompt_template_names:
                    type: array
                    items:
                        type: string
                    description: 'List of prompt template names to include (note: for actual prompts, not tools)'
                resource_urns:
                    type: array
                    items:
                        type: string
                    description: List of resource URNs to include in the toolset
                tool_selection_mode:
                    type: string
                    description: The mode to use for tool selection
                tool_urns:
                    type: array
                    items:
                        type: string
                    description: List of tool URNs to include in the toolset
        UpdateTriggerInstanceForm:
            type: object
            properties:
                config:
                    type: object
                    description: The trigger config payload.
                    additionalProperties: true
                environment_id:
                    type: string
                    description: The linked environment ID.
                    format: uuid
                id:
                    type: string
                    description: The trigger instance ID.
                    format: uuid
                name:
                    type: string
                    description: The trigger instance name.
                status:
                    type: string
                    description: The trigger status.
                    enum:
                        - active
                        - paused
                target_display:
                    type: string
                    description: The user-facing target display value.
                target_kind:
                    type: string
                    description: The trigger target kind.
                    enum:
                        - assistant
                        - noop
                target_ref:
                    type: string
                    description: The opaque target reference.
            required:
                - id
        UpdateTunneledMcpServerForm:
            type: object
            properties:
                allow_public:
                    type: boolean
                    description: Consent to serve this source through a public, anonymous MCP endpoint. Disabling revokes all live anonymous sessions. Omit to leave unchanged.
                id:
                    type: string
                    description: The ID of the tunneled MCP server to update
                    format: uuid
                name:
                    type: string
                    description: Human-readable display name for the tunneled MCP server. Omit to leave unchanged.
                public_request_burst:
                    type: integer
                    description: 'Token-bucket capacity for public_request_rate_per_second: how many requests are admitted back-to-back from an idle tunnel before admission drops to the sustained rate. Each request takes one token; tokens refill at the sustained rate up to this cap. Omit to leave unchanged, 0 to clear (twice the sustained rate applies).'
                    format: int64
                    minimum: 0
                    maximum: 1e+06
                public_request_rate_per_second:
                    type: integer
                    description: Sustained anonymous MCP requests per second admitted when this source is served through a public MCP endpoint. Applies to every MCP interaction; one bucket is shared by every caller. Omit to leave unchanged, 0 to clear back to the deployment default.
                    format: int64
                    minimum: 0
                    maximum: 100000
                resource_identifier:
                    type: string
                    description: RFC 9728 protected resource identifier of the tunneled server, used for credential routing and as the signed caller assertion audience; never dialed by Speakeasy. The exact identifier is preserved, including trailing slashes. When unset, caller assertions use tunneled-mcp-server:<ID>. Pass an empty string to clear. Omit to leave unchanged.
            description: Form for updating a tunneled MCP server source
            required:
                - id
        UpdateUserSessionIssuerForm:
            type: object
            properties:
                authn_challenge_mode:
                    type: string
                    description: chain | interactive.
                    enum:
                        - chain
                        - interactive
                client_id_metadata_admission_mode:
                    type: string
                    description: Which CIMD (OAuth Client ID Metadata Document) clients this issuer admits. 'presets' admits Speakeasy's curated catalog plus this issuer's custom URLs; 'open' admits any spec-valid document; 'disabled' admits none and stops advertising CIMD support. Omit to leave unchanged.
                    enum:
                        - disabled
                        - presets
                        - open
                id:
                    type: string
                    description: The user_session_issuer id.
                    format: uuid
                session_duration_hours:
                    type: integer
                    description: Maximum issued user session lifetime, in hours.
                    format: int64
                    minimum: 1
                    maximum: 2.562047e+06
                slug:
                    type: string
                    description: Rename the slug.
            description: Form for updating a user_session_issuer. All non-id fields are optional patches.
            required:
                - id
        UpdateWidgetRequestBody:
            type: object
            properties:
                dataset:
                    type: string
                    description: Catalog dataset the widget asks
                    minLength: 1
                description:
                    type: string
                    description: What the widget is for, at most 2000 characters
                    maxLength: 2000
                id:
                    type: string
                    description: The widget to update
                    format: uuid
                name:
                    type: string
                    description: Display name, at most 200 characters
                    minLength: 1
                    maxLength: 200
                query:
                    type: object
                    description: The question. Validated against the catalog on save.
                    additionalProperties: true
                visualization:
                    type: object
                    description: How the question is drawn. Checked against the question on save.
                    additionalProperties: true
            required:
                - id
                - name
                - dataset
                - query
                - visualization
        UpdateWorkloadIssuerForm:
            type: object
            properties:
                description:
                    type: string
                    description: What the platform is and what runs on it, in the operator's words. Trimmed on write; blank clears it. At most 500 characters after trimming.
                id:
                    type: string
                    description: The workload issuer id.
                    format: uuid
                jwks_uri:
                    type: string
                    description: Where the issuer publishes the keys its assertions are signed with. Must be an https URL on a fully qualified domain name.
                    format: uri
                name:
                    type: string
                    description: The label an operator works with. Unique within its tier.
                    minLength: 1
                    maxLength: 100
                tags:
                    type: array
                    items:
                        type: string
                    description: Replaces the issuer's tags; an empty list clears them. Trimmed and de-duplicated on write, then limited to 40 tags of at most 64 characters each.
            description: Form for editing a trusted workload issuer. Every field but id is optional; an omitted field is left unchanged.
            required:
                - id
        UpdateWorkloadSubjectForm:
            type: object
            properties:
                agent_id:
                    type: string
                    description: The agent whose policy the admitted workload inherits. Shared with any admission of the same subject under the same issuer at the other tier.
                    format: uuid
                id:
                    type: string
                    description: The admission id.
                    format: uuid
                name:
                    type: string
                    description: Optional label, for platforms whose subjects are not self-describing. Trimmed on write; blank clears it.
                tags:
                    type: array
                    items:
                        type: string
                    description: Replaces the admission's tags; an empty list clears them. Trimmed and de-duplicated on write, then limited to 40 tags of at most 64 characters each.
            description: Form for editing an admitted workload subject. Every field but id is optional; an omitted field is left unchanged.
            required:
                - id
        UpgradeAssistantIdentityRequestBody:
            type: object
            properties:
                agent_id:
                    type: string
                    description: An existing agent of the project to use instead of creating one. Requires owning the agent or agent:authorize on it.
                    format: uuid
                agent_name:
                    type: string
                    description: The name of the new agent. Cannot be combined with agent_id.
                    minLength: 1
                    maxLength: 120
                id:
                    type: string
                    description: The assistant ID.
                    format: uuid
            required:
                - id
        UploadChatAttachmentForm:
            type: object
            properties:
                apikey_token:
                    type: string
                chat_sessions_token:
                    type: string
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                project_slug_input:
                    type: string
                session_token:
                    type: string
            required:
                - content_type
                - content_length
        UploadChatAttachmentResult:
            type: object
            properties:
                asset:
                    $ref: '#/components/schemas/Asset'
                url:
                    type: string
                    description: The URL to serve the chat attachment
            required:
                - asset
                - url
        UploadFunctionsForm:
            type: object
            properties:
                apikey_token:
                    type: string
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                project_slug_input:
                    type: string
                session_token:
                    type: string
            required:
                - content_type
                - content_length
        UploadFunctionsResult:
            type: object
            properties:
                asset:
                    $ref: '#/components/schemas/Asset'
            required:
                - asset
        UploadImageForm:
            type: object
            properties:
                apikey_token:
                    type: string
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                project_slug_input:
                    type: string
                session_token:
                    type: string
            required:
                - content_type
                - content_length
        UploadImageResult:
            type: object
            properties:
                asset:
                    $ref: '#/components/schemas/Asset'
            required:
                - asset
        UploadOpenAPIv3Form:
            type: object
            properties:
                apikey_token:
                    type: string
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                project_slug_input:
                    type: string
                session_token:
                    type: string
            required:
                - content_type
                - content_length
        UploadOpenAPIv3Result:
            type: object
            properties:
                asset:
                    $ref: '#/components/schemas/Asset'
            required:
                - asset
        UploadOrganizationImageForm:
            type: object
            properties:
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                session_token:
                    type: string
            required:
                - content_type
                - content_length
        UploadPlatformImageForm:
            type: object
            properties:
                content_length:
                    type: integer
                    format: int64
                content_type:
                    type: string
                session_token:
                    type: string
            required:
                - content_type
                - content_length
        UploadSkillContentPayload:
            type: object
            properties:
                content:
                    type: string
                    description: Raw UTF-8 skill manifest content. The server rejects content whose UTF-8 encoding exceeds 65,536 bytes.
                raw_sha256:
                    type: string
                    description: Lowercase SHA-256 of the raw content.
                    pattern: ^[0-9a-f]{64}$
                schema_version:
                    type: string
                    description: Contract version.
                    enum:
                        - hook.skill-content.v1
            description: Content for a skill manifest requested by a prior hook ingest response.
            required:
                - schema_version
                - raw_sha256
                - content
        UpsertAiScanTargetRequestBody:
            type: object
            properties:
                category:
                    type: string
                    description: 'Target category: harness (an AI coding tool), assistant (a general-purpose AI assistant or agent), or local_model (an open model run locally).'
                    enum:
                        - harness
                        - assistant
                        - local_model
                display_name:
                    type: string
                    description: Name shown in the dashboard.
                    minLength: 1
                    maxLength: 128
                gateway_client:
                    $ref: '#/components/schemas/AiScanTargetGatewayClient'
                id:
                    type: string
                    description: Stable id agents report and detections key on. Never reused for a different tool.
                    pattern: ^[a-z0-9][a-z0-9-]{0,63}$
                signatures:
                    $ref: '#/components/schemas/AiScanTargetSignatures'
                version_plist_key:
                    type: string
                    description: Info.plist key to read the installed version from on a bundle match; defaults to CFBundleShortVersionString when omitted.
                    pattern: ^[A-Za-z0-9]{1,64}$
            required:
                - id
                - display_name
                - category
                - signatures
        UpsertAllowedOriginForm:
            type: object
            properties:
                origin:
                    type: string
                    description: The origin URL to upsert
                    minLength: 1
                    maxLength: 500
                status:
                    type: string
                    default: pending
                    enum:
                        - pending
                        - approved
                        - rejected
            required:
                - origin
        UpsertAllowedOriginResult:
            type: object
            properties:
                allowed_origin:
                    $ref: '#/components/schemas/AllowedOrigin'
            required:
                - allowed_origin
        UpsertAnthropicInferenceConfigRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                    description: Enable inspection. Requires a saved signing secret.
                signing_secret:
                    type: string
                    description: New Anthropic signing secret. Omit to preserve the saved secret.
                    maxLength: 4096
        UpsertBusinessMemorySettingsRequestBody:
            type: object
            properties:
                business_memory_daily_cap:
                    type: integer
                    description: Maximum business-memory extraction evaluations reserved across the organization each UTC day. 0 disables extraction.
                    format: int64
                    minimum: 0
                    maximum: 10000
                business_memory_enabled:
                    type: boolean
                    description: Whether completed sessions are mined for business memories.
                organization_id:
                    type: string
                    description: Organization whose settings to replace.
            required:
                - organization_id
                - business_memory_enabled
                - business_memory_daily_cap
        UpsertConfigRequestBody:
            type: object
            properties:
                api_key:
                    type: string
                    description: Provider API key. Stored encrypted at rest; never returned on reads.
                billing_mode:
                    type: string
                    description: 'How the provider org is billed: ''metered'', ''flat_rate'', or ''unknown''. Free-form; omit to leave the existing value unchanged.'
                enabled:
                    type: boolean
                    description: Whether the integration should be active.
                external_organization_id:
                    type: string
                    description: Provider scope identifier. Required for anthropic_compliance and codex_compliance (organization id) and chatgpt_compliance (ChatGPT workspace UUID).
                provider:
                    type: string
                    description: AI provider identifier. Supported values include cursor, anthropic_compliance, codex_compliance, and chatgpt_compliance.
            required:
                - provider
                - api_key
                - enabled
        UpsertConfigRequestBody2:
            type: object
            properties:
                credentials:
                    type: object
                    description: Secret credential values keyed by field key. Stored encrypted; never returned on reads. Omit to keep the existing secrets.
                    additionalProperties:
                        type: string
                enabled:
                    type: boolean
                    description: Whether the integration should be active.
                provider:
                    type: string
                    description: Provider identifier (e.g. jamf, kandji, drata, vanta).
                settings:
                    type: object
                    description: 'Non-secret settings values keyed by field key. Merged per key with the stored settings: omitted keys keep their stored values.'
                    additionalProperties:
                        type: string
            required:
                - provider
                - enabled
        UpsertGlobalToolVariationForm:
            type: object
            properties:
                confirm:
                    type: string
                    description: The confirmation mode for the tool variation
                    enum:
                        - always
                        - never
                        - session
                confirm_prompt:
                    type: string
                    description: The confirmation prompt for the tool variation
                description:
                    type: string
                    description: The description of the tool variation
                destructive_hint:
                    type: boolean
                    description: 'Override: if true, the tool may perform destructive updates'
                idempotent_hint:
                    type: boolean
                    description: 'Override: if true, repeated calls have no additional effect'
                name:
                    type: string
                    description: The name of the tool variation
                open_world_hint:
                    type: boolean
                    description: 'Override: if true, the tool interacts with external entities'
                read_only_hint:
                    type: boolean
                    description: 'Override: if true, the tool does not modify its environment'
                src_tool_name:
                    type: string
                    description: The name of the source tool
                src_tool_urn:
                    type: string
                    description: The URN of the source tool
                summarizer:
                    type: string
                    description: The summarizer of the tool variation
                summary:
                    type: string
                    description: The summary of the tool variation
                tags:
                    type: array
                    items:
                        type: string
                    description: The tags of the tool variation
                title:
                    type: string
                    description: Display name override for the tool
            required:
                - src_tool_name
                - src_tool_urn
        UpsertGlobalToolVariationResult:
            type: object
            properties:
                variation:
                    $ref: '#/components/schemas/ToolVariation'
            required:
                - variation
        UpsertKeyRequestBody:
            type: object
            properties:
                api_key:
                    type: string
                    description: The provider API key. Stored encrypted at rest; never returned on reads.
                enabled:
                    type: boolean
                    description: Whether the key participates in key resolution.
                    default: true
                provider:
                    type: string
                    description: The model provider the key authenticates with. Supported values include openrouter.
                slot:
                    type: string
                    description: The responsibility slot the key applies to. Use 'default' to cover every slot without a dedicated override.
            required:
                - slot
                - provider
                - api_key
        UpsertRequestBody:
            type: object
            properties:
                display_name:
                    type: string
                    description: User-friendly display name
                raw_server_name:
                    type: string
                    description: Original server name from hooks
            required:
                - raw_server_name
                - display_name
        UpsertSettingsRequestBody:
            type: object
            properties:
                enabled:
                    type: boolean
                    description: Whether skill efficacy scoring is enabled.
                new_version_burst:
                    type: integer
                    description: Lifetime evaluations a new skill version may reserve before the per-skill daily cap applies.
                    format: int64
                    minimum: 0
                    maximum: 10000
                org_daily_cap:
                    type: integer
                    description: Maximum evaluations reserved across the organization each UTC day.
                    format: int64
                    minimum: 0
                    maximum: 10000
                per_skill_daily_cap:
                    type: integer
                    description: Maximum evaluations reserved per skill each UTC day.
                    format: int64
                    minimum: 0
                    maximum: 10000
            required:
                - enabled
                - per_skill_daily_cap
                - org_daily_cap
                - new_version_burst
        UpsertWorkUnitsSettingsRequestBody:
            type: object
            properties:
                organization_id:
                    type: string
                    description: Organization whose settings to replace.
                work_units_daily_cap:
                    type: integer
                    description: Maximum work-units evaluations reserved across the organization each UTC day. 0 disables scoring as surely as the switch.
                    format: int64
                    minimum: 0
                    maximum: 10000
                work_units_enabled:
                    type: boolean
                    description: Whether work-units chat analysis is enabled.
            required:
                - organization_id
                - work_units_enabled
                - work_units_daily_cap
        UsageTiers:
            type: object
            properties:
                enterprise:
                    $ref: '#/components/schemas/TierLimits'
                free:
                    $ref: '#/components/schemas/TierLimits'
                payg:
                    $ref: '#/components/schemas/TierLimits'
                pro:
                    $ref: '#/components/schemas/TierLimits'
            required:
                - free
                - pro
                - payg
                - enterprise
        UserAccount:
            type: object
            properties:
                account_type:
                    type: string
                    description: '''team'' (enterprise) or ''personal'' (individual); empty when not yet classified'
                email:
                    type: string
                    description: Email associated with the account; may differ from the user's work email for personal accounts
                external_org_id:
                    type: string
                    description: Provider org id for this account; the per-account discriminator used to scope telemetry to this one account
                id:
                    type: string
                    description: Account record id (user_accounts.id); used to scope chat/session views to this account
                last_seen_unix_nano:
                    type: string
                    description: Latest activity timestamp for this account in Unix nanoseconds
                provider:
                    type: string
                    description: AI provider the account belongs to ('anthropic', 'openai', 'cursor')
                user_id:
                    type: string
                    description: Speakeasy user id of the directory owner of this account; the authoritative link between account-email-keyed usage and the org member
            description: 'A linked AI account for a user. The identity is (provider, email): the same email registered on two providers is two distinct accounts.'
            required:
                - provider
        UserSession:
            type: object
            properties:
                client_credential_kind:
                    type: string
                    description: 'What the client that established this session must present to authenticate: ''public'' (nothing), ''secret'' (a client secret), ''key'' (an assertion signed by its published key), or ''misconfigured''. Derived by the same rule the token endpoint enforces. Null only when the session has no bound client, which is the case for API key and anonymous subjects; a bound client always resolves to one of the four.'
                    enum:
                        - public
                        - secret
                        - key
                        - misconfigured
                client_id_metadata_uri:
                    type: string
                    description: Set when the client that established this session was resolved from a Client ID Metadata Document (CIMD) hosted at this URL, rather than registered via RFC 7591 DCR. Null for DCR clients and for sessions with no bound client.
                client_name:
                    type: string
                    description: Name of the MCP client that established the session, if known. Client-controlled and unverified; do not present it as an identity.
                client_token_endpoint_auth_method:
                    type: string
                    description: The raw RFC 7591 token_endpoint_auth_method the client declared, for debugging against the spec. Null both for a session with no bound client and for a client registered before the value was recorded; client_credential_kind separates those cases and is what should be displayed.
                created_at:
                    type: string
                    format: date-time
                expires_at:
                    type: string
                    description: Terminal session expiry; ceiling on refresh_expires_at.
                    format: date-time
                id:
                    type: string
                    description: The user_session id.
                    format: uuid
                issuer_slug:
                    type: string
                    description: Slug of the user_session_issuer that gated this session.
                jti:
                    type: string
                    description: Current access-token JTI; used by the revocation path.
                last_used_at:
                    type: string
                    description: When this session last carried an MCP request. Recorded on the request path and coalesced to a five-minute resolution, so treat it as accurate to within that. Null means the session has not been used since the column was introduced — unknown, not never.
                    format: date-time
                refresh_expires_at:
                    type: string
                    description: Next refresh deadline.
                    format: date-time
                revoked_at:
                    type: string
                    description: When the session was revoked, if it has been.
                    format: date-time
                subject_display_name:
                    type: string
                    description: Resolved human-readable name of the subject, if known.
                subject_photo_url:
                    type: string
                    description: Avatar URL for the subject when it resolves to a Speakeasy user with one. Null for API key and anonymous subjects, and for users who have no photo.
                subject_type:
                    type: string
                    description: 'Subject kind: ''user'', ''apikey'', ''agent'', ''anonymous'', or ''workload''.'
                subject_urn:
                    type: string
                    description: The session's subject URN (user:<id> | apikey:<uuid> | agent:<uuid> | anonymous:<mcp-session-id> | workload:<issuer-id>:<external-subject>).
                updated_at:
                    type: string
                    format: date-time
                upstreams:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionUpstream'
                    description: 'The upstream providers Speakeasy holds tokens for on this session''s subject, through the same issuer. Empty when the session reaches only Speakeasy-native tools. A session can have several: an issuer may have more than one remote_session_client attached.'
                user_session_client_id:
                    type: string
                    description: The user_session_client this session was issued through. Null for sessions with no bound client. Unlike client_name, this identifies the registration unambiguously, so it is what a per-client drill-down should match on.
                    format: uuid
                user_session_issuer_id:
                    type: string
                    description: The issuing user_session_issuer id.
                    format: uuid
                workload:
                    $ref: '#/components/schemas/UserSessionWorkload'
            description: An issued user_session record. refresh_token_hash is never returned.
            required:
                - id
                - user_session_issuer_id
                - subject_urn
                - jti
                - refresh_expires_at
                - expires_at
                - created_at
                - updated_at
                - issuer_slug
                - subject_type
                - upstreams
        UserSessionClient:
            type: object
            properties:
                active_session_count:
                    type: integer
                    description: 'How many live user_sessions this client currently holds. Counted the same way the sessions listing''s active filter counts: not revoked, and the refresh token has not expired.'
                    format: int64
                client_id:
                    type: string
                    description: The client_id. Minted by Speakeasy for a DCR registration; for a CIMD client it is the metadata document URL and equals client_id_metadata_uri.
                client_id_issued_at:
                    type: string
                    format: date-time
                client_id_metadata_cache_expires_at:
                    type: string
                    description: When the cached metadata document lapses and the next /authorize revalidates it against the host. Null for DCR clients, and null after a refresh purge until the re-read lands.
                    format: date-time
                client_id_metadata_etag:
                    type: string
                    description: ETag the document host returned on the last full read; sent as If-None-Match when revalidating. Null when the host offers no validator, and null for DCR clients.
                client_id_metadata_fetched_at:
                    type: string
                    description: When the metadata document was last successfully read. A 304 revalidation counts as a read, so this is not necessarily when the body was last fetched. Null for DCR clients.
                    format: date-time
                client_id_metadata_uri:
                    type: string
                    description: When set, the client was resolved from a Client ID Metadata Document (CIMD) hosted at this URL rather than registered via RFC 7591 DCR. Null for DCR clients. The URL is the client's identity, so its origin -- not client_name, which the client chooses -- is the trustworthy label.
                client_name:
                    type: string
                    description: Display name the client supplied at registration, or the client_name extracted from its metadata document. Client-controlled and unverified; do not present it as an identity.
                client_secret_expires_at:
                    type: string
                    description: Null when the secret does not expire.
                    format: date-time
                created_at:
                    type: string
                    format: date-time
                credential_kind:
                    type: string
                    description: 'What the client must present to authenticate: ''public'' (nothing), ''secret'' (a client secret), ''key'' (an assertion signed by its published key), or ''misconfigured''. Derived by the same rule the token endpoint enforces, so it reads what the client will actually be held to rather than what it declared. ''misconfigured'' means the registration contradicts itself and the client cannot authenticate at all.'
                    enum:
                        - public
                        - secret
                        - key
                        - misconfigured
                id:
                    type: string
                    description: The user_session_client id.
                    format: uuid
                redirect_uris:
                    type: array
                    items:
                        type: string
                    description: Validated on every /authorize.
                token_endpoint_auth_method:
                    type: string
                    description: The raw RFC 7591 token_endpoint_auth_method the client declared, for debugging against the spec. Null for a client registered before the value was recorded, which is not the same as declaring 'none' -- credential_kind resolves both cases and is what should be displayed.
                updated_at:
                    type: string
                    format: date-time
                user_session_issuer_id:
                    type: string
                    description: The owning user_session_issuer id.
                    format: uuid
            description: An MCP client registered against a user-session issuer. client_secret_hash is never returned.
            required:
                - id
                - user_session_issuer_id
                - client_id
                - client_name
                - credential_kind
                - redirect_uris
                - client_id_issued_at
                - created_at
                - updated_at
                - active_session_count
        UserSessionConsent:
            type: object
            properties:
                consented_at:
                    type: string
                    format: date-time
                created_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    description: The user_session_consent id.
                    format: uuid
                remote_set_hash:
                    type: string
                    description: SHA-256 of the sorted list of remote_session_issuer ids on the client's owning issuer at consent time.
                subject_urn:
                    type: string
                    description: The consenting subject URN (user:<id> | apikey:<uuid> | anonymous:<mcp-session-id>).
                updated_at:
                    type: string
                    format: date-time
                user_session_client_id:
                    type: string
                    description: The user_session_client this consent binds to.
                    format: uuid
            description: A user_session_consent record. Per-client (not per-issuer) consent.
            required:
                - id
                - subject_urn
                - user_session_client_id
                - remote_set_hash
                - consented_at
                - created_at
                - updated_at
        UserSessionFacetOption:
            type: object
            properties:
                count:
                    type: integer
                    description: Number of sessions for this facet value.
                    format: int64
                display_name:
                    type: string
                    description: The label shown for the facet value.
                value:
                    type: string
                    description: The facet value used for filtering.
            required:
                - value
                - display_name
                - count
        UserSessionIssuer:
            type: object
            properties:
                authentication_host_available:
                    type: boolean
                    description: Whether this deployment has an authentication host the issuer can be moved onto. Present on responses, not audit snapshots.
                authn_challenge_mode:
                    type: string
                    description: chain | interactive.
                authorization_server_mode:
                    type: string
                    description: Which OAuth authorization server the issuer's MCP servers point clients to. 'endpoint' gives every MCP server its own authorization server, rooted at the server's URL. 'shared' serves one authorization server for the issuer, used by all of its MCP servers; issuer_url and token_endpoint locate it. A shared issuer whose authorization server this deployment does not serve falls back to per-endpoint authorization servers, and authorization_server_unavailable_reason says why.
                    enum:
                        - endpoint
                        - shared
                authorization_server_unavailable_reason:
                    type: string
                    description: 'Why a shared issuer''s authorization server is not served, so its MCP servers fall back to per-endpoint authorization servers: the pinned issuer URL is not this issuer''s shared authorization server (pinned_issuer_url_invalid), or it is on a host this deployment does not serve (host_not_served). Absent otherwise.'
                    enum:
                        - pinned_issuer_url_invalid
                        - host_not_served
                client_id_metadata_admission_mode:
                    type: string
                    description: 'The EFFECTIVE CIMD admission policy in force for this issuer: disabled | presets | reporting | open. Always populated, so clients never have to reason about an unset state. ''open'' is the resting policy an issuer carries unless an operator chooses otherwise: it admits any spec-valid document, and ''presets'' enforcement is opt-in because a denial under it is unrecoverable for the end user. Note ''reporting'' can be READ but not written: it is a legacy value that admits exactly what ''open'' admits, and no issuer is created with it.'
                    enum:
                        - disabled
                        - presets
                        - reporting
                        - open
                created_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    description: The user_session_issuer id.
                    format: uuid
                issuer_url:
                    type: string
                    description: The RFC 8414 issuer identifier of the issuer's shared authorization server. Present only for a shared issuer whose authorization server this deployment serves.
                issuer_url_pinned:
                    type: boolean
                    description: Whether the shared authorization server's issuer URL was fixed when the issuer was set up, so it stays the same if the deployment's hosts change. An unpinned shared issuer derives its issuer URL from the deployment's current hosts, so a host change also changes the values configured on other platforms. Always false outside shared mode.
                organization_id:
                    type: string
                    description: The owning organization id.
                project_id:
                    type: string
                    description: The owning project id; empty for organization-owned issuers.
                project_name:
                    type: string
                    description: The owning project's name. Present on organization-level reads of project-specific issuers.
                session_duration_hours:
                    type: integer
                    description: Maximum issued user session lifetime, in hours.
                    format: int64
                slug:
                    type: string
                    description: Issuer slug. Unique for project-owned issuers; organization-owned issuer slugs may repeat.
                token_endpoint:
                    type: string
                    description: The token endpoint of the issuer's shared authorization server. Present exactly when issuer_url is.
                trusted_remote_session_client_id:
                    type: string
                    description: The organization-level remote_session_client Speakeasy uses with the trusted issuer. Absent when enterprise-managed authorization is disabled.
                    format: uuid
                trusted_remote_session_issuer_id:
                    type: string
                    description: The organization-level or global remote_session_issuer whose assertions this issuer trusts. Absent when enterprise-managed authorization is disabled.
                    format: uuid
                updated_at:
                    type: string
                    format: date-time
                use_authentication_host:
                    type: boolean
                    description: 'Whether the issuer opts in to announcing its authorization servers on the deployment''s authentication host rather than the MCP host. This is the stored setting: on a deployment without an authentication host it has no effect, and issuer_url shows the host actually used.'
            description: A user_session_issuer record.
            required:
                - id
                - project_id
                - organization_id
                - slug
                - authn_challenge_mode
                - session_duration_hours
                - client_id_metadata_admission_mode
                - authorization_server_mode
                - use_authentication_host
                - issuer_url_pinned
                - created_at
                - updated_at
        UserSessionIssuerAttachImpact:
            type: object
            properties:
                authorization_server_changes:
                    type: boolean
                    description: 'True when the authorization server the server advertises to clients changes: its own per-server authorization server, a shared authorization server''s issuer URL, or none. Anything configured with the current authorization server, such as an identity provider or a federated platform, must be updated.'
                candidate_issuer:
                    $ref: '#/components/schemas/UserSessionIssuer'
                current_issuer:
                    $ref: '#/components/schemas/UserSessionIssuer'
                reauthorization_required:
                    type: boolean
                    description: True when the server has an issuer and the change replaces or removes it. Its clients' registrations and sessions belong to the current issuer, so every client must register and authorize again.
            description: What attaching a user_session_issuer to an existing MCP server changes for its clients.
            required:
                - reauthorization_required
                - authorization_server_changes
        UserSessionIssuerAuthenticationHostImpact:
            type: object
            properties:
                authorization_server_after:
                    type: string
                    description: Where clients sign in after the move, in the same terms.
                authorization_server_before:
                    type: string
                    description: 'Where clients sign in now: the shared authorization server''s issuer URL, or the origin that announces each MCP server''s own authorization server. Empty for a shared issuer this deployment does not serve.'
                changes:
                    type: boolean
                    description: Whether the move changes where clients sign in. False when the issuer is already where it would move.
                issuer:
                    $ref: '#/components/schemas/UserSessionIssuer'
                mcp_server_count:
                    type: integer
                    description: Live MCP servers, toolsets, and meta MCP servers attached to the issuer. Those on a custom domain keep announcing their own authorization servers there.
                    format: int64
            description: What moving a user_session_issuer onto or off the authentication host changes for its clients.
            required:
                - issuer
                - authorization_server_before
                - authorization_server_after
                - changes
                - mcp_server_count
        UserSessionIssuerCimdClient:
            type: object
            properties:
                client_id_metadata_uri:
                    type: string
                    description: The exact https URL admitted as a client_id.
                created_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    description: The user_session_issuer_cimd_client id.
                    format: uuid
                organization_id:
                    type: string
                    description: The owning organization id.
                project_id:
                    type: string
                    description: The owning project id; empty for organization-owned entries.
                updated_at:
                    type: string
                    format: date-time
                user_session_issuer_id:
                    type: string
                    description: The user_session_issuer this URL is allowed on.
                    format: uuid
            description: A CIMD document URL explicitly allowed on a user_session_issuer, additive to the preset catalog.
            required:
                - id
                - project_id
                - organization_id
                - user_session_issuer_id
                - client_id_metadata_uri
                - created_at
                - updated_at
        UserSessionIssuerFieldMismatch:
            type: object
            properties:
                field:
                    type: string
                    description: The differing field name.
                source_value:
                    type: string
                    description: The source issuer's rendered value. Empty when unset.
                target_value:
                    type: string
                    description: The target issuer's rendered value. Empty when unset.
            description: One user_session_issuer setting whose source and target values differ.
            required:
                - field
                - source_value
                - target_value
        UserSessionIssuerMcpServer:
            type: object
            properties:
                id:
                    type: string
                    description: The MCP server, toolset, or meta MCP server id.
                    format: uuid
                kind:
                    type: string
                    description: Which kind of MCP server this is.
                    enum:
                        - mcp_server
                        - toolset
                        - meta_mcp_server
                name:
                    type: string
                    description: The display name.
                project_id:
                    type: string
                    description: The owning project id.
                    format: uuid
                project_name:
                    type: string
                    description: The owning project name.
                slug:
                    type: string
                    description: The MCP server or toolset slug. Absent for meta MCP servers and MCP servers without one.
            description: A live MCP server, toolset, or meta MCP server attached to a user_session_issuer.
            required:
                - kind
                - id
                - name
                - project_id
                - project_name
        UserSessionUpstream:
            type: object
            properties:
                access_expires_at:
                    type: string
                    description: Upstream access-token expiry. Null when the upstream issued a non-expiring token.
                    format: date-time
                authorization_expires_at:
                    type: string
                    description: Absolute upstream authorization deadline. Unlike refresh_expires_at, exchanging a token does not extend this.
                    format: date-time
                auto_refresh:
                    type: boolean
                    description: Whether the subject opted this connection into automated keepalive.
                has_refresh_token:
                    type: boolean
                    description: Whether a refresh grant is held. Gates 'refresh now'; refresh_expires_at is insufficient because an upstream may issue a non-expiring refresh token.
                issuer_slug:
                    type: string
                    description: Display slug of the upstream provider, e.g. 'mcp.linear.app'.
                last_used_at:
                    type: string
                    description: When this upstream token was last spent on a proxied call. Same five-minute resolution as the inbound leg, so the two are directly comparable.
                    format: date-time
                refresh_expires_at:
                    type: string
                    description: Upstream refresh-token expiry. Null when the session holds no refresh token or the upstream issued a non-expiring one.
                    format: date-time
                remote_session_client_id:
                    type: string
                    description: The remote_session_client the session was minted against.
                    format: uuid
                remote_session_id:
                    type: string
                    description: The remote_session id. Target for revoke and force-refresh.
                    format: uuid
                remote_session_issuer_id:
                    type: string
                    description: The remote_session_issuer the client belongs to.
                    format: uuid
                scopes:
                    type: array
                    items:
                        type: string
                    description: Scopes held by this upstream session.
            description: An upstream remote_session held for the same subject and issuer as the user_session that carries it. Token material is never returned.
            required:
                - remote_session_id
                - remote_session_client_id
                - remote_session_issuer_id
                - issuer_slug
                - has_refresh_token
                - auto_refresh
                - scopes
        UserSessionWorkload:
            type: object
            properties:
                admissions:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserSessionWorkloadAdmission'
                    description: Every admission currently letting this workload in, from this project and from the organization. Withdrawing one leaves the others admitting it. Empty when nothing admits the workload any more.
                agent_id:
                    type: string
                    description: The agent this workload is assigned to, whose policy it inherits. Null when the workload has no live assignment.
                    format: uuid
                agent_name:
                    type: string
                    description: Name of the assigned agent.
                agent_status:
                    type: string
                    description: Lifecycle state of the assigned agent.
                    enum:
                        - active
                        - suspended
                        - revoked
                external_subject:
                    type: string
                    description: The sub claim the workload issuer asserted, exactly as minted. Together with workload_issuer_id this is the workload's identity.
                workload_issuer_id:
                    type: string
                    description: The workload_issuers row that vouched for the workload.
                    format: uuid
                workload_issuer_name:
                    type: string
                    description: The operator-chosen name of the workload issuer. Null when the issuer has been deleted or belongs to another project.
                workload_issuer_url:
                    type: string
                    description: The workload issuer's issuer identifier (its iss). Null under the same conditions as workload_issuer_name.
                    format: uri
            description: The workload behind a workload session.
            required:
                - workload_issuer_id
                - external_subject
                - admissions
        UserSessionWorkloadAdmission:
            type: object
            properties:
                id:
                    type: string
                    description: The workload_identity_admissions row.
                    format: uuid
                name:
                    type: string
                    description: The operator-chosen label for the admission.
                tier:
                    type: string
                    description: Whether the admission belongs to this project or to the whole organization.
                    enum:
                        - project
                        - organization
            description: An admission that lets a workload in.
            required:
                - id
                - tier
        UserSummary:
            type: object
            properties:
                account_types:
                    type: array
                    items:
                        type: string
                    description: Distinct account types observed for this user ('team', 'personal')
                accounts:
                    type: array
                    items:
                        $ref: '#/components/schemas/UserAccount'
                    description: Linked AI accounts for this user (team and personal, across providers)
                avg_tokens_per_request:
                    type: number
                    description: Average tokens per chat request
                    format: double
                cache_creation_input_tokens:
                    type: integer
                    description: Sum of cache creation input tokens
                    format: int64
                cache_read_input_tokens:
                    type: integer
                    description: Sum of cache read input tokens
                    format: int64
                first_seen_unix_nano:
                    type: string
                    description: Earliest activity timestamp in Unix nanoseconds
                hook_sources:
                    type: array
                    items:
                        $ref: '#/components/schemas/HookSourceUsage'
                    description: Per-hook-source usage breakdown
                last_seen_unix_nano:
                    type: string
                    description: Latest activity timestamp in Unix nanoseconds
                tool_call_failure:
                    type: integer
                    description: Failed tool calls (4xx/5xx status)
                    format: int64
                tool_call_success:
                    type: integer
                    description: Successful tool calls (2xx status)
                    format: int64
                tools:
                    type: array
                    items:
                        $ref: '#/components/schemas/ToolUsage'
                    description: Per-tool usage breakdown
                total_chat_requests:
                    type: integer
                    description: Total number of chat completion requests
                    format: int64
                total_chats:
                    type: integer
                    description: Number of unique chat sessions
                    format: int64
                total_cost:
                    type: number
                    description: Total cost of all requests
                    format: double
                total_input_tokens:
                    type: integer
                    description: Sum of input tokens used
                    format: int64
                total_output_tokens:
                    type: integer
                    description: Sum of output tokens used
                    format: int64
                total_tokens:
                    type: integer
                    description: Sum of all tokens used
                    format: int64
                total_tool_calls:
                    type: integer
                    description: Total number of tool calls
                    format: int64
                user_email:
                    type: string
                    description: User email associated with this usage, when present
                user_id:
                    type: string
                    description: User identifier (user_id or external_user_id depending on group_by)
            description: Aggregated usage summary for a single user
            required:
                - user_id
                - user_email
                - first_seen_unix_nano
                - last_seen_unix_nano
                - total_chats
                - total_chat_requests
                - total_input_tokens
                - total_output_tokens
                - total_tokens
                - cache_read_input_tokens
                - cache_creation_input_tokens
                - total_cost
                - avg_tokens_per_request
                - total_tool_calls
                - tool_call_success
                - tool_call_failure
                - tools
                - hook_sources
        ValidateKeyOrganization:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the organization
                name:
                    type: string
                    description: The name of the organization
                slug:
                    type: string
                    description: The slug of the organization
            required:
                - id
                - name
                - slug
        ValidateKeyProject:
            type: object
            properties:
                id:
                    type: string
                    description: The ID of the project
                name:
                    type: string
                    description: The name of the project
                slug:
                    type: string
                    description: The slug of the project
            required:
                - id
                - name
                - slug
        ValidateKeyResult:
            type: object
            properties:
                organization:
                    $ref: '#/components/schemas/ValidateKeyOrganization'
                projects:
                    type: array
                    items:
                        $ref: '#/components/schemas/ValidateKeyProject'
                    description: The projects accessible with this key
                scopes:
                    type: array
                    items:
                        type: string
                    description: List of permission scopes for this key
            required:
                - organization
                - projects
                - scopes
        VerifyCimdURLResult:
            type: object
            properties:
                client_name:
                    type: string
                    description: The document's client_name, set only when verified. Lets an operator confirm the URL names the client they intended.
                detail:
                    type: string
                    description: Human-readable explanation, safe to display to the operator.
                document:
                    type: string
                    description: The validated document rendered as JSON, set only when verified. Re-encoded from what Speakeasy parsed rather than echoed from the wire, so it shows what the authorization server will act on.
                http_status:
                    type: integer
                    description: Status the document endpoint returned; omitted when no response was received.
                    format: int64
                outcome:
                    type: string
                    description: Why the probe ended as it did.
                    enum:
                        - valid
                        - invalid_url
                        - unreachable
                        - unparseable
                        - invalid_document
                reason:
                    type: string
                    description: Stable machine label for the rule that rejected the document, e.g. client_id_mismatch. Set only for invalid_url and invalid_document.
                verified:
                    type: boolean
                    description: True when the document was fetched and passed every check the authorization server applies. A client presenting this URL will not be rejected for its document.
            description: Outcome of probing a CIMD document URL. Nothing is persisted.
            required:
                - verified
                - outcome
                - detail
        VerifyCredentialResult:
            type: object
            properties:
                detail:
                    type: string
                    description: Human-readable detail about the probe outcome, including the failure reason when it did not verify.
                principal:
                    type: string
                    description: The principal the credential resolves to — the impersonated service account.
                verified:
                    type: boolean
                    description: Whether Speakeasy could assume the credential's identity.
            description: Result of a live probe that Speakeasy can assume the identity the credential names.
            required:
                - verified
        VerifyIdentityProviderConnectionRequestBody:
            type: object
            properties:
                id:
                    type: string
                    description: Connection ID.
                    format: uuid
            required:
                - id
        VerifyKmsKeyResult:
            type: object
            properties:
                detail:
                    type: string
                    description: Human-readable detail about the probe outcome, including the failure reason when it did not verify.
                probe_outcome:
                    type: string
                    description: The machine-readable outcome of the probe.
                    enum:
                        - verified
                        - credential_deleted
                        - credential_unusable
                        - invalid_resource_name
                        - key_not_found
                        - permission_denied
                        - key_unusable
                        - unsupported_algorithm
                        - algorithm_mismatch
                        - signature_invalid
                        - unavailable
                        - unexpected
                verified:
                    type: boolean
                    description: Whether the key produced a signature that validated against its own public half.
            description: Result of a live probe that Speakeasy can reach an external key and use it to sign.
            required:
                - verified
                - probe_outcome
        VerifyOnboardingHooksSetupResult:
            type: object
            properties:
                events:
                    type: array
                    items:
                        $ref: '#/components/schemas/OnboardingHookEvent'
                    description: Recent hook events, newest first. Truncated to a server-defined limit.
                latest_unix_nano:
                    type: string
                    description: Highest time_unix_nano in this batch. Pass back as since_unix_nano on the next poll.
                total_count:
                    type: integer
                    description: Total events received with time_unix_nano greater than since_unix_nano. May exceed len(events) when truncated.
                    format: int64
            required:
                - events
                - latest_unix_nano
                - total_count
        VerifyPlatformCredentialResult:
            type: object
            properties:
                detail:
                    type: string
                    description: Human-readable detail about the probe outcome (e.g. why the principal is unavailable, or the failure reason).
                identity_source:
                    type: string
                    description: How the identity was resolved. Lets the caller tell an in-cluster attached identity apart from local Application Default Credentials or an impersonated service account.
                    enum:
                        - metadata_server
                        - application_default_credentials
                        - impersonation
                principal:
                    type: string
                    description: The effective principal the identity resolves to (e.g. a service-account email). May be empty when the resolution source cannot report it.
                verified:
                    type: boolean
                    description: Whether the credential's identity resolved successfully.
            description: Result of a live 'who am I' probe against a platform credential's resolved identity.
            required:
                - verified
        VerifyURLForm:
            type: object
            properties:
                transport_type:
                    type: string
                    description: The transport type for the remote MCP server (e.g. streamable-http)
                url:
                    type: string
                    description: The URL of the remote MCP server to probe
                    format: uri
            description: Legacy form for probing a remote MCP server URL
            required:
                - url
                - transport_type
        VerifyURLRequestBody:
            type: object
            properties:
                client_id_metadata_uri:
                    type: string
                    description: The https URL to probe.
            required:
                - client_id_metadata_uri
        VerifyURLResult:
            type: object
            properties:
                http_status:
                    type: integer
                    description: HTTP status code returned by the URL, if any
                    format: int64
                message:
                    type: string
                    description: Human-readable summary of the verification outcome
                verified:
                    type: boolean
                    description: Whether the URL responded in a way consistent with a remote MCP server
            description: Legacy outcome of a remote MCP server URL verification
            required:
                - verified
                - message
        Widget:
            type: object
            properties:
                created_at:
                    type: string
                    format: date-time
                created_by_user_id:
                    type: string
                    description: Who saved it, when known
                dashboards:
                    type: array
                    items:
                        $ref: '#/components/schemas/WidgetDashboard'
                    description: 'The dashboards this widget is placed on, each once, by name. Widgets are linked, not copied: an edit reaches all of them, and a delete removes it from all of them.'
                dataset:
                    type: string
                    description: The catalog dataset the widget asks
                    example: tool_calls
                description:
                    type: string
                    description: What the widget is for, when its creator said
                id:
                    type: string
                    format: uuid
                invalid_reason:
                    type: string
                    description: 'Present when the widget no longer works, naming what is wrong: a field the catalog dropped, or a chart that cannot draw the question. A catalog change fails visibly rather than returning wrong numbers.'
                name:
                    type: string
                    description: 'Display name. Not unique: two people saving the same name is normal.'
                organization_id:
                    type: string
                project_id:
                    type: string
                    format: uuid
                query:
                    type: object
                    description: 'The question: window, grain, dimensions, measures, filters, order and limit. Planned against the catalog on save and on read.'
                    additionalProperties: true
                updated_at:
                    type: string
                    format: date-time
                visualization:
                    type: object
                    description: 'How the question is drawn: a chart type and its options. The client owns the chart vocabulary; the server checks only that the chart can draw the question.'
                    additionalProperties: true
            description: A named question against a catalog dataset together with how it is drawn. Belongs to a project and is visible to everyone in the organization. Widgets are the building block dashboards will place.
            required:
                - id
                - project_id
                - organization_id
                - name
                - dataset
                - query
                - visualization
                - dashboards
                - created_at
                - updated_at
        WidgetDashboard:
            type: object
            properties:
                id:
                    type: string
                    format: uuid
                name:
                    type: string
            description: A dashboard a widget is placed on.
            required:
                - id
                - name
        WorkOSDomainVerificationIntentOptions:
            type: object
            properties:
                domain_name:
                    type: string
                    description: Domain name to verify.
        WorkOSIntentOptions:
            type: object
            properties:
                domain_verification:
                    $ref: '#/components/schemas/WorkOSDomainVerificationIntentOptions'
                sso:
                    $ref: '#/components/schemas/WorkOSSSOIntentOptions'
        WorkOSSSOIntentOptions:
            type: object
            properties:
                bookmark_slug:
                    type: string
                    description: SSO bookmark slug to launch a specific app after authentication.
                provider_type:
                    type: string
                    description: SSO provider type to shortcut into a specific setup flow (e.g. OktaSAML, GoogleSAML).
        WorkUnitsTrendBucket:
            type: object
            properties:
                cost_per_unit:
                    type: number
                    description: Cost per unit of work. Absent when the bucket has no positive work or no cost telemetry.
                    format: double
                scored_sessions:
                    type: integer
                    description: Number of chat sessions scored by the work-units analysis in this bucket.
                    format: int64
                timestamp:
                    type: string
                    description: Start of the UTC day this bucket covers.
                    format: date-time
                tokens_per_unit:
                    type: number
                    description: Tokens per unit of work. Absent when the bucket has no positive work or no token telemetry.
                    format: double
                total_cost:
                    type: number
                    description: Total cost in USD across the bucket's scored sessions.
                    format: double
                total_tokens:
                    type: integer
                    description: Total tokens across the bucket's scored sessions.
                    format: int64
                work_units:
                    type: number
                    description: Total work units delivered across the bucket's scored sessions.
                    format: double
            required:
                - timestamp
                - scored_sessions
                - work_units
                - total_cost
                - total_tokens
        WorkUnitsTrendResult:
            type: object
            properties:
                buckets:
                    type: array
                    items:
                        $ref: '#/components/schemas/WorkUnitsTrendBucket'
                    description: One bucket per UTC day in the window, oldest first, zero-filled for days without scores.
                scores_available:
                    type: boolean
                    description: Whether any work-units scores exist in the window. False for organizations without work-units analysis.
            required:
                - scores_available
                - buckets
        WorkloadAdmission:
            type: object
            properties:
                agent_id:
                    type: string
                    description: The agent whose policy this workload inherits. Empty when the assignment is missing, which the token endpoint refuses.
                    format: uuid
                agent_name:
                    type: string
                    description: The assigned agent's name; empty when the assignment is missing.
                created_at:
                    type: string
                    format: date-time
                id:
                    type: string
                    description: The admission id.
                    format: uuid
                issuer:
                    type: string
                    description: The issuer identifier, denormalized so a list does not need a second lookup.
                issuer_name:
                    type: string
                    description: The issuer's operator-facing label.
                match_kind:
                    type: string
                    description: 'How the subject is compared: exact | wildcard.'
                    enum:
                        - exact
                        - wildcard
                name:
                    type: string
                    description: Optional label; empty when none was supplied.
                organization_id:
                    type: string
                    description: The owning organization id.
                project_id:
                    type: string
                    description: The owning project id; empty for an organization-tier admission.
                subject:
                    type: string
                    description: The sub claim, exactly as stored.
                tags:
                    type: array
                    items:
                        type: string
                    description: Free-form labels for finding the admitted workload. Empty rather than absent where none are set.
                updated_at:
                    type: string
                    format: date-time
                wildcard_active:
                    type: boolean
                    description: 'False when this is a wildcard rule under an issuer that no longer permits wildcard matching. Such a rule is inert: it is stored, listed, and matches nothing.'
                workload_issuer_id:
                    type: string
                    description: The issuer that must assert this subject.
                    format: uuid
            description: A subject an organization admits, with the agent it inherits its policy from.
            required:
                - id
                - organization_id
                - project_id
                - workload_issuer_id
                - issuer
                - issuer_name
                - subject
                - match_kind
                - name
                - tags
                - agent_id
                - agent_name
                - wildcard_active
                - created_at
                - updated_at
        WorkloadCustomFlows:
            type: object
            properties:
                allow_access:
                    $ref: '#/components/schemas/WorkloadForm'
                edit_access:
                    $ref: '#/components/schemas/WorkloadForm'
                edit_platform:
                    $ref: '#/components/schemas/WorkloadForm'
                register_platform:
                    $ref: '#/components/schemas/WorkloadForm'
            description: The forms for trusting a platform the catalog does not list and allowing its workloads.
            required:
                - register_platform
                - edit_platform
                - allow_access
                - edit_access
        WorkloadDeviceJoinToken:
            type: object
            properties:
                expires_at:
                    type: string
                    description: When the token stops being redeemable.
                    format: date-time
                token:
                    type: string
                    description: The join token. Shown once; only its hash is stored.
            required:
                - token
                - expires_at
        WorkloadDeviceRegistration:
            type: object
            properties:
                agent_id:
                    type: string
                    description: The agent the device inherits its policy from.
                    format: uuid
                device_subject:
                    type: string
                    description: The device's workload subject, device:<uuid>. Its assertions carry this as sub.
                issuer:
                    type: string
                    description: The issuer its assertions carry as iss.
                organization_id:
                    type: string
                    description: The organization the device enrolled in.
            required:
                - device_subject
                - issuer
                - agent_id
                - organization_id
        WorkloadForm:
            type: object
            properties:
                description:
                    type: string
                    description: Shown under the title.
                pending_label:
                    type: string
                    description: The submit button's label while the form submits.
                steps:
                    type: array
                    items:
                        $ref: '#/components/schemas/WorkloadFormStep'
                    description: The form's steps, in order.
                submit_label:
                    type: string
                    description: The submit button's label.
                title:
                    type: string
                    description: Heads the form.
            description: A custom flow's form, held to the management API form it submits.
            required:
                - title
                - description
                - submit_label
                - pending_label
                - steps
        WorkloadFormBlock:
            type: object
            properties:
                field:
                    type: string
                    description: The form value an input collects. label is submitted as an admission's name.
                    enum:
                        - ""
                        - name
                        - description
                        - issuer
                        - jwks_uri
                        - subject
                        - label
                format:
                    type: string
                    description: The dashboard validator an input's value must pass. The server applies the same rules when the form is submitted.
                    enum:
                        - ""
                        - issuer_url
                        - jwks_uri
                        - platform_name
                        - platform_description
                        - subject_rule
                        - none
                help:
                    type: string
                    description: Markdown shown under a form control while it has no validation message. Raw HTML in it must not be rendered.
                href:
                    type: string
                    description: A link's https target.
                label:
                    type: string
                    description: A link's label, or a form control's.
                markdown:
                    type: string
                    description: A text block's Markdown. Raw HTML in it must not be rendered.
                multiline:
                    type: boolean
                    description: Whether an input is a text area.
                placeholder:
                    type: string
                    description: Shown in an empty form control.
                read_only:
                    type: boolean
                    description: Whether an input shows its value without letting it change. A read-only value is not submitted.
                type:
                    type: string
                    description: The kind of content. wildcard_caution marks where the form warns that a wildcard rule admits more than one identity; the dashboard writes that warning, since it names the rule and the agent.
                    enum:
                        - text
                        - link
                        - input
                        - agent_picker
                        - tags
                        - wildcard_caution
            description: One piece of a custom flow's form. Which fields are set depends on type; the rest are empty.
            required:
                - type
                - markdown
                - href
                - label
                - field
                - placeholder
                - help
                - multiline
                - read_only
                - format
        WorkloadFormStep:
            type: object
            properties:
                blocks:
                    type: array
                    items:
                        $ref: '#/components/schemas/WorkloadFormBlock'
                    description: Rendered in order.
                id:
                    type: string
                    description: Stable within the form.
                title:
                    type: string
                    description: Heads the step.
            description: One screen of a custom flow's form.
            required:
                - id
                - title
                - blocks
        WorkloadIdentityPolicy:
            type: object
            properties:
                admissions:
                    type: array
                    items:
                        $ref: '#/components/schemas/WorkloadAdmission'
                    description: Admitted subjects.
                issuers:
                    type: array
                    items:
                        $ref: '#/components/schemas/WorkloadIssuer'
                    description: Trusted issuers, organization tier first.
            description: The whole trust policy visible to the caller. Every write returns this, so a client replaces its view rather than merging into it and cannot show a stale list after a mutation.
            required:
                - issuers
                - admissions
        WorkloadIssuer:
            type: object
            properties:
                allow_wildcard_admission:
                    type: boolean
                    description: Whether subjects under this issuer may be admitted by a wildcard rule.
                created_at:
                    type: string
                    format: date-time
                description:
                    type: string
                    description: What the platform is and what runs on it. Empty rather than absent where none is set.
                id:
                    type: string
                    description: The workload issuer id.
                    format: uuid
                issuer:
                    type: string
                    description: The issuer identifier the assertion's iss claim must carry.
                jwks_uri:
                    type: string
                    description: Where the issuer publishes its signing keys.
                name:
                    type: string
                    description: The label an operator works with.
                organization_id:
                    type: string
                    description: The owning organization id.
                project_id:
                    type: string
                    description: The owning project id; empty for an organization-tier issuer.
                tags:
                    type: array
                    items:
                        type: string
                    description: Free-form labels for grouping and filtering trusted platforms. Empty rather than absent where none are set.
                updated_at:
                    type: string
                    format: date-time
            description: An external issuer an organization trusts to vouch for its workloads.
            required:
                - id
                - organization_id
                - project_id
                - name
                - issuer
                - jwks_uri
                - description
                - allow_wildcard_admission
                - tags
                - created_at
                - updated_at
        WorkloadPlatform:
            type: object
            properties:
                description:
                    type: string
                    description: What connecting the platform does.
                display_name:
                    type: string
                    description: What the operator sees.
                enabled:
                    type: boolean
                    description: False for a platform listed but not offered.
                icon:
                    type: string
                    description: The platform's logo, a path on the dashboard's origin. Empty where it has none.
                issuer:
                    $ref: '#/components/schemas/WorkloadPlatformConstant'
                jwks_uri:
                    $ref: '#/components/schemas/WorkloadPlatformConstant'
                key:
                    type: string
                    description: Identifies the entry permanently.
                subject:
                    $ref: '#/components/schemas/WorkloadPlatformSubject'
                variables:
                    type: array
                    items:
                        $ref: '#/components/schemas/WorkloadPlatformVariable'
                    description: What the operator supplies.
            description: A platform the catalog offers to trust, with what the operator supplies to connect it. How the setup is explained belongs to the dashboard, not to this policy.
            required:
                - key
                - display_name
                - description
                - icon
                - enabled
                - issuer
                - jwks_uri
                - variables
                - subject
        WorkloadPlatformCatalog:
            type: object
            properties:
                platforms:
                    type: array
                    items:
                        $ref: '#/components/schemas/WorkloadPlatform'
                    description: The catalog entries.
            description: Every platform the catalog offers, ordered by key.
            required:
                - platforms
        WorkloadPlatformConstant:
            type: object
            properties:
                value:
                    type: string
                    description: The value, with {key} placeholders for platform-tier variables.
                visibility:
                    type: string
                    description: Whether the operator sees the value.
                    enum:
                        - hidden
                        - read-only
            description: A value a catalog platform supplies, the same for every customer.
            required:
                - value
                - visibility
        WorkloadPlatformSubject:
            type: object
            properties:
                template:
                    type: string
                    description: The subject with {key} placeholders for rule-tier variables; the stem, for a wildcard rule.
                wildcard:
                    type: boolean
                    description: Whether the rule is the filled template followed by *.
            description: The access rule a catalog platform produces.
            required:
                - template
                - wildcard
        WorkloadPlatformVariable:
            type: object
            properties:
                help:
                    type: string
                    description: Where the operator finds the value. Empty where there is no help.
                key:
                    type: string
                    description: Names the variable in templates, as {key}.
                label:
                    type: string
                    description: The field's label.
                pattern:
                    type: string
                    description: A regular expression the whole value must match.
                pattern_message:
                    type: string
                    description: Shown when the value does not match. Empty where there is none.
                placeholder:
                    type: string
                    description: Shown in the empty field. Empty where there is none.
                tier:
                    type: string
                    description: Whether it is supplied once per trusted platform or once per access rule.
                    enum:
                        - platform
                        - rule
            description: Something the operator supplies when connecting a catalog platform.
            required:
                - key
                - tier
                - label
                - help
                - placeholder
                - pattern
                - pattern_message
        WorkloadTokenEndpoint:
            type: object
            properties:
                issuer:
                    type: string
                    description: The authorization server's issuer identifier, as its RFC 8414 metadata publishes it.
                mcp_host:
                    type: string
                    description: The host MCP servers are served on, which a platform calls with the tokens it is issued.
                project_id:
                    type: string
                    description: The owning project id; empty for an organization-level issuer.
                project_name:
                    type: string
                    description: The owning project name; empty for an organization-level issuer.
                token_endpoint:
                    type: string
                    description: The authorization server's token endpoint.
                user_session_issuer_id:
                    type: string
                    description: The user session issuer id.
                    format: uuid
                user_session_issuer_slug:
                    type: string
                    description: The user session issuer slug.
            description: The shared authorization server of a user session issuer, which an external platform exchanges its workload token at.
            required:
                - user_session_issuer_id
                - user_session_issuer_slug
                - project_id
                - project_name
                - issuer
                - token_endpoint
                - mcp_host
        WorkloadTokenEndpoints:
            type: object
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/WorkloadTokenEndpoint'
                    description: Organization-level issuers first, then by project name and issuer slug.
            required:
                - items
    securitySchemes:
        admin_auth_header_Authorization:
            type: apiKey
            description: Admin session auth for admin endpoints. Cookie-only credential; session is validated against Google on every request.
            name: Authorization
            in: header
        apikey_header_Authorization:
            type: apiKey
            description: key based auth.
            name: Authorization
            in: header
        apikey_header_Gram-Key:
            type: apiKey
            description: key based auth.
            name: Gram-Key
            in: header
        chat_sessions_token_header_Gram-Chat-Session:
            type: http
            description: Speakeasy Chat Sessions token based auth.
            scheme: bearer
        device_agent_token_header_Authorization:
            type: http
            description: Device-agent token from the workload assertion grant at /oauth/workload/device-agent/{organization_id}/token.
            scheme: bearer
        function_token_header_Authorization:
            type: http
            description: Speakeasy Functions token based auth.
            scheme: bearer
        project_slug_header_Gram-Project:
            type: apiKey
            description: project slug header auth.
            name: Gram-Project
            in: header
        session_header_Gram-Session:
            type: apiKey
            description: Session based auth. By cookie or header.
            name: Gram-Session
            in: header
tags:
    - name: killswitches
      description: Manage MCP tool-call killswitches for users in the active organization. Requires an ordinary live organization-administrator session.
    - name: access
      description: Manage roles, team member access control, and authorization challenge events.
    - name: agent
      description: Endpoints consumed by the Speakeasy device agent running on developer machines. Authenticates via an API key carrying the 'agent_user' scope — the per-user credential minted by token-exchange. An org key with the broader 'agent' scope also satisfies most of these endpoints (it implies 'agent_user'), so existing installs keep working during the transition. A headless device enrolled as a workload may call getPlugins with a device-agent token instead. The content-bearing session-portability endpoints — getSessionMeta and createSessionHandoff — refuse it and require a per-user key.
    - name: agents
      description: Human-only management of first-class agent principals.
    - name: aiIntegrations
      description: Manage organization-level AI provider integrations.
    - name: analytics
      description: Query agent session data by dataset and field, never by table or SQL. The catalog describe serves is the contract.
    - name: assets
      description: Manages assets used by Speakeasy projects.
    - name: organizationAssets
      description: Manages organization-tier assets — files owned by an organization rather than a single project, such as remote identity provider logos.
    - name: assistantMemories
      description: Manage assistant memory records.
    - name: assistants
      description: Manage assistants and their runtime configuration.
    - name: auditlogs
      description: Manages audit logs in Speakeasy.
    - name: auth
      description: Managed auth for gram producers and dashboard.
    - name: businessMemories
      description: Inspect and semantically search business memories.
    - name: chat
      description: Managed chats for gram AI consumers.
    - name: chatSessions
      description: Manages chat session tokens for client-side authentication
    - name: cliAuth
      description: Interactive device-agent enrollment via a PKCE one-time-code exchange. authorize (dashboard session) mints a short-lived code bound to a PKCE challenge; redeem (no auth — the code+verifier pair is the credential) exchanges it once for a per-user [agent,hooks] API key.
    - name: dashboards
      description: 'Dashboards: a project''s layouts of saved widgets. Any member can make one; editing someone else''s needs project write access.'
    - name: dataExports
      description: Manage project-scoped data export destinations and routes.
    - name: deployments
      description: Manages deployments of tools from upstream sources.
    - name: deviceIntegrations
      description: 'Manage organization-level device integrations: MDM inventory sources and compliance evidence sinks.'
    - name: domains
      description: Manage custom domains for gram.
    - name: environments
      description: Managing toolset environments.
    - name: externalCredentials
      description: Manage organization-level external credentials — how Speakeasy authenticates into a customer's AWS or GCP account.
    - name: externalKeys
      description: Manage organization-level external keys — externally-managed AWS or GCP KMS keys Speakeasy signs with.
    - name: mcpRegistries
      description: External MCP registry operations
    - name: functions
      description: Endpoints for working with functions.
    - name: hooksServerNames
      description: Manages display name overrides for hooks servers.
    - name: hooks
      description: Receives hook events from coding assistants for tool usage observability.
    - name: identity
      description: Resolves the identifiers Speakeasy records activity under into a single identity.
    - name: identityProviderConnections
      description: 'Manage the organization''s Okta connection: provision the private_key_jwt credential, submit the Okta client ID, verify granted scopes, and revoke.'
    - name: instances
      description: Consumer APIs for interacting with all relevant data for an instance of a toolset and environment.
    - name: integrations
      description: Explore third-party tools in Speakeasy.
    - name: internalSessionIssuers
      description: 'Manage the organization''s internal session issuer: the permanent issuer URI Speakeasy signs enterprise-managed authorization assertions with, and its signing keys.'
    - name: jsonWebKeySets
      description: Manage organization-level JSON Web Key Sets — published public keys backed by customer KMS keys — and the publish/activate/retire/revoke lifecycle of their keys.
    - name: keys
      description: Managing system api keys.
    - name: launcher
      description: Rank command palette candidates by the intent behind the text the user typed.
    - name: litellm
      description: Receives LiteLLM Generic Guardrail callbacks and OpenTelemetry exports.
    - name: mcpApproval
      description: Dashboard API for reviewing and deciding MCP server approval requests.
    - name: mcpEndpoints
      description: Managing MCP endpoints, the url-friendly slug identifiers that address MCP servers and meta MCP servers.
    - name: mcpMetadata
      description: Manages metadata for the MCP install page shown to users.
    - name: registryDiscovery
      description: 'Authenticated discovery-only preview. Current records only: no version history, incremental synchronization or mirror guarantees. Uses Speakeasy credentials, not generic-client OAuth. Discovery errors use the pinned standard error envelope; authorization uses Speakeasy security.'
    - name: mcpServers
      description: Managing MCP servers, which configure authentication, environment, and backend selection for an MCP server.
    - name: metaMcp
      description: 'Managing meta MCP servers: aggregate servers that front an explicitly managed set of MCP servers through a single endpoint.'
    - name: modelKeys
      description: Manage customer-supplied model provider API keys, scoped per project and responsibility slot.
    - name: networkIngress
      description: Manage an organization's private network ingress desired state.
    - name: oktaResourceConnections
      description: 'Okta resource connections per MCP server: what the organization administrator still has to do in the identity provider console, what they confirmed, and what the exchange path observed. Advisory only; the exchange path never consults it.'
    - name: oktaServerSuggestions
      description: 'MCP servers suggested from the organization''s Okta applications: catalog entries whose staff-curated Okta mapping matches a synced, assigned application. Administrators accept by creating the server through the usual remote MCP flow, or dismiss; dismissals are remembered per organization and audited.'
    - name: organizations
      description: Organization membership, invitations, and directory.
    - name: otel
      description: Receives OpenTelemetry signals from LLM providers and harnesses.
    - name: packages
      description: Manages packages in Speakeasy.
    - name: adminAssets
      description: Platform-admin management of platform-tier assets — files shared across every organization (project_id NULL, organization_id NULL). Speakeasy-staff only; every method requires the platform-admin flag.
    - name: adminChatAnalysis
      description: Platform-admin management of an organization's chat session analysis settings. Speakeasy-staff only; every method requires the platform-admin flag.
    - name: adminExternalCredentials
      description: Platform-admin management of platform external_credentials — how Speakeasy authenticates into a cloud provider to reach a platform KMS key. Shared across every organization (organization_id NULL, project_id NULL). Speakeasy-staff only; every method requires the platform-admin flag.
    - name: platformKillswitches
      description: Platform break-glass access to generic killswitch lifecycle operations on the main server. Requires a current users.admin entitlement on an ordinary Speakeasy session.
    - name: adminOpenRouterKeys
      description: Platform-admin management of per-organization platform OpenRouter keys. Speakeasy-staff only; every method requires the platform-admin flag.
    - name: platformMcp
      description: Session-authenticated onboarding and lifecycle projection for the organization-level Speakeasy Platform MCP.
    - name: plugins
      description: Manage distributable plugin bundles of MCP servers and hooks.
    - name: features
      description: Manage product level feature controls.
    - name: projects
      description: Manages projects in Speakeasy.
    - name: remoteMcp
      description: Managing remote MCP servers.
    - name: organizationRemoteSessionClients
      description: Manage remote_session_client records from the organization-administrator surface — clients across every project in the caller's organization. client_secret_encrypted is never returned.
    - name: remoteSessionClients
      description: Manage remote_session_client records — credentials Speakeasy uses when acting as an OAuth client of a remote_session_issuer. client_secret_encrypted is never returned.
    - name: organizationRemoteSessionIssuers
      description: Manage organization-level remote_session_issuer records — cross-project upstream Authorization Server identity records inherited by every project in the organization.
    - name: remoteSessionIssuers
      description: Manage remote_session_issuer records — upstream Authorization Server identity records that Speakeasy talks to as an OAuth client.
    - name: adminRemoteSessions
      description: Platform-admin management of global remote_session_issuer / remote_session_client records — shared across every organization (project_id NULL, organization_id NULL). Speakeasy-staff only; every method requires the platform-admin flag.
    - name: organizationRemoteSessions
      description: Organization-administrator visibility into remote_sessions Speakeasy is holding on a principal's behalf, across every project in the caller's organization. access_token_encrypted and refresh_token_encrypted are never returned.
    - name: remoteSessions
      description: Operator visibility into remote_sessions Speakeasy is holding on a principal's behalf. Read + revoke; sessions are written by /mcp/{slug}/remote_login_callback and the silent-refresh path. access_token_encrypted and refresh_token_encrypted are never returned. Also hosts composite dashboard operations that configure a single MCP server's identity in one atomic call.
    - name: resources
      description: Dashboard API for interacting with resources.
    - name: risk
      description: Manage risk analysis policies and view scan results.
    - name: sigint
      description: Manage project-scoped custom signals and sensors. Signals are reusable live definitions; sensors attach an ordered set of signals in multi-label, exclusive, or ordered-score mode.
    - name: skillEfficacy
      description: Manage organization-wide skill efficacy sampling settings.
    - name: skills
      description: Manage project skills and their immutable versions. Methods are gated by the skills product feature and skill read or write scopes.
    - name: slackDirectoryConnections
      description: Manage organization-wide Slack workspace authorizations, independently of project runtime installations.
    - name: spendRules
      description: Manage budget rules, view budget events, and preview actor targeting.
    - name: telemetry
      description: Fetch telemetry data for tools in Speakeasy.
    - name: templates
      description: Manages re-usable prompt templates for a project.
    - name: tokenExchange
      description: 'Device-agent token exchange: trade an org-scoped install credential (an API key with the ''agent'' scope) plus a vouched user email for a long-lived, per-user API key scoped for the device agent.'
    - name: tools
      description: Dashboard API for interacting with tools.
    - name: toolsets
      description: Managed toolsets for gram AI consumers.
    - name: triggers
      description: Manage project trigger instances and static trigger definitions.
    - name: tunneledMcp
      description: Managing customer-hosted tunneled MCP servers.
    - name: unproxiedMcp
      description: Managing unproxied MCP servers. These are vendor MCP servers that Speakeasy lists and can attach to a plugin but never proxies, so there is no OAuth callback or upstream allowlisting involved.
    - name: usage
      description: Read usage for gram.
    - name: admin
      description: Operations supporting admin tasks, protected by Google workspace auth.
    - name: userSessionClients
      description: Operator visibility into MCP clients registered against a user-session issuer (user_session_clients). Read + revoke. Registrations are written by /mcp/{slug}/register (RFC 7591 DCR) or resolved from a Client ID Metadata Document on /mcp/{slug}/authorize (CIMD); client_id_metadata_uri distinguishes the two.
    - name: userSessionConsents
      description: Operator visibility into user_session_consents — persistent consent records per (subject, user_session_client). List + revoke.
    - name: userSessionIssuersCimdClients
      description: 'Manage the CIMD (OAuth Client ID Metadata Document) clients a user_session_issuer admits: the read-only preset catalog Speakeasy curates, plus per-issuer custom document URLs.'
    - name: userSessionIssuers
      description: Manage user_session_issuer records — Speakeasy-side authorization-server configuration that issues user sessions for an MCP server.
    - name: organizationUserSessionIssuers
      description: Manage organization-owned user_session_issuer records inherited by every project in the caller's organization.
    - name: userSessions
      description: Operator visibility into issued user_sessions. List + revoke; sessions are written by /mcp/{slug}/token.
    - name: widgets
      description: 'Widgets: Explore''s saved questions, each kept with the chart that draws it.'
    - name: workloadIdentities
      description: 'Configure which workloads an organization recognises as its own: the issuers it trusts, the subjects those issuers may present, and the agent each admitted workload inherits its policy from.'
    - name: variations
      description: Manage variations of tools.
    - name: external
      description: Endpoints for external services to interact with gram.
