openapi: 3.1.0
info:
    title: AgentRegistry Enterprise
    description: AgentRegistry Enterprise API - combines the upstream MCP Registry API with enterprise-specific endpoints for cloud provider integrations (GCP, AWS, Azure), deployments, and manifest management.
    version: v2026.6.0
paths:
    /v0/a2a/sessions/{runtime}/agents/{deploymentName}:
        post:
            tags:
                - a2a
            summary: Start A2A session
            description: 'Streams the incoming request body to the upstream agent endpoint using credentials from the stored connection. Supported runtime types: BedrockAgentCore, GeminiAgentRuntime, Kagent.'
            operationId: start-a2a-session
            parameters:
                - name: runtime
                  in: path
                  required: true
                  schema:
                    type: string
                - name: deploymentName
                  in: path
                  required: true
                  schema:
                    type: string
                - name: endpoint_name
                  in: query
                  explode: false
                  schema:
                    type: string
            requestBody:
                content:
                    application/octet-stream:
                        schema:
                            type: string
                            format: binary
                required: true
            responses:
                "200":
                    description: OK
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/accesspolicies:
        get:
            summary: List AccessPolicy (scoped by ?namespace)
            operationId: list-accesspolicies
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                  explode: false
                  schema:
                    type: string
                    description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                - name: limit
                  in: query
                  description: Max items to return (default 50).
                  explode: false
                  schema:
                    type: integer
                    description: Max items to return (default 50).
                    format: int64
                    default: 50
                - name: cursor
                  in: query
                  description: Opaque pagination cursor.
                  explode: false
                  schema:
                    type: string
                    description: Opaque pagination cursor.
                - name: labels
                  in: query
                  description: 'Label selector: key=value,key2=value2.'
                  explode: false
                  schema:
                    type: string
                    description: 'Label selector: key=value,key2=value2.'
                - name: tag
                  in: query
                  description: Restrict the result set to one tag value (tagged artifact kinds only).
                  explode: false
                  schema:
                    type: string
                    description: Restrict the result set to one tag value (tagged artifact kinds only).
                - name: latestOnly
                  in: query
                  description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                  explode: false
                  schema:
                    type: boolean
                    description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                - name: includeTerminating
                  in: query
                  description: Include rows with a deletionTimestamp.
                  explode: false
                  schema:
                    type: boolean
                    description: Include rows with a deletionTimestamp.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputAccessPolicyBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/accesspolicies/{name}:
        get:
            summary: Get the latest AccessPolicy
            operationId: get-latest-accesspolicy
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AccessPolicy'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        put:
            summary: Apply a AccessPolicy (idempotent upsert)
            operationId: apply-accesspolicy
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/AccessPolicy'
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AccessPolicy'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        delete:
            summary: 'Delete a AccessPolicy (soft-delete: sets deletionTimestamp)'
            operationId: delete-accesspolicy
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/agents:
        get:
            summary: List Agent (scoped by ?namespace)
            operationId: list-agents
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                  explode: false
                  schema:
                    type: string
                    description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                - name: limit
                  in: query
                  description: Max items to return (default 50).
                  explode: false
                  schema:
                    type: integer
                    description: Max items to return (default 50).
                    format: int64
                    default: 50
                - name: cursor
                  in: query
                  description: Opaque pagination cursor.
                  explode: false
                  schema:
                    type: string
                    description: Opaque pagination cursor.
                - name: labels
                  in: query
                  description: 'Label selector: key=value,key2=value2.'
                  explode: false
                  schema:
                    type: string
                    description: 'Label selector: key=value,key2=value2.'
                - name: tag
                  in: query
                  description: Restrict the result set to one tag value (tagged artifact kinds only).
                  explode: false
                  schema:
                    type: string
                    description: Restrict the result set to one tag value (tagged artifact kinds only).
                - name: latestOnly
                  in: query
                  description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                  explode: false
                  schema:
                    type: boolean
                    description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                - name: includeTerminating
                  in: query
                  description: Include rows with a deletionTimestamp.
                  explode: false
                  schema:
                    type: boolean
                    description: Include rows with a deletionTimestamp.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputAgentBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/agents/{name}:
        get:
            summary: Get the latest Agent
            operationId: get-latest-agent
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Agent'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/agents/{name}/{tag}:
        get:
            summary: Get a Agent by name and tag
            operationId: get-agent
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
                - name: tag
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Agent'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        delete:
            summary: 'Delete a Agent (soft-delete: sets deletionTimestamp)'
            operationId: delete-agent
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
                - name: tag
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/agents/{name}/tags:
        get:
            summary: List all tags of a Agent
            operationId: list-tags-agent
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputAgentBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/apply:
        post:
            summary: Apply a multi-doc YAML stream of v1alpha1 resources
            operationId: apply-batch
            parameters:
                - name: dryRun
                  in: query
                  description: Run validation without mutating the store. Defaults to false.
                  explode: false
                  schema:
                    type: boolean
                    description: Run validation without mutating the store. Defaults to false.
            requestBody:
                content:
                    application/yaml:
                        schema:
                            type: string
                            format: binary
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApplyResultsResponse'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        delete:
            summary: Delete v1alpha1 resources identified by a multi-doc YAML stream
            operationId: delete-batch
            parameters:
                - name: dryRun
                  in: query
                  description: Run validation without mutating the store. Defaults to false.
                  explode: false
                  schema:
                    type: boolean
                    description: Run validation without mutating the store. Defaults to false.
            requestBody:
                content:
                    application/yaml:
                        schema:
                            type: string
                            format: binary
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ApplyResultsResponse'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/deployments:
        get:
            summary: List Deployment (scoped by ?namespace)
            operationId: list-deployments
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                  explode: false
                  schema:
                    type: string
                    description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                - name: limit
                  in: query
                  description: Max items to return (default 50).
                  explode: false
                  schema:
                    type: integer
                    description: Max items to return (default 50).
                    format: int64
                    default: 50
                - name: cursor
                  in: query
                  description: Opaque pagination cursor.
                  explode: false
                  schema:
                    type: string
                    description: Opaque pagination cursor.
                - name: labels
                  in: query
                  description: 'Label selector: key=value,key2=value2.'
                  explode: false
                  schema:
                    type: string
                    description: 'Label selector: key=value,key2=value2.'
                - name: tag
                  in: query
                  description: Restrict the result set to one tag value (tagged artifact kinds only).
                  explode: false
                  schema:
                    type: string
                    description: Restrict the result set to one tag value (tagged artifact kinds only).
                - name: latestOnly
                  in: query
                  description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                  explode: false
                  schema:
                    type: boolean
                    description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                - name: includeTerminating
                  in: query
                  description: Include rows with a deletionTimestamp.
                  explode: false
                  schema:
                    type: boolean
                    description: Include rows with a deletionTimestamp.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputDeploymentBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/deployments/{name}:
        get:
            summary: Get the latest Deployment
            operationId: get-latest-deployment
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Deployment'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        put:
            summary: Apply a Deployment (idempotent upsert)
            operationId: apply-deployment
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/Deployment'
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Deployment'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        delete:
            summary: 'Delete a Deployment (soft-delete: sets deletionTimestamp)'
            operationId: delete-deployment
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/deployments/{name}/logs:
        get:
            summary: Stream logs from a deployment's runtime workload
            operationId: get-deployment-logs
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
                - name: follow
                  in: query
                  description: Stream indefinitely until client disconnects.
                  explode: false
                  schema:
                    type: boolean
                    description: Stream indefinitely until client disconnects.
                - name: tailLines
                  in: query
                  description: Max backlog lines before live tail; 0 = unbounded.
                  explode: false
                  schema:
                    type: integer
                    description: Max backlog lines before live tail; 0 = unbounded.
                    format: int64
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/DeploymentLogsOutputBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/gateways:
        get:
            summary: List Gateway (scoped by ?namespace)
            operationId: list-gateways
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                  explode: false
                  schema:
                    type: string
                    description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                - name: limit
                  in: query
                  description: Max items to return (default 50).
                  explode: false
                  schema:
                    type: integer
                    description: Max items to return (default 50).
                    format: int64
                    default: 50
                - name: cursor
                  in: query
                  description: Opaque pagination cursor.
                  explode: false
                  schema:
                    type: string
                    description: Opaque pagination cursor.
                - name: labels
                  in: query
                  description: 'Label selector: key=value,key2=value2.'
                  explode: false
                  schema:
                    type: string
                    description: 'Label selector: key=value,key2=value2.'
                - name: tag
                  in: query
                  description: Restrict the result set to one tag value (tagged artifact kinds only).
                  explode: false
                  schema:
                    type: string
                    description: Restrict the result set to one tag value (tagged artifact kinds only).
                - name: latestOnly
                  in: query
                  description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                  explode: false
                  schema:
                    type: boolean
                    description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                - name: includeTerminating
                  in: query
                  description: Include rows with a deletionTimestamp.
                  explode: false
                  schema:
                    type: boolean
                    description: Include rows with a deletionTimestamp.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputGatewayBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/gateways/{name}:
        get:
            summary: Get the latest Gateway
            operationId: get-latest-gateway
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Gateway'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        put:
            summary: Apply a Gateway (idempotent upsert)
            operationId: apply-gateway
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/Gateway'
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Gateway'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        delete:
            summary: 'Delete a Gateway (soft-delete: sets deletionTimestamp)'
            operationId: delete-gateway
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/health:
        get:
            tags:
                - health
            summary: Health check
            description: Check the health status of the API
            operationId: get-health-v0
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/HealthBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/mcpservers:
        get:
            summary: List MCPServer (scoped by ?namespace)
            operationId: list-mcpservers
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                  explode: false
                  schema:
                    type: string
                    description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                - name: limit
                  in: query
                  description: Max items to return (default 50).
                  explode: false
                  schema:
                    type: integer
                    description: Max items to return (default 50).
                    format: int64
                    default: 50
                - name: cursor
                  in: query
                  description: Opaque pagination cursor.
                  explode: false
                  schema:
                    type: string
                    description: Opaque pagination cursor.
                - name: labels
                  in: query
                  description: 'Label selector: key=value,key2=value2.'
                  explode: false
                  schema:
                    type: string
                    description: 'Label selector: key=value,key2=value2.'
                - name: tag
                  in: query
                  description: Restrict the result set to one tag value (tagged artifact kinds only).
                  explode: false
                  schema:
                    type: string
                    description: Restrict the result set to one tag value (tagged artifact kinds only).
                - name: latestOnly
                  in: query
                  description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                  explode: false
                  schema:
                    type: boolean
                    description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                - name: includeTerminating
                  in: query
                  description: Include rows with a deletionTimestamp.
                  explode: false
                  schema:
                    type: boolean
                    description: Include rows with a deletionTimestamp.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputMCPServerBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/mcpservers/{name}:
        get:
            summary: Get the latest MCPServer
            operationId: get-latest-mcpserver
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MCPServer'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/mcpservers/{name}/{tag}:
        get:
            summary: Get a MCPServer by name and tag
            operationId: get-mcpserver
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
                - name: tag
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/MCPServer'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        delete:
            summary: 'Delete a MCPServer (soft-delete: sets deletionTimestamp)'
            operationId: delete-mcpserver
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
                - name: tag
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/mcpservers/{name}/tags:
        get:
            summary: List all tags of a MCPServer
            operationId: list-tags-mcpserver
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputMCPServerBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/ping:
        get:
            tags:
                - ping
            summary: Ping
            description: Simple ping endpoint
            operationId: ping-v0
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/PingBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/platforms/aws/setup:
        post:
            tags:
                - platforms
                - aws
            summary: Generate AWS setup information
            description: Generate External ID and CloudFormation template for cross-account access setup
            operationId: get-aws-setup
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/Get-aws-setupRequest'
                required: true
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/AWSSetupResponse'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/prompts:
        get:
            summary: List Prompt (scoped by ?namespace)
            operationId: list-prompts
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                  explode: false
                  schema:
                    type: string
                    description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                - name: limit
                  in: query
                  description: Max items to return (default 50).
                  explode: false
                  schema:
                    type: integer
                    description: Max items to return (default 50).
                    format: int64
                    default: 50
                - name: cursor
                  in: query
                  description: Opaque pagination cursor.
                  explode: false
                  schema:
                    type: string
                    description: Opaque pagination cursor.
                - name: labels
                  in: query
                  description: 'Label selector: key=value,key2=value2.'
                  explode: false
                  schema:
                    type: string
                    description: 'Label selector: key=value,key2=value2.'
                - name: tag
                  in: query
                  description: Restrict the result set to one tag value (tagged artifact kinds only).
                  explode: false
                  schema:
                    type: string
                    description: Restrict the result set to one tag value (tagged artifact kinds only).
                - name: latestOnly
                  in: query
                  description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                  explode: false
                  schema:
                    type: boolean
                    description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                - name: includeTerminating
                  in: query
                  description: Include rows with a deletionTimestamp.
                  explode: false
                  schema:
                    type: boolean
                    description: Include rows with a deletionTimestamp.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputPromptBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/prompts/{name}:
        get:
            summary: Get the latest Prompt
            operationId: get-latest-prompt
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Prompt'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/prompts/{name}/{tag}:
        get:
            summary: Get a Prompt by name and tag
            operationId: get-prompt
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
                - name: tag
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Prompt'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        delete:
            summary: 'Delete a Prompt (soft-delete: sets deletionTimestamp)'
            operationId: delete-prompt
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
                - name: tag
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/prompts/{name}/tags:
        get:
            summary: List all tags of a Prompt
            operationId: list-tags-prompt
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputPromptBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/runtimes:
        get:
            summary: List Runtime (scoped by ?namespace)
            operationId: list-runtimes
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                  explode: false
                  schema:
                    type: string
                    description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                - name: limit
                  in: query
                  description: Max items to return (default 50).
                  explode: false
                  schema:
                    type: integer
                    description: Max items to return (default 50).
                    format: int64
                    default: 50
                - name: cursor
                  in: query
                  description: Opaque pagination cursor.
                  explode: false
                  schema:
                    type: string
                    description: Opaque pagination cursor.
                - name: labels
                  in: query
                  description: 'Label selector: key=value,key2=value2.'
                  explode: false
                  schema:
                    type: string
                    description: 'Label selector: key=value,key2=value2.'
                - name: tag
                  in: query
                  description: Restrict the result set to one tag value (tagged artifact kinds only).
                  explode: false
                  schema:
                    type: string
                    description: Restrict the result set to one tag value (tagged artifact kinds only).
                - name: latestOnly
                  in: query
                  description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                  explode: false
                  schema:
                    type: boolean
                    description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                - name: includeTerminating
                  in: query
                  description: Include rows with a deletionTimestamp.
                  explode: false
                  schema:
                    type: boolean
                    description: Include rows with a deletionTimestamp.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputRuntimeBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/runtimes/{name}:
        get:
            summary: Get the latest Runtime
            operationId: get-latest-runtime
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Runtime'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        put:
            summary: Apply a Runtime (idempotent upsert)
            operationId: apply-runtime
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/Runtime'
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Runtime'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        delete:
            summary: 'Delete a Runtime (soft-delete: sets deletionTimestamp)'
            operationId: delete-runtime
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/skills:
        get:
            summary: List Skill (scoped by ?namespace)
            operationId: list-skills
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                  explode: false
                  schema:
                    type: string
                    description: Namespace (defaults to 'default'; 'all' lists across all namespaces).
                - name: limit
                  in: query
                  description: Max items to return (default 50).
                  explode: false
                  schema:
                    type: integer
                    description: Max items to return (default 50).
                    format: int64
                    default: 50
                - name: cursor
                  in: query
                  description: Opaque pagination cursor.
                  explode: false
                  schema:
                    type: string
                    description: Opaque pagination cursor.
                - name: labels
                  in: query
                  description: 'Label selector: key=value,key2=value2.'
                  explode: false
                  schema:
                    type: string
                    description: 'Label selector: key=value,key2=value2.'
                - name: tag
                  in: query
                  description: Restrict the result set to one tag value (tagged artifact kinds only).
                  explode: false
                  schema:
                    type: string
                    description: Restrict the result set to one tag value (tagged artifact kinds only).
                - name: latestOnly
                  in: query
                  description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                  explode: false
                  schema:
                    type: boolean
                    description: Only return the literal latest tag per (namespace, name). Equivalent to tag=latest for tagged kinds.
                - name: includeTerminating
                  in: query
                  description: Include rows with a deletionTimestamp.
                  explode: false
                  schema:
                    type: boolean
                    description: Include rows with a deletionTimestamp.
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputSkillBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/skills/{name}:
        get:
            summary: Get the latest Skill
            operationId: get-latest-skill
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Skill'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/skills/{name}/{tag}:
        get:
            summary: Get a Skill by name and tag
            operationId: get-skill
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
                - name: tag
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/Skill'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
        delete:
            summary: 'Delete a Skill (soft-delete: sets deletionTimestamp)'
            operationId: delete-skill
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
                - name: tag
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "204":
                    description: No Content
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/skills/{name}/tags:
        get:
            summary: List all tags of a Skill
            operationId: list-tags-skill
            parameters:
                - name: namespace
                  in: query
                  description: Namespace (internal; defaults to 'default').
                  explode: false
                  schema:
                    type: string
                    description: Namespace (internal; defaults to 'default').
                - name: name
                  in: path
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/ListOutputSkillBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/token-provider/jwks.json:
        get:
            tags:
                - token-provider
            summary: Get JSON Web Key Set
            description: Returns the JWKS containing public keys for verifying tokens minted by this registry. This endpoint is unauthenticated.
            operationId: get-jwks
            responses:
                "200":
                    description: OK
                    headers:
                        Content-Type:
                            schema:
                                type: string
                    content:
                        application/json:
                            schema: {}
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/user/whoami:
        get:
            tags:
                - user
            summary: Who am I
            description: Returns the authenticated user's identity and resolved roles
            operationId: whoami
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/WhoAmIResponse'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
    /v0/version:
        get:
            tags:
                - version
            summary: Get version information
            description: Returns the version, git commit, and build time of the registry application
            operationId: get-version-v0
            responses:
                "200":
                    description: OK
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/VersionBody'
                default:
                    description: Error
                    content:
                        application/problem+json:
                            schema:
                                $ref: '#/components/schemas/ErrorModel'
