> ## Documentation Index
> Fetch the complete documentation index at: https://checkfu.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Invoke or observe an installed Agent through A2A v1

> A2A v1 JSON-RPC bound to one exact installed placement. SendMessage creates or reuses the canonical ConversationBinding and Session; task reads, cancellation, listing, and SSE subscription are projections of and mutations through that same Session authority. The bearer must be a person Principal credential issued for audience `a2a`; every operation re-checks the active placement and live PermissionAssignments.

Checkfu support posture: preview; hosted. Required evidence journey: a2a-serve. Deployment-specific readiness and the latest proven release are available from GET /v1/support/capabilities.



## OpenAPI

````yaml /openapi.json post /a2a/v1/workspaces/{workspace}/agent-installations/{installation}/surface-scopes/{surface}
openapi: 3.1.0
info:
  title: Checkfu API
  version: '2026-08-27'
  description: >-
    Authentication is declared per operation: API-key, runtime, or connector
    bearer; Automation signature; or credential-free pairing redemption. Every
    general Checkfu REST request requires the dated `Checkfu-Version` header
    (one of: 2026-08-27); the three MCP JSON-RPC transports use
    `MCP-Protocol-Version`, A2A uses `A2A-Version`, and the provider OAuth
    callback carries neither Checkfu header. API keys resolve one Workspace
    without a request selector; authenticated responses identify it with
    `Checkfu-Workspace-Id`.
servers:
  - url: https://api.checkfu.com
security:
  - bearerAuth: []
tags:
  - name: organizations
  - name: sourceRepositories
  - name: tenants
  - name: workspaces
  - name: principals
  - name: principalGroups
  - name: principalAccessCredentials
  - name: apiKeys
  - name: agents
  - name: harnesses
  - name: harnessRuntime
  - name: sandboxProfiles
  - name: computerProfiles
  - name: permissionAssignments
  - name: actionPolicies
  - name: files
  - name: memoryStores
  - name: dreams
  - name: modelCredentials
  - name: modelRoutingProfiles
  - name: blueprintInstallations
  - name: toolSources
  - name: skills
  - name: skillSources
  - name: agentSources
  - name: skillProposals
  - name: instructionProposals
  - name: catalog
  - name: concepts
  - name: support
  - name: connections
  - name: connectionVaults
  - name: connectionAssignments
  - name: connectedRuntimes
  - name: projects
  - name: collaboration
  - name: automationGraphs
  - name: automations
  - name: actionApprovals
  - name: standingApprovals
  - name: usage
  - name: models
  - name: outcomes
  - name: budgets
  - name: billing
  - name: sessions
  - name: audit
  - name: sessionExports
  - name: runs
  - name: runnerPools
  - name: transcripts
  - name: sessionWatches
  - name: webhookEndpoints
  - name: integrationGateway
  - name: agentDeployments
  - name: workEnvironments
  - name: computers
  - name: computerScreens
  - name: computerBrowserObservations
  - name: computerBrowserActions
  - name: environments
  - name: vaults
  - name: apiMcp
  - name: a2a