components:
    schemas:
        AWSGatewayConfig:
            type: object
            additionalProperties: false
            properties:
                agentCoreRuntimeSecurityGroupIds:
                    type: array
                    items:
                        type: string
                amiOverride:
                    type: string
            required:
                - agentCoreRuntimeSecurityGroupIds
        AWSSetupResponse:
            type: object
            additionalProperties: false
            properties:
                cloudFormationYaml:
                    type: string
                    description: CloudFormation template in YAML format
                expectedRoleName:
                    type: string
                    description: The role name that will be created
                externalId:
                    type: string
                    description: External ID to use in CloudFormation and connection
                quickCreateUrl:
                    type: string
                    description: URL to CloudFormation console
            required:
                - externalId
                - cloudFormationYaml
                - expectedRoleName
                - quickCreateUrl
        AWSStatus:
            type: object
            additionalProperties: false
            properties:
                agentgatewaySecurityGroupId:
                    type: string
                stsJwtSecretArn:
                    type: string
                stsSecurityGroupId:
                    type: string
        AccessPolicy:
            type: object
            additionalProperties: false
            properties:
                apiVersion:
                    type: string
                kind:
                    type: string
                metadata:
                    $ref: '#/components/schemas/ObjectMeta'
                spec:
                    $ref: '#/components/schemas/AccessPolicySpec'
                status:
                    $ref: '#/components/schemas/Status'
            required:
                - metadata
                - spec
                - apiVersion
                - kind
        AccessPolicySpec:
            type: object
            additionalProperties: false
            properties:
                description:
                    type: string
                principals:
                    type: array
                    items:
                        $ref: '#/components/schemas/Principal'
                rules:
                    type: array
                    items:
                        $ref: '#/components/schemas/Rule'
            required:
                - principals
                - rules
        Agent:
            type: object
            additionalProperties: false
            properties:
                apiVersion:
                    type: string
                kind:
                    type: string
                metadata:
                    $ref: '#/components/schemas/ObjectMeta'
                spec:
                    $ref: '#/components/schemas/AgentSpec'
                status:
                    $ref: '#/components/schemas/Status'
            required:
                - metadata
                - spec
                - apiVersion
                - kind
        AgentSource:
            type: object
            additionalProperties: false
            properties:
                image:
                    type: string
                repository:
                    $ref: '#/components/schemas/Repository'
        AgentSpec:
            type: object
            additionalProperties: false
            properties:
                description:
                    type: string
                mcpServers:
                    type: array
                    items:
                        $ref: '#/components/schemas/ResourceRef'
                modelName:
                    type: string
                modelProvider:
                    type: string
                source:
                    $ref: '#/components/schemas/AgentSource'
                title:
                    type: string
        ApplyResult:
            type: object
            additionalProperties: false
            properties:
                apiVersion:
                    type: string
                error:
                    type: string
                kind:
                    type: string
                name:
                    type: string
                namespace:
                    type: string
                status:
                    type: string
                tag:
                    type: string
            required:
                - name
                - status
        ApplyResultsResponse:
            type: object
            additionalProperties: false
            properties:
                results:
                    type: array
                    items:
                        $ref: '#/components/schemas/ApplyResult'
            required:
                - results
        AttributeTypeAndValue:
            type: object
            additionalProperties: false
            properties:
                Type:
                    type: array
                    items:
                        type: integer
                        format: int64
                Value: {}
            required:
                - Type
                - Value
        Certificate:
            type: object
            additionalProperties: false
            properties:
                AuthorityKeyId:
                    type: string
                    contentEncoding: base64
                BasicConstraintsValid:
                    type: boolean
                CRLDistributionPoints:
                    type: array
                    items:
                        type: string
                DNSNames:
                    type: array
                    items:
                        type: string
                EmailAddresses:
                    type: array
                    items:
                        type: string
                ExcludedDNSDomains:
                    type: array
                    items:
                        type: string
                ExcludedEmailAddresses:
                    type: array
                    items:
                        type: string
                ExcludedIPRanges:
                    type: array
                    items:
                        $ref: '#/components/schemas/IPNet'
                ExcludedURIDomains:
                    type: array
                    items:
                        type: string
                ExtKeyUsage:
                    type: array
                    items:
                        type: integer
                        format: int64
                Extensions:
                    type: array
                    items:
                        $ref: '#/components/schemas/Extension'
                ExtraExtensions:
                    type: array
                    items:
                        $ref: '#/components/schemas/Extension'
                IPAddresses:
                    type: array
                    items:
                        type: string
                        format: ipv4
                InhibitAnyPolicy:
                    type: integer
                    format: int64
                InhibitAnyPolicyZero:
                    type: boolean
                InhibitPolicyMapping:
                    type: integer
                    format: int64
                InhibitPolicyMappingZero:
                    type: boolean
                IsCA:
                    type: boolean
                Issuer:
                    $ref: '#/components/schemas/Name'
                IssuingCertificateURL:
                    type: array
                    items:
                        type: string
                KeyUsage:
                    type: integer
                    format: int64
                MaxPathLen:
                    type: integer
                    format: int64
                MaxPathLenZero:
                    type: boolean
                NotAfter:
                    type: string
                    format: date-time
                NotBefore:
                    type: string
                    format: date-time
                OCSPServer:
                    type: array
                    items:
                        type: string
                PermittedDNSDomains:
                    type: array
                    items:
                        type: string
                PermittedDNSDomainsCritical:
                    type: boolean
                PermittedEmailAddresses:
                    type: array
                    items:
                        type: string
                PermittedIPRanges:
                    type: array
                    items:
                        $ref: '#/components/schemas/IPNet'
                PermittedURIDomains:
                    type: array
                    items:
                        type: string
                Policies:
                    type: array
                    items:
                        type: string
                PolicyIdentifiers:
                    type: array
                    items:
                        type: array
                        items:
                            type: integer
                            format: int64
                PolicyMappings:
                    type: array
                    items:
                        $ref: '#/components/schemas/PolicyMapping'
                PublicKey: {}
                PublicKeyAlgorithm:
                    type: integer
                    format: int64
                Raw:
                    type: string
                    contentEncoding: base64
                RawIssuer:
                    type: string
                    contentEncoding: base64
                RawSubject:
                    type: string
                    contentEncoding: base64
                RawSubjectPublicKeyInfo:
                    type: string
                    contentEncoding: base64
                RawTBSCertificate:
                    type: string
                    contentEncoding: base64
                RequireExplicitPolicy:
                    type: integer
                    format: int64
                RequireExplicitPolicyZero:
                    type: boolean
                SerialNumber:
                    type: string
                Signature:
                    type: string
                    contentEncoding: base64
                SignatureAlgorithm:
                    type: integer
                    format: int64
                Subject:
                    $ref: '#/components/schemas/Name'
                SubjectKeyId:
                    type: string
                    contentEncoding: base64
                URIs:
                    type: array
                    items:
                        $ref: '#/components/schemas/URL'
                UnhandledCriticalExtensions:
                    type: array
                    items:
                        type: array
                        items:
                            type: integer
                            format: int64
                UnknownExtKeyUsage:
                    type: array
                    items:
                        type: array
                        items:
                            type: integer
                            format: int64
                Version:
                    type: integer
                    format: int64
            required:
                - Raw
                - RawTBSCertificate
                - RawSubjectPublicKeyInfo
                - RawSubject
                - RawIssuer
                - Signature
                - SignatureAlgorithm
                - PublicKeyAlgorithm
                - PublicKey
                - Version
                - SerialNumber
                - Issuer
                - Subject
                - NotBefore
                - NotAfter
                - KeyUsage
                - Extensions
                - ExtraExtensions
                - UnhandledCriticalExtensions
                - ExtKeyUsage
                - UnknownExtKeyUsage
                - BasicConstraintsValid
                - IsCA
                - MaxPathLen
                - MaxPathLenZero
                - SubjectKeyId
                - AuthorityKeyId
                - OCSPServer
                - IssuingCertificateURL
                - DNSNames
                - EmailAddresses
                - IPAddresses
                - URIs
                - PermittedDNSDomainsCritical
                - PermittedDNSDomains
                - ExcludedDNSDomains
                - PermittedIPRanges
                - ExcludedIPRanges
                - PermittedEmailAddresses
                - ExcludedEmailAddresses
                - PermittedURIDomains
                - ExcludedURIDomains
                - CRLDistributionPoints
                - PolicyIdentifiers
                - Policies
                - InhibitAnyPolicy
                - InhibitAnyPolicyZero
                - InhibitPolicyMapping
                - InhibitPolicyMappingZero
                - RequireExplicitPolicy
                - RequireExplicitPolicyZero
                - PolicyMappings
        Condition:
            type: object
            additionalProperties: false
            properties:
                lastTransitionTime:
                    type: string
                    format: date-time
                message:
                    type: string
                reason:
                    type: string
                status:
                    type: string
                type:
                    type: string
            required:
                - type
                - status
        Deployment:
            type: object
            additionalProperties: false
            properties:
                apiVersion:
                    type: string
                kind:
                    type: string
                metadata:
                    $ref: '#/components/schemas/ObjectMeta'
                spec:
                    $ref: '#/components/schemas/DeploymentSpec'
                status:
                    $ref: '#/components/schemas/Status'
            required:
                - metadata
                - spec
                - apiVersion
                - kind
        DeploymentLogLine:
            type: object
            additionalProperties: false
            properties:
                line:
                    type: string
                    description: Single log record.
                stream:
                    type: string
                    description: stdout | stderr | platform-specific.
                timestamp:
                    type: string
                    description: RFC3339 timestamp.
            required:
                - line
        DeploymentLogsOutputBody:
            type: object
            additionalProperties: false
            properties:
                lines:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeploymentLogLine'
            required:
                - lines
        DeploymentRef:
            type: object
            additionalProperties: false
            properties:
                name:
                    type: string
                namespace:
                    type: string
            required:
                - name
        DeploymentSpec:
            type: object
            additionalProperties: false
            properties:
                deploymentRefs:
                    type: array
                    items:
                        $ref: '#/components/schemas/DeploymentRef'
                desiredState:
                    type: string
                env:
                    type: object
                    additionalProperties:
                        type: string
                runtimeConfig:
                    type: object
                    additionalProperties: {}
                runtimeRef:
                    $ref: '#/components/schemas/ResourceRef'
                targetRef:
                    $ref: '#/components/schemas/ResourceRef'
            required:
                - targetRef
                - runtimeRef
        ErrorDetail:
            type: object
            additionalProperties: false
            properties:
                location:
                    type: string
                    description: Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'
                message:
                    type: string
                    description: Error message text
                value:
                    description: The value at the given location
        ErrorModel:
            type: object
            additionalProperties: false
            properties:
                detail:
                    type: string
                    description: A human-readable explanation specific to this occurrence of the problem.
                    examples:
                        - Property foo is required but is missing.
                errors:
                    type: array
                    description: Optional list of individual error details
                    items:
                        $ref: '#/components/schemas/ErrorDetail'
                instance:
                    type: string
                    description: A URI reference that identifies the specific occurrence of the problem.
                    format: uri
                    examples:
                        - https://example.com/error-log/abc123
                status:
                    type: integer
                    description: HTTP status code
                    format: int64
                    examples:
                        - 400
                title:
                    type: string
                    description: A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
                    examples:
                        - Bad Request
                type:
                    type: string
                    description: A URI reference to human-readable documentation for the error.
                    format: uri
                    default: about:blank
                    examples:
                        - https://example.com/errors/example
        Extension:
            type: object
            additionalProperties: false
            properties:
                Critical:
                    type: boolean
                Id:
                    type: array
                    items:
                        type: integer
                        format: int64
                Value:
                    type: string
                    contentEncoding: base64
            required:
                - Id
                - Critical
                - Value
        Gateway:
            type: object
            additionalProperties: false
            properties:
                apiVersion:
                    type: string
                kind:
                    type: string
                metadata:
                    $ref: '#/components/schemas/ObjectMeta'
                spec:
                    $ref: '#/components/schemas/GatewaySpec'
                status:
                    $ref: '#/components/schemas/GatewayStatus'
            required:
                - metadata
                - spec
                - apiVersion
                - kind
        GatewaySpec:
            type: object
            additionalProperties: false
            properties:
                agentgateway:
                    $ref: '#/components/schemas/ManagedAgentgatewayConfig'
                aws:
                    $ref: '#/components/schemas/AWSGatewayConfig'
                instanceType:
                    type: string
                mode:
                    type: string
                networkId:
                    type: string
                runtimeId:
                    type: string
                selector:
                    $ref: '#/components/schemas/Selector'
                sts:
                    $ref: '#/components/schemas/ManagedSTSConfig'
                subnetId:
                    type: string
            required:
                - runtimeId
                - networkId
                - subnetId
                - mode
        GatewayStatus:
            type: object
            additionalProperties: false
            properties:
                aws:
                    $ref: '#/components/schemas/AWSStatus'
                gatewayInstanceId:
                    type: string
                gatewayPrivateIp:
                    type: string
                lastError:
                    type: string
                lastReconciledAt:
                    type: string
                    format: date-time
                phase:
                    type: string
                platform:
                    type: string
                region:
                    type: string
                stsInstanceId:
                    type: string
                stsPrivateIp:
                    type: string
        Get-aws-setupRequest:
            type: object
            additionalProperties: false
            properties:
                awsAccountId:
                    type: string
                    description: AWS Account ID
                    examples:
                        - "123456789012"
                roleName:
                    type: string
                    description: Name for the IAM role (optional)
                    examples:
                        - AgentRegistryAccessRole-abc12345
            required:
                - awsAccountId
        HTTPHeader:
            type: object
            additionalProperties: false
            properties:
                name:
                    type: string
                value:
                    type: string
            required:
                - name
        HealthBody:
            type: object
            additionalProperties: false
            properties:
                platform_mode:
                    type: string
                    description: Platform mode
                    examples:
                        - docker
                    enum:
                        - docker
                        - kubernetes
                status:
                    type: string
                    description: Health status
                    examples:
                        - ok
            required:
                - status
        IPNet:
            type: object
            additionalProperties: false
            properties:
                IP:
                    type: string
                    format: ipv4
                Mask:
                    type: string
                    contentEncoding: base64
            required:
                - IP
                - Mask
        JSONWebKey:
            type: object
            additionalProperties: false
            properties:
                Algorithm:
                    type: string
                CertificateThumbprintSHA1:
                    type: string
                    contentEncoding: base64
                CertificateThumbprintSHA256:
                    type: string
                    contentEncoding: base64
                Certificates:
                    type: array
                    items:
                        $ref: '#/components/schemas/Certificate'
                CertificatesURL:
                    $ref: '#/components/schemas/URL'
                Key: {}
                KeyID:
                    type: string
                Use:
                    type: string
            required:
                - Key
                - KeyID
                - Algorithm
                - Use
                - Certificates
                - CertificatesURL
                - CertificateThumbprintSHA1
                - CertificateThumbprintSHA256
        JSONWebKeySet:
            type: object
            additionalProperties: false
            properties:
                keys:
                    type: array
                    items:
                        $ref: '#/components/schemas/JSONWebKey'
            required:
                - keys
        ListOutputAccessPolicyBody:
            type: object
            additionalProperties: false
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/AccessPolicy'
                nextCursor:
                    type: string
            required:
                - items
        ListOutputAgentBody:
            type: object
            additionalProperties: false
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/Agent'
                nextCursor:
                    type: string
            required:
                - items
        ListOutputDeploymentBody:
            type: object
            additionalProperties: false
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/Deployment'
                nextCursor:
                    type: string
            required:
                - items
        ListOutputGatewayBody:
            type: object
            additionalProperties: false
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/Gateway'
                nextCursor:
                    type: string
            required:
                - items
        ListOutputMCPServerBody:
            type: object
            additionalProperties: false
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/MCPServer'
                nextCursor:
                    type: string
            required:
                - items
        ListOutputPromptBody:
            type: object
            additionalProperties: false
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/Prompt'
                nextCursor:
                    type: string
            required:
                - items
        ListOutputRuntimeBody:
            type: object
            additionalProperties: false
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/Runtime'
                nextCursor:
                    type: string
            required:
                - items
        ListOutputSkillBody:
            type: object
            additionalProperties: false
            properties:
                items:
                    type: array
                    items:
                        $ref: '#/components/schemas/Skill'
                nextCursor:
                    type: string
            required:
                - items
        MCPArgument:
            type: object
            additionalProperties: false
            properties:
                name:
                    type: string
                type:
                    type: string
                value:
                    type: string
            required:
                - type
        MCPKeyValueInput:
            type: object
            additionalProperties: false
            properties:
                isRequired:
                    type: boolean
                name:
                    type: string
                value:
                    type: string
            required:
                - name
        MCPPackage:
            type: object
            additionalProperties: false
            properties:
                launch:
                    $ref: '#/components/schemas/MCPPackageLaunch'
                origin:
                    $ref: '#/components/schemas/MCPPackageOrigin'
                transport:
                    $ref: '#/components/schemas/MCPTransport'
            required:
                - origin
                - transport
        MCPPackageLaunch:
            type: object
            additionalProperties: false
            properties:
                args:
                    type: array
                    items:
                        $ref: '#/components/schemas/MCPArgument'
                command:
                    type: string
                env:
                    type: array
                    items:
                        $ref: '#/components/schemas/MCPKeyValueInput'
        MCPPackageOrigin:
            type: object
            additionalProperties: false
            properties:
                identifier:
                    type: string
                npm:
                    $ref: '#/components/schemas/MCPPackageOriginNPM'
                oci:
                    $ref: '#/components/schemas/MCPPackageOriginOCI'
                pypi:
                    $ref: '#/components/schemas/MCPPackageOriginPyPI'
                type:
                    type: string
            required:
                - type
                - identifier
        MCPPackageOriginNPM:
            type: object
            additionalProperties: false
            properties:
                mirror:
                    type: string
                serverName:
                    type: string
                version:
                    type: string
            required:
                - version
                - serverName
        MCPPackageOriginOCI:
            type: object
            additionalProperties: false
            properties:
                serverName:
                    type: string
            required:
                - serverName
        MCPPackageOriginPyPI:
            type: object
            additionalProperties: false
            properties:
                mirror:
                    type: string
                serverName:
                    type: string
                version:
                    type: string
            required:
                - version
                - serverName
        MCPRemote:
            type: object
            additionalProperties: false
            properties:
                headers:
                    type: array
                    items:
                        $ref: '#/components/schemas/HTTPHeader'
                type:
                    type: string
                url:
                    type: string
            required:
                - type
                - url
        MCPServer:
            type: object
            additionalProperties: false
            properties:
                apiVersion:
                    type: string
                kind:
                    type: string
                metadata:
                    $ref: '#/components/schemas/ObjectMeta'
                spec:
                    $ref: '#/components/schemas/MCPServerSpec'
                status:
                    $ref: '#/components/schemas/Status'
            required:
                - metadata
                - spec
                - apiVersion
                - kind
        MCPServerSource:
            type: object
            additionalProperties: false
            properties:
                package:
                    $ref: '#/components/schemas/MCPPackage'
                repository:
                    $ref: '#/components/schemas/Repository'
        MCPServerSpec:
            type: object
            additionalProperties: false
            properties:
                description:
                    type: string
                remote:
                    $ref: '#/components/schemas/MCPRemote'
                source:
                    $ref: '#/components/schemas/MCPServerSource'
                title:
                    type: string
        MCPTransport:
            type: object
            additionalProperties: false
            properties:
                path:
                    type: string
                port:
                    type: integer
                    format: int32
                    minimum: 0
                type:
                    type: string
            required:
                - type
        ManagedAgentgatewayConfig:
            type: object
            additionalProperties: false
            properties:
                appConfig:
                    $ref: '#/components/schemas/ManagedAppConfigConfig'
                syncIntervalSeconds:
                    type: integer
                    format: int64
                syncOutputPath:
                    type: string
        ManagedAppConfigConfig:
            type: object
            additionalProperties: false
            properties:
                application:
                    type: string
        ManagedSTSConfig:
            type: object
            additionalProperties: false
            properties:
                allowedActorClaims:
                    type: array
                    items:
                        type: string
                allowedSubjectClaims:
                    type: array
                    items:
                        type: string
                issuer:
                    type: string
                subjectValidator:
                    $ref: '#/components/schemas/SubjectValidator'
                tokenExpiration:
                    type: string
        Name:
            type: object
            additionalProperties: false
            properties:
                CommonName:
                    type: string
                Country:
                    type: array
                    items:
                        type: string
                ExtraNames:
                    type: array
                    items:
                        $ref: '#/components/schemas/AttributeTypeAndValue'
                Locality:
                    type: array
                    items:
                        type: string
                Names:
                    type: array
                    items:
                        $ref: '#/components/schemas/AttributeTypeAndValue'
                Organization:
                    type: array
                    items:
                        type: string
                OrganizationalUnit:
                    type: array
                    items:
                        type: string
                PostalCode:
                    type: array
                    items:
                        type: string
                Province:
                    type: array
                    items:
                        type: string
                SerialNumber:
                    type: string
                StreetAddress:
                    type: array
                    items:
                        type: string
            required:
                - Country
                - Organization
                - OrganizationalUnit
                - Locality
                - Province
                - StreetAddress
                - PostalCode
                - SerialNumber
                - CommonName
                - Names
                - ExtraNames
        ObjectMeta:
            type: object
            additionalProperties: false
            properties:
                annotations:
                    type: object
                    additionalProperties:
                        type: string
                createdAt:
                    type: string
                    format: date-time
                deletionTimestamp:
                    type: string
                    format: date-time
                labels:
                    type: object
                    additionalProperties:
                        type: string
                name:
                    type: string
                namespace:
                    type: string
                tag:
                    type: string
                uid:
                    type: string
                updatedAt:
                    type: string
                    format: date-time
            required:
                - name
        PingBody:
            type: object
            additionalProperties: false
            properties:
                pong:
                    type: boolean
                    description: Ping response
                    examples:
                        - true
            required:
                - pong
        PolicyMapping:
            type: object
            additionalProperties: false
            properties:
                IssuerDomainPolicy:
                    type: string
                SubjectDomainPolicy:
                    type: string
            required:
                - IssuerDomainPolicy
                - SubjectDomainPolicy
        Principal:
            type: object
            additionalProperties: false
            properties:
                kind:
                    type: string
                name:
                    type: string
                role:
                    type: string
            required:
                - kind
                - name
        Prompt:
            type: object
            additionalProperties: false
            properties:
                apiVersion:
                    type: string
                kind:
                    type: string
                metadata:
                    $ref: '#/components/schemas/ObjectMeta'
                spec:
                    $ref: '#/components/schemas/PromptSpec'
                status:
                    $ref: '#/components/schemas/Status'
            required:
                - metadata
                - spec
                - apiVersion
                - kind
        PromptSpec:
            type: object
            additionalProperties: false
            properties:
                content:
                    type: string
                description:
                    type: string
        Repository:
            type: object
            additionalProperties: false
            properties:
                branch:
                    type: string
                commit:
                    type: string
                subfolder:
                    type: string
                url:
                    type: string
        ResourceRef:
            type: object
            additionalProperties: false
            properties:
                kind:
                    type: string
                name:
                    type: string
                namespace:
                    type: string
                tag:
                    type: string
            required:
                - kind
                - name
        Rule:
            type: object
            additionalProperties: false
            properties:
                actions:
                    type: array
                    items:
                        type: string
                resources:
                    type: array
                    items:
                        $ref: '#/components/schemas/RuleResource'
            required:
                - actions
                - resources
        RuleResource:
            type: object
            additionalProperties: false
            properties:
                kind:
                    type: string
                name:
                    type: string
                subresources:
                    type: array
                    items:
                        type: string
            required:
                - kind
                - name
        Runtime:
            type: object
            additionalProperties: false
            properties:
                apiVersion:
                    type: string
                kind:
                    type: string
                metadata:
                    $ref: '#/components/schemas/ObjectMeta'
                spec:
                    $ref: '#/components/schemas/RuntimeSpec'
                status:
                    $ref: '#/components/schemas/Status'
            required:
                - metadata
                - spec
                - apiVersion
                - kind
        RuntimeSpec:
            type: object
            additionalProperties: false
            properties:
                config:
                    type: object
                    additionalProperties: {}
                telemetryEndpoint:
                    type: string
                type:
                    type: string
            required:
                - type
        Selector:
            type: object
            additionalProperties: false
            properties:
                labels:
                    type: object
                    additionalProperties:
                        type: string
                roleKey:
                    type: string
        Skill:
            type: object
            additionalProperties: false
            properties:
                apiVersion:
                    type: string
                kind:
                    type: string
                metadata:
                    $ref: '#/components/schemas/ObjectMeta'
                spec:
                    $ref: '#/components/schemas/SkillSpec'
                status:
                    $ref: '#/components/schemas/Status'
            required:
                - metadata
                - spec
                - apiVersion
                - kind
        SkillSource:
            type: object
            additionalProperties: false
            properties:
                repository:
                    $ref: '#/components/schemas/Repository'
        SkillSpec:
            type: object
            additionalProperties: false
            properties:
                description:
                    type: string
                source:
                    $ref: '#/components/schemas/SkillSource'
                title:
                    type: string
        Status:
            type: object
            additionalProperties: false
            properties:
                conditions:
                    type: array
                    items:
                        $ref: '#/components/schemas/Condition'
                details: {}
        SubjectValidator:
            type: object
            additionalProperties: false
            properties:
                remote:
                    type: string
                static:
                    $ref: '#/components/schemas/JSONWebKeySet'
        URL:
            type: string
            format: uri
        VersionBody:
            type: object
            additionalProperties: false
            properties:
                build_time:
                    type: string
                    description: Build timestamp
                    examples:
                        - "2025-10-14T12:00:00Z"
                git_commit:
                    type: string
                    description: Git commit SHA
                    examples:
                        - abc123d
                version:
                    type: string
                    description: Application version
                    examples:
                        - v1.0.0
            required:
                - version
                - git_commit
                - build_time
        WhoAmIResponse:
            type: object
            additionalProperties: false
            properties:
                email:
                    type: string
                isSuperuser:
                    type: boolean
                issuer:
                    type: string
                mappedRoles:
                    type: array
                    items:
                        type: string
                resolvedRoles:
                    type: array
                    items:
                        $ref: '#/components/schemas/WhoAmIRoleResponse'
                subject:
                    type: string
                unresolvedRoles:
                    type: array
                    items:
                        type: string
            required:
                - subject
                - mappedRoles
                - isSuperuser
                - resolvedRoles
                - unresolvedRoles
        WhoAmIRoleResponse:
            type: object
            additionalProperties: false
            properties:
                description:
                    type: string
                name:
                    type: string
                permissions:
                    type: array
                    items:
                        $ref: '#/components/schemas/Rule'
            required:
                - name
                - permissions
tags:
    - name: servers
      description: Operations for discovering and retrieving MCP servers
    - name: agents
      description: Operations for discovering and retrieving Agentic agents
    - name: skills
      description: Operations for discovering and retrieving Agentic skills
    - name: runtimes
      description: Operations for managing deployment runtime instances
    - name: publish
      description: Operations for publishing MCP servers to the registry
    - name: auth
      description: Authentication operations for obtaining tokens to publish servers
    - name: health
      description: Health check endpoint for monitoring service availability
    - name: ping
      description: Simple ping endpoint for testing connectivity
    - name: version
      description: Version information endpoint for retrieving build and version details