paths:
  /a2a/v1/workspaces/{workspace}/agent-installations/{installation}/surface-scopes/{surface}:
    post:
      tags:
        - a2a
      summary: Invoke or observe an installed Agent through A2A v1
      description: >-
        A2A v1 JSON-RPC bound to one exact installed placement. SendMessage
        creates or reuses the canonical ConversationBinding and Session; task
        reads, cancellation, listing, and SSE subscription are projections of
        and mutations through that same Session authority. The bearer must be a
        person Principal credential issued for audience `a2a`; every operation
        re-checks the active placement and live PermissionAssignments.


        Checkfu support posture: preview; hosted. Required evidence journey:
        a2a-serve. Deployment-specific readiness and the latest proven release
        are available from GET /v1/support/capabilities.
      operationId: a2a.rpc
      parameters:
        - name: workspace
          in: path
          required: true
          schema:
            type: string
            pattern: ^wrkspc_[0-9a-f]{32}$
        - name: installation
          in: path
          required: true
          schema:
            type: string
            pattern: ^aini_[0-9a-f]{32}$
        - name: surface
          in: path
          required: true
          schema:
            type: string
            pattern: ^surf_[0-9a-f]{32}$
        - name: a2a-version
          in: header
          required: false
          description: >-
            A2A service version. Omission selects the protocol-defined legacy
            0.3 default, which this v1 endpoint rejects with JSON-RPC
            VERSION_NOT_SUPPORTED.
          schema:
            type: string
            enum:
              - '1.0'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
                - type: object
                  properties:
                    jsonrpc:
                      type: string
                      enum:
                        - '2.0'
                    id:
                      $ref: '#/components/schemas/Inline5_Union_'
                    method:
                      type: string
                      enum:
                        - SendMessage
                    params:
                      $ref: '#/components/schemas/Inline5_Objects_'
                  required:
                    - jsonrpc
                    - id
                    - method
                    - params
                  additionalProperties: false
                - type: object
                  properties:
                    jsonrpc:
                      type: string
                      enum:
                        - '2.0'
                    id:
                      $ref: '#/components/schemas/Inline5_Union_'
                    method:
                      type: string
                      enum:
                        - SendStreamingMessage
                    params:
                      $ref: '#/components/schemas/Inline5_Objects_'
                  required:
                    - jsonrpc
                    - id
                    - method
                    - params
                  additionalProperties: false
                - type: object
                  properties:
                    jsonrpc:
                      type: string
                      enum:
                        - '2.0'
                    id:
                      $ref: '#/components/schemas/Inline5_Union_'
                    method:
                      type: string
                      enum:
                        - GetTask
                    params:
                      type: object
                      properties:
                        tenant:
                          $ref: '#/components/schemas/Inline5_Union_1'
                        id:
                          type: string
                          allOf:
                            - minLength: 1
                            - maxLength: 512
                        historyLength:
                          $ref: '#/components/schemas/Inline5_Union_5'
                      required:
                        - id
                      additionalProperties: false
                  required:
                    - jsonrpc
                    - id
                    - method
                    - params
                  additionalProperties: false
                - type: object
                  properties:
                    jsonrpc:
                      type: string
                      enum:
                        - '2.0'
                    id:
                      $ref: '#/components/schemas/Inline5_Union_'
                    method:
                      type: string
                      enum:
                        - ListTasks
                    params:
                      type: object
                      properties:
                        tenant:
                          $ref: '#/components/schemas/Inline5_Union_1'
                        contextId:
                          $ref: '#/components/schemas/Inline5_Union_1'
                        status:
                          type: string
                          enum:
                            - TASK_STATE_SUBMITTED
                            - TASK_STATE_WORKING
                            - TASK_STATE_COMPLETED
                            - TASK_STATE_FAILED
                            - TASK_STATE_CANCELED
                            - TASK_STATE_INPUT_REQUIRED
                            - TASK_STATE_REJECTED
                            - TASK_STATE_AUTH_REQUIRED
                        pageSize:
                          type: integer
                          allOf:
                            - minimum: 1
                              maximum: 100
                        pageToken:
                          type: string
                          allOf:
                            - maxLength: 1024
                        historyLength:
                          $ref: '#/components/schemas/Inline5_Union_5'
                        statusTimestampAfter:
                          $ref: '#/components/schemas/A2aTimestamp'
                        includeArtifacts:
                          type: boolean
                      additionalProperties: false
                  required:
                    - jsonrpc
                    - id
                    - method
                    - params
                  additionalProperties: false
                - type: object
                  properties:
                    jsonrpc:
                      type: string
                      enum:
                        - '2.0'
                    id:
                      $ref: '#/components/schemas/Inline5_Union_'
                    method:
                      type: string
                      enum:
                        - CancelTask
                    params:
                      type: object
                      properties:
                        tenant:
                          $ref: '#/components/schemas/Inline5_Union_1'
                        id:
                          type: string
                          allOf:
                            - minLength: 1
                            - maxLength: 512
                        metadata:
                          $ref: '#/components/schemas/Inline5_Union_2'
                      required:
                        - id
                      additionalProperties: false
                  required:
                    - jsonrpc
                    - id
                    - method
                    - params
                  additionalProperties: false
                - type: object
                  properties:
                    jsonrpc:
                      type: string
                      enum:
                        - '2.0'
                    id:
                      $ref: '#/components/schemas/Inline5_Union_'
                    method:
                      type: string
                      enum:
                        - SubscribeToTask
                    params:
                      type: object
                      properties:
                        tenant:
                          $ref: '#/components/schemas/Inline5_Union_1'
                        id:
                          type: string
                          allOf:
                            - minLength: 1
                            - maxLength: 512
                      required:
                        - id
                      additionalProperties: false
                  required:
                    - jsonrpc
                    - id
                    - method
                    - params
                  additionalProperties: false
                - type: object
                  properties:
                    jsonrpc:
                      type: string
                      enum:
                        - '2.0'
                    id:
                      $ref: '#/components/schemas/Inline5_Union_'
                    method:
                      type: string
                      enum:
                        - CreateTaskPushNotificationConfig
                    params:
                      $ref: >-
                        #/components/schemas/A2aCreateTaskPushNotificationConfigRequest
                  required:
                    - jsonrpc
                    - id
                    - method
                    - params
                  additionalProperties: false
                - type: object
                  properties:
                    jsonrpc:
                      type: string
                      enum:
                        - '2.0'
                    id:
                      $ref: '#/components/schemas/Inline5_Union_'
                    method:
                      type: string
                      enum:
                        - GetTaskPushNotificationConfig
                    params:
                      type: object
                      properties:
                        tenant:
                          $ref: '#/components/schemas/Inline5_Union_1'
                        taskId:
                          type: string
                          allOf:
                            - minLength: 1
                            - maxLength: 512
                        id:
                          type: string
                          allOf:
                            - minLength: 1
                            - maxLength: 512
                      required:
                        - taskId
                        - id
                      additionalProperties: false
                  required:
                    - jsonrpc
                    - id
                    - method
                    - params
                  additionalProperties: false
                - type: object
                  properties:
                    jsonrpc:
                      type: string
                      enum:
                        - '2.0'
                    id:
                      $ref: '#/components/schemas/Inline5_Union_'
                    method:
                      type: string
                      enum:
                        - ListTaskPushNotificationConfigs
                    params:
                      type: object
                      properties:
                        tenant:
                          $ref: '#/components/schemas/Inline5_Union_1'
                        taskId:
                          type: string
                          allOf:
                            - minLength: 1
                            - maxLength: 512
                        pageSize:
                          type: integer
                          allOf:
                            - minimum: 1
                              maximum: 100
                        pageToken:
                          type: string
                          allOf:
                            - maxLength: 1024
                      required:
                        - taskId
                      additionalProperties: false
                  required:
                    - jsonrpc
                    - id
                    - method
                    - params
                  additionalProperties: false
                - type: object
                  properties:
                    jsonrpc:
                      type: string
                      enum:
                        - '2.0'
                    id:
                      $ref: '#/components/schemas/Inline5_Union_'
                    method:
                      type: string
                      enum:
                        - DeleteTaskPushNotificationConfig
                    params:
                      type: object
                      properties:
                        tenant:
                          $ref: '#/components/schemas/Inline5_Union_1'
                        taskId:
                          type: string
                          allOf:
                            - minLength: 1
                            - maxLength: 512
                        id:
                          type: string
                          allOf:
                            - minLength: 1
                            - maxLength: 512
                      required:
                        - taskId
                        - id
                      additionalProperties: false
                  required:
                    - jsonrpc
                    - id
                    - method
                    - params
                  additionalProperties: false
      responses:
        '200':
          description: A2A JSON-RPC response or replay-then-live SSE envelopes
          headers:
            a2a-version:
              schema:
                type: string
                enum:
                  - '1.0'
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      jsonrpc:
                        type: string
                        enum:
                          - '2.0'
                      id:
                        anyOf:
                          - anyOf:
                              - type: string
                                allOf:
                                  - maxLength: 1024
                              - type: integer
                                allOf:
                                  - minimum: -9007199254740991
                                    maximum: 9007199254740991
                          - type: 'null'
                      result:
                        anyOf:
                          - $ref: '#/components/schemas/A2aSendMessageResponse'
                          - $ref: '#/components/schemas/A2aTaskArtifacts'
                          - type: object
                            properties:
                              tasks:
                                type: array
                                items:
                                  $ref: '#/components/schemas/A2aTaskArtifacts'
                                allOf:
                                  - maxItems: 100
                              nextPageToken:
                                type: string
                                allOf:
                                  - maxLength: 1024
                              pageSize:
                                type: integer
                                allOf:
                                  - minimum: 0
                                    maximum: 100
                              totalSize:
                                type: integer
                                allOf:
                                  - minimum: 0
                                    maximum: 2147483647
                            additionalProperties: false
                          - $ref: '#/components/schemas/A2aStreamResponse'
                          - $ref: >-
                              #/components/schemas/Inline6_A2aTaskPushNotificationConfig
                          - type: object
                            properties:
                              configs:
                                type: array
                                items:
                                  $ref: >-
                                    #/components/schemas/Inline6_A2aTaskPushNotificationConfig
                                allOf:
                                  - maxItems: 100
                              nextPageToken:
                                type: string
                                allOf:
                                  - maxLength: 1024
                            additionalProperties: false
                    required:
                      - jsonrpc
                      - id
                      - result
                    additionalProperties: false
                  - type: object
                    properties:
                      jsonrpc:
                        type: string
                        enum:
                          - '2.0'
                      id:
                        anyOf:
                          - anyOf:
                              - type: string
                                allOf:
                                  - maxLength: 1024
                              - type: integer
                                allOf:
                                  - minimum: -9007199254740991
                                    maximum: 9007199254740991
                          - type: 'null'
                      error:
                        type: object
                        properties:
                          code:
                            type: integer
                          message:
                            type: string
                            allOf:
                              - maxLength: 1024
                              - minLength: 1
                          data:
                            anyOf:
                              - $ref: '#/components/schemas/Inline6_Objects_2'
                              - type: array
                                items:
                                  $ref: '#/components/schemas/Inline6_Objects_2'
                                allOf:
                                  - maxItems: 64
                        required:
                          - code
                          - message
                        additionalProperties: false
                    required:
                      - jsonrpc
                      - id
                      - error
                    additionalProperties: false
            text/event-stream:
              schema:
                anyOf:
                  - type: object
                    properties:
                      jsonrpc:
                        type: string
                        enum:
                          - '2.0'
                      id:
                        anyOf:
                          - anyOf:
                              - type: string
                                allOf:
                                  - maxLength: 1024
                              - type: integer
                                allOf:
                                  - minimum: -9007199254740991
                                    maximum: 9007199254740991
                          - type: 'null'
                      result:
                        $ref: '#/components/schemas/Inline7_A2aStreamResponse'
                    required:
                      - jsonrpc
                      - id
                      - result
                    additionalProperties: false
                  - type: object
                    properties:
                      jsonrpc:
                        type: string
                        enum:
                          - '2.0'
                      id:
                        anyOf:
                          - anyOf:
                              - type: string
                                allOf:
                                  - maxLength: 1024
                              - type: integer
                                allOf:
                                  - minimum: -9007199254740991
                                    maximum: 9007199254740991
                          - type: 'null'
                      error:
                        type: object
                        properties:
                          code:
                            type: integer
                          message:
                            type: string
                            allOf:
                              - maxLength: 1024
                              - minLength: 1
                          data:
                            anyOf:
                              - $ref: '#/components/schemas/Inline7_Objects_2'
                              - type: array
                                items:
                                  $ref: '#/components/schemas/Inline7_Objects_2'
                                allOf:
                                  - maxItems: 64
                        required:
                          - code
                          - message
                        additionalProperties: false
                    required:
                      - jsonrpc
                      - id
                      - error
                    additionalProperties: false
        '401':
          description: Missing, invalid, or wrong-audience Principal credential
        '403':
          description: >-
            The current placement or live PermissionAssignments deny the
            operation
        '404':
          description: The installed placement or task is unavailable
        '413':
          description: The JSON-RPC body exceeded the bounded request size
        '415':
          description: The request was not application/json
        '500':
          description: The operation could not be completed
      security:
        - a2aPrincipalAuth: []
components:
  schemas:
    Inline5_Union_:
      anyOf:
        - anyOf:
            - type: string
              allOf:
                - maxLength: 1024
            - type: integer
              allOf:
                - minimum: -9007199254740991
                  maximum: 9007199254740991
        - type: 'null'
    Inline5_Objects_:
      type: object
      properties:
        tenant:
          $ref: '#/components/schemas/Inline5_Union_1'
        message:
          type: object
          properties:
            messageId:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 512
            contextId:
              $ref: '#/components/schemas/Inline5_Union_1'
            taskId:
              $ref: '#/components/schemas/Inline5_Union_1'
            role:
              type: string
              enum:
                - ROLE_USER
                - ROLE_AGENT
            parts:
              type: array
              prefixItems:
                - $ref: '#/components/schemas/A2aPart'
              minItems: 1
              items:
                $ref: '#/components/schemas/A2aPart'
              allOf:
                - maxItems: 256
            metadata:
              $ref: '#/components/schemas/Inline5_Union_2'
            extensions:
              type: array
              items:
                $ref: '#/components/schemas/A2aUri'
              allOf:
                - maxItems: 256
            referenceTaskIds:
              type: array
              items:
                type: string
                allOf:
                  - minLength: 1
                  - maxLength: 512
              allOf:
                - maxItems: 256
          required:
            - messageId
            - role
            - parts
          additionalProperties: false
        configuration:
          type: object
          properties:
            acceptedOutputModes:
              type: array
              items:
                type: string
                allOf:
                  - minLength: 1
                  - maxLength: 256
                  - pattern: ^[^\s/]+\/[^\s/]+(?:\s*;.*)?$
              allOf:
                - maxItems: 64
            taskPushNotificationConfig:
              $ref: '#/components/schemas/A2aTaskPushNotificationConfig'
            historyLength:
              $ref: '#/components/schemas/Inline5_Union_5'
            returnImmediately:
              type: boolean
          additionalProperties: false
        metadata:
          $ref: '#/components/schemas/Inline5_Union_2'
      required:
        - message
      additionalProperties: false
    Inline5_Union_1:
      anyOf:
        - type: string
          allOf:
            - minLength: 1
            - maxLength: 512
        - type: 'null'
    Inline5_Union_5:
      anyOf:
        - type: integer
          allOf:
            - minimum: 0
              maximum: 2147483647
        - type: 'null'
    A2aTimestamp:
      type: string
      allOf:
        - maxLength: 64
    Inline5_Union_2:
      anyOf:
        - type: object
          additionalProperties:
            $ref: '#/components/schemas/A2aJsonValue'
          allOf:
            - maxProperties: 256
            - x-checkfu-json-budget:
                maximumBytes: 1048576
                maximumDepth: 64
                maximumNodes: 100000
                maximumInspectionWork: 100000
        - type: 'null'
    A2aCreateTaskPushNotificationConfigRequest:
      type: object
      properties:
        tenant:
          $ref: '#/components/schemas/Inline5_Union_1'
        id:
          $ref: '#/components/schemas/Inline5_Union_1'
        taskId:
          $ref: '#/components/schemas/Inline5_Union_1'
        url:
          $ref: '#/components/schemas/A2aHttpsEndpointUrl'
        token:
          $ref: '#/components/schemas/Inline5_Union_3'
        authentication:
          $ref: '#/components/schemas/Inline5_Union_4'
      required:
        - url
      additionalProperties: false
    A2aSendMessageResponse:
      type: object
      properties:
        task:
          $ref: '#/components/schemas/Inline6_Union_'
        message:
          $ref: '#/components/schemas/Inline6_Union_2'
      additionalProperties: false
    A2aTaskArtifacts:
      type: object
      properties:
        id:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 512
        contextId:
          $ref: '#/components/schemas/Inline6_Union_1'
        status:
          $ref: '#/components/schemas/Inline6_Objects_'
        artifacts:
          type: array
          items:
            $ref: '#/components/schemas/Inline6_Objects_3'
          allOf:
            - maxItems: 256
        history:
          type: array
          items:
            $ref: '#/components/schemas/Inline6_Objects_1'
          allOf:
            - maxItems: 1000
        metadata:
          $ref: '#/components/schemas/Inline6_Union_3'
      required:
        - id
        - status
      additionalProperties: false
    A2aStreamResponse:
      type: object
      properties:
        task:
          $ref: '#/components/schemas/Inline6_Union_'
        message:
          $ref: '#/components/schemas/Inline6_Union_2'
        statusUpdate:
          type: object
          properties:
            taskId:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 512
            contextId:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 512
            status:
              $ref: '#/components/schemas/Inline6_Objects_'
            metadata:
              $ref: '#/components/schemas/Inline6_Union_3'
          required:
            - taskId
            - contextId
            - status
          additionalProperties: false
        artifactUpdate:
          type: object
          properties:
            taskId:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 512
            contextId:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 512
            artifact:
              $ref: '#/components/schemas/Inline6_Objects_3'
            append:
              type: boolean
            lastChunk:
              type: boolean
            metadata:
              $ref: '#/components/schemas/Inline6_Union_3'
          required:
            - taskId
            - contextId
            - artifact
          additionalProperties: false
      additionalProperties: false
    Inline6_A2aTaskPushNotificationConfig:
      type: object
      properties:
        tenant:
          $ref: '#/components/schemas/Inline6_Union_1'
        id:
          $ref: '#/components/schemas/Inline6_Union_1'
        taskId:
          $ref: '#/components/schemas/Inline6_Union_1'
        url:
          $ref: '#/components/schemas/A2aHttpsEndpointUrl'
        token:
          $ref: '#/components/schemas/Inline6_Union_4'
        authentication:
          type: object
          properties:
            scheme:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 256
                - pattern: ^[!#$%&'*+.^_\x60|~0-9A-Za-z-]+$
            credentials:
              type: string
              allOf:
                - maxLength: 16384
          required:
            - scheme
            - credentials
          additionalProperties: false
      required:
        - url
      additionalProperties: false
    Inline6_Objects_2:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/A2aJsonValue'
      allOf:
        - maxProperties: 256
        - x-checkfu-json-budget:
            maximumBytes: 1048576
            maximumDepth: 64
            maximumNodes: 100000
            maximumInspectionWork: 100000
    Inline7_A2aStreamResponse:
      type: object
      properties:
        task:
          $ref: '#/components/schemas/Inline7_A2aTaskArtifacts'
        message:
          $ref: '#/components/schemas/Inline7_Union_1'
        statusUpdate:
          type: object
          properties:
            taskId:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 512
            contextId:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 512
            status:
              $ref: '#/components/schemas/Inline7_Objects_'
            metadata:
              $ref: '#/components/schemas/Inline7_Union_2'
          required:
            - taskId
            - contextId
            - status
          additionalProperties: false
        artifactUpdate:
          type: object
          properties:
            taskId:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 512
            contextId:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 512
            artifact:
              $ref: '#/components/schemas/Inline7_Objects_3'
            append:
              type: boolean
            lastChunk:
              type: boolean
            metadata:
              $ref: '#/components/schemas/Inline7_Union_2'
          required:
            - taskId
            - contextId
            - artifact
          additionalProperties: false
      additionalProperties: false
    Inline7_Objects_2:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/A2aJsonValue'
      allOf:
        - maxProperties: 256
        - x-checkfu-json-budget:
            maximumBytes: 1048576
            maximumDepth: 64
            maximumNodes: 100000
            maximumInspectionWork: 100000
    A2aPart:
      type: object
      properties:
        text:
          type: string
          allOf:
            - maxLength: 16384
        raw:
          type: string
          allOf:
            - maxLength: 16777216
            - pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
        url:
          $ref: '#/components/schemas/A2aUri'
        data:
          $ref: '#/components/schemas/A2aJsonValue'
        metadata:
          $ref: '#/components/schemas/Inline5_Union_2'
        filename:
          $ref: '#/components/schemas/Inline5_Union_3'
        mediaType:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 256
            - pattern: ^[^\s/]+\/[^\s/]+(?:\s*;.*)?$
      additionalProperties: false
    A2aUri:
      type: string
      allOf:
        - minLength: 1
        - maxLength: 2048
    A2aTaskPushNotificationConfig:
      type: object
      properties:
        tenant:
          $ref: '#/components/schemas/Inline5_Union_1'
        id:
          $ref: '#/components/schemas/Inline5_Union_1'
        taskId:
          $ref: '#/components/schemas/Inline5_Union_1'
        url:
          $ref: '#/components/schemas/A2aHttpsEndpointUrl'
        token:
          $ref: '#/components/schemas/Inline5_Union_3'
        authentication:
          $ref: '#/components/schemas/Inline5_Union_4'
      required:
        - url
      additionalProperties: false
    A2aJsonValue:
      x-checkfu-json-budget:
        maximumBytes: 1048576
        maximumDepth: 64
        maximumNodes: 100000
        maximumInspectionWork: 100000
      description: >-
        A JSON value bounded to 1 MiB, depth 64, 100,000 nodes, and 100,000
        inspected own keys.
    A2aHttpsEndpointUrl:
      type: string
      allOf:
        - maxLength: 2048
    Inline5_Union_3:
      anyOf:
        - type: string
          allOf:
            - maxLength: 1024
            - minLength: 1
        - type: 'null'
    Inline5_Union_4:
      anyOf:
        - type: object
          properties:
            scheme:
              type: string
              allOf:
                - minLength: 1
                - maxLength: 256
                - pattern: ^[!#$%&'*+.^_\x60|~0-9A-Za-z-]+$
            credentials:
              type: string
              allOf:
                - maxLength: 16384
          required:
            - scheme
            - credentials
          additionalProperties: false
        - type: 'null'
    Inline6_Union_:
      anyOf:
        - $ref: '#/components/schemas/A2aTaskArtifacts'
        - type: 'null'
    Inline6_Union_2:
      anyOf:
        - $ref: '#/components/schemas/Inline6_Objects_1'
        - type: 'null'
    Inline6_Union_1:
      anyOf:
        - type: string
          allOf:
            - minLength: 1
            - maxLength: 512
        - type: 'null'
    Inline6_Objects_:
      type: object
      properties:
        state:
          type: string
          enum:
            - TASK_STATE_SUBMITTED
            - TASK_STATE_WORKING
            - TASK_STATE_COMPLETED
            - TASK_STATE_FAILED
            - TASK_STATE_CANCELED
            - TASK_STATE_INPUT_REQUIRED
            - TASK_STATE_REJECTED
            - TASK_STATE_AUTH_REQUIRED
        message:
          $ref: '#/components/schemas/Inline6_Union_2'
        timestamp:
          $ref: '#/components/schemas/A2aTimestamp'
      required:
        - state
      additionalProperties: false
    Inline6_Objects_3:
      type: object
      properties:
        artifactId:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 512
        name:
          $ref: '#/components/schemas/Inline6_Union_4'
        description:
          type: string
          allOf:
            - maxLength: 16384
        parts:
          type: array
          prefixItems:
            - $ref: '#/components/schemas/Inline6_A2aPart'
          minItems: 1
          items:
            $ref: '#/components/schemas/Inline6_A2aPart'
          allOf:
            - maxItems: 256
        metadata:
          $ref: '#/components/schemas/Inline6_Union_3'
        extensions:
          $ref: '#/components/schemas/Inline6_Union_5'
      required:
        - artifactId
        - parts
      additionalProperties: false
    Inline6_Objects_1:
      type: object
      properties:
        messageId:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 512
        contextId:
          $ref: '#/components/schemas/Inline6_Union_1'
        taskId:
          $ref: '#/components/schemas/Inline6_Union_1'
        role:
          type: string
          enum:
            - ROLE_USER
            - ROLE_AGENT
        parts:
          type: array
          prefixItems:
            - $ref: '#/components/schemas/Inline6_A2aPart'
          minItems: 1
          items:
            $ref: '#/components/schemas/Inline6_A2aPart'
          allOf:
            - maxItems: 256
        metadata:
          $ref: '#/components/schemas/Inline6_Union_3'
        extensions:
          $ref: '#/components/schemas/Inline6_Union_5'
        referenceTaskIds:
          type: array
          items:
            type: string
            allOf:
              - minLength: 1
              - maxLength: 512
          allOf:
            - maxItems: 256
      required:
        - messageId
        - role
        - parts
      additionalProperties: false
    Inline6_Union_3:
      anyOf:
        - $ref: '#/components/schemas/Inline6_Objects_2'
        - type: 'null'
    Inline6_Union_4:
      anyOf:
        - type: string
          allOf:
            - maxLength: 1024
            - minLength: 1
        - type: 'null'
    Inline7_A2aTaskArtifacts:
      type: object
      properties:
        id:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 512
        contextId:
          $ref: '#/components/schemas/Inline7_Union_'
        status:
          $ref: '#/components/schemas/Inline7_Objects_'
        artifacts:
          type: array
          items:
            $ref: '#/components/schemas/Inline7_Objects_3'
          allOf:
            - maxItems: 256
        history:
          type: array
          items:
            $ref: '#/components/schemas/Inline7_Objects_1'
          allOf:
            - maxItems: 1000
        metadata:
          $ref: '#/components/schemas/Inline7_Union_2'
      required:
        - id
        - status
      additionalProperties: false
    Inline7_Union_1:
      anyOf:
        - $ref: '#/components/schemas/Inline7_Objects_1'
        - type: 'null'
    Inline7_Objects_:
      type: object
      properties:
        state:
          type: string
          enum:
            - TASK_STATE_SUBMITTED
            - TASK_STATE_WORKING
            - TASK_STATE_COMPLETED
            - TASK_STATE_FAILED
            - TASK_STATE_CANCELED
            - TASK_STATE_INPUT_REQUIRED
            - TASK_STATE_REJECTED
            - TASK_STATE_AUTH_REQUIRED
        message:
          $ref: '#/components/schemas/Inline7_Union_1'
        timestamp:
          $ref: '#/components/schemas/A2aTimestamp'
      required:
        - state
      additionalProperties: false
    Inline7_Union_2:
      anyOf:
        - $ref: '#/components/schemas/Inline7_Objects_2'
        - type: 'null'
    Inline7_Objects_3:
      type: object
      properties:
        artifactId:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 512
        name:
          type: string
          allOf:
            - maxLength: 1024
            - minLength: 1
        description:
          type: string
          allOf:
            - maxLength: 16384
        parts:
          type: array
          prefixItems:
            - $ref: '#/components/schemas/Inline7_A2aPart'
          minItems: 1
          items:
            $ref: '#/components/schemas/Inline7_A2aPart'
          allOf:
            - maxItems: 256
        metadata:
          $ref: '#/components/schemas/Inline7_Union_2'
        extensions:
          $ref: '#/components/schemas/Inline7_Union_3'
      required:
        - artifactId
        - parts
      additionalProperties: false
    Inline6_A2aPart:
      type: object
      properties:
        text:
          type: string
          allOf:
            - maxLength: 16384
        raw:
          type: string
          allOf:
            - maxLength: 16777216
            - pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
        url:
          $ref: '#/components/schemas/A2aUri'
        data:
          $ref: '#/components/schemas/A2aJsonValue'
        metadata:
          $ref: '#/components/schemas/Inline6_Union_3'
        filename:
          $ref: '#/components/schemas/Inline6_Union_4'
        mediaType:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 256
            - pattern: ^[^\s/]+\/[^\s/]+(?:\s*;.*)?$
      additionalProperties: false
    Inline6_Union_5:
      anyOf:
        - type: array
          items:
            $ref: '#/components/schemas/A2aUri'
          allOf:
            - maxItems: 256
        - type: 'null'
    Inline7_Union_:
      anyOf:
        - type: string
          allOf:
            - minLength: 1
            - maxLength: 512
        - type: 'null'
    Inline7_Objects_1:
      type: object
      properties:
        messageId:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 512
        contextId:
          $ref: '#/components/schemas/Inline7_Union_'
        taskId:
          $ref: '#/components/schemas/Inline7_Union_'
        role:
          type: string
          enum:
            - ROLE_USER
            - ROLE_AGENT
        parts:
          type: array
          prefixItems:
            - $ref: '#/components/schemas/Inline7_A2aPart'
          minItems: 1
          items:
            $ref: '#/components/schemas/Inline7_A2aPart'
          allOf:
            - maxItems: 256
        metadata:
          $ref: '#/components/schemas/Inline7_Union_2'
        extensions:
          $ref: '#/components/schemas/Inline7_Union_3'
        referenceTaskIds:
          type: array
          items:
            type: string
            allOf:
              - minLength: 1
              - maxLength: 512
          allOf:
            - maxItems: 256
      required:
        - messageId
        - role
        - parts
      additionalProperties: false
    Inline7_A2aPart:
      type: object
      properties:
        text:
          type: string
          allOf:
            - maxLength: 16384
        raw:
          type: string
          allOf:
            - maxLength: 16777216
            - pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
        url:
          $ref: '#/components/schemas/A2aUri'
        data:
          $ref: '#/components/schemas/A2aJsonValue'
        metadata:
          $ref: '#/components/schemas/Inline7_Union_2'
        filename:
          type: string
          allOf:
            - maxLength: 1024
            - minLength: 1
        mediaType:
          type: string
          allOf:
            - minLength: 1
            - maxLength: 256
            - pattern: ^[^\s/]+\/[^\s/]+(?:\s*;.*)?$
      additionalProperties: false
    Inline7_Union_3:
      anyOf:
        - type: array
          items:
            $ref: '#/components/schemas/A2aUri'
          allOf:
            - maxItems: 256
        - type: 'null'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
    a2aPrincipalAuth:
      type: http
      scheme: bearer
      description: >-
        A Checkfu Principal credential issued with audience `a2a`; ordinary
        API-MCP credentials are rejected.

````